]> git.saurik.com Git - wxWidgets.git/commitdiff
define wxMAKE_UNIQUE_NAME so that it works even in VC++ with /ZI (edit and continue...
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 20 Oct 2004 00:31:58 +0000 (00:31 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 20 Oct 2004 00:31:58 +0000 (00:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/defs.h

index 32142feef6f96289e9fa7b771e3f1b510a28f7ca..4e4ca874d1d5eb3ded561f2e004b229ecab171f8 100644 (file)
@@ -473,7 +473,18 @@ typedef int wxWindowID;
 /*  appending the current line number to the given identifier to reduce the */
 /*  probability of the conflict (it may still happen if this is used in the */
 /*  headers, hence you should avoid doing it or provide unique prefixes then) */
-#define wxCONCAT_LINE(text)         wxCONCAT(text, __LINE__)
+#ifdef __VISUALC__
+    /*
+       __LINE__ handling is completely broken in VC++ when using "Edit and
+       Continue" (/ZI option) and results in preprocessor errors if we use it
+       inside the macros. Luckily it has another standard macro which can be
+       used like this and is even better than __LINE__ because it is globally
+       unique.
+     */
+#   define wxCONCAT_LINE(text)         wxCONCAT(text, __COUNTER__)
+#else /* normal compilers */
+#   define wxCONCAT_LINE(text)         wxCONCAT(text, __LINE__)
+#endif
 #define wxMAKE_UNIQUE_NAME(text)    wxCONCAT_LINE(text)
 
 /*  symbolic constant used by all Find()-like functions returning positive */