Merge branch 'master' into cairocanvas
[ardour.git] / libs / pbd / pbd / demangle.h
index adace5d46f62e4f156b062e372052ac15fe9dd46..12dc58839c064977bd1e263482023a23b7706d94 100644 (file)
 
 #include <string>
 #include <cstdlib>
+#include <typeinfo>
 
 #ifdef __GNUC__
 #include <cxxabi.h>
 #endif
 
+#include "pbd/libpbd_visibility.h"
+
 namespace PBD
 {
-       template<typename T>
+       template<typename T> /*LIBPBD_API*/ 
        std::string demangled_name (T const & obj)
        {
 #ifdef __GNUC__
@@ -41,6 +44,12 @@ namespace PBD
                        return s;
                }
 #endif
+
+                /* Note: on win32, you can use UnDecorateSymbolName.
+                   See http://msdn.microsoft.com/en-us/library/ms681400%28VS.85%29.aspx
+                   See also: http://msdn.microsoft.com/en-us/library/ms680344%28VS.85%29.aspx
+                */
+                
                return typeid(obj).name();
        }
 } // namespace