Publishing 2019 R3 content
[platform/upstream/dldt.git] / inference-engine / src / vpu / common / include / vpu / utils / io.hpp
@@ -90,16 +90,35 @@ std::string toString(const T& val) noexcept;
 // Implementation
 //
 
+namespace details {
+
 template <typename T>
-void printTo(std::ostream& os, const T& val) noexcept {
+auto printToDefault(std::ostream& os, const T& val, int) noexcept -> decltype(os << val) {
     try {
-        os << val;
+        return os << val;
     } catch (...) {
         std::cerr << "[VPU] Unknown error while printing\n";
         std::abort();
     }
 }
 
+template <typename T>
+void printToDefault(std::ostream& os, const T& val, ...) noexcept {
+    try {
+        os << "<value at " << &val << ">";
+    } catch (...) {
+        std::cerr << "[VPU] Unknown error while printing\n";
+        std::abort();
+    }
+}
+
+}  // namespace details
+
+template <typename T>
+inline void printTo(std::ostream& os, const T& val) noexcept {
+    details::printToDefault(os, val, 0);
+}
+
 template <typename T1, typename T2>
 void printTo(std::ostream& os, const std::pair<T1, T2>& p) noexcept {
     try {