]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/meta/implicitconversion.h
Use wxGetTranslation() instead of _() in the public headers.
[wxWidgets.git] / include / wx / meta / implicitconversion.h
index 16ff312e4c3b24fd1a3ef821b55e5b7883f7cfcd..d596a6b248548c37062c0c1c63962db1f65924e5 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     Determine resulting type from implicit conversion
 // Author:      Vaclav Slavik
 // Created:     2010-10-22
-// RCS-ID:      $Id$
 // Copyright:   (c) 2010 Vaclav Slavik
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 namespace wxPrivate
 {
 
+// Helper macro to define a constant inside a template class: it's needed
+// because MSVC6 doesn't support initializing static integer members but the
+// usual workaround of using enums instead doesn't work for Borland (at least
+// in template classes).
+#ifdef __VISUALC6__
+    #define wxDEFINE_CLASS_INT_CONST(name, value) enum { name = value }
+#else
+    #define wxDEFINE_CLASS_INT_CONST(name, value) static const int name = value
+#endif
+
 template<typename T>
 struct TypeHierarchy
 {
     // consider unknown types (e.g. objects, pointers) to be of highest
     // level, always convert to them if they occur
-    enum { level = 9999 };
+    wxDEFINE_CLASS_INT_CONST( level, 9999 );
 };
 
 #define WX_TYPE_HIERARCHY_LEVEL(level_num, type)        \
     template<> struct TypeHierarchy<type>               \
     {                                                   \
-        enum { level = level_num };                     \
+        wxDEFINE_CLASS_INT_CONST( level, level_num );   \
     }
 
 WX_TYPE_HIERARCHY_LEVEL( 1, char);
@@ -84,7 +93,7 @@ struct wxImplicitConversionType
     typedef typename wxIf
             <
                 // if T2 is "higher" type, convert to it
-                (int)wxPrivate::TypeHierarchy<T1>::level < (int)wxPrivate::TypeHierarchy<T2>::level,
+                (int)(wxPrivate::TypeHierarchy<T1>::level) < (int)(wxPrivate::TypeHierarchy<T2>::level),
                 T2,
                 // otherwise use T1
                 T1