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
This commit is contained in:
@@ -473,7 +473,18 @@ typedef int wxWindowID;
|
|||||||
/* appending the current line number to the given identifier to reduce the */
|
/* 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 */
|
/* 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) */
|
/* 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)
|
#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text)
|
||||||
|
|
||||||
/* symbolic constant used by all Find()-like functions returning positive */
|
/* symbolic constant used by all Find()-like functions returning positive */
|
||||||
|
Reference in New Issue
Block a user