From: Vadim Zeitlin Date: Wed, 20 Oct 2004 00:31:58 +0000 (+0000) Subject: define wxMAKE_UNIQUE_NAME so that it works even in VC++ with /ZI (edit and continue... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c0fbf9294e94c1539aaee8989e28d54250b730ea define wxMAKE_UNIQUE_NAME so that it works even in VC++ with /ZI (edit and continue) option: use __COU*NTER__ instead of __LINE__ git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/defs.h b/include/wx/defs.h index 32142feef6..4e4ca874d1 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -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 */