added wxMAKE_UNIQUE_NAME to wx/defs.h, use it in wx/debug.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -181,19 +181,10 @@ WXDLLIMPEXP_DATA_BASE(extern const bool) wxFalse;
|
|||||||
particular, this is why we define a struct and not an object (which would
|
particular, this is why we define a struct and not an object (which would
|
||||||
result in a warning about unused variable) and a named struct (otherwise we'd
|
result in a warning about unused variable) and a named struct (otherwise we'd
|
||||||
get a warning about an unnamed struct not used to define an object!).
|
get a warning about an unnamed struct not used to define an object!).
|
||||||
The _n__ part is to stop VC++ 7 being confused since it encloses __LINE++ in
|
|
||||||
parentheses. Unfortunately this does not work with other compilers, so
|
|
||||||
we will only enable it when we know the _precise_ symbols to test for.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define wxMAKE_ASSERT_NAME_HELPER(line) wxAssert_ ## line
|
#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_UNIQUE_NAME(wxAssert_)
|
||||||
#define wxMAKE_ASSERT_NAME(line) wxMAKE_ASSERT_NAME_HELPER(line)
|
#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxMAKE_UNIQUE_NAME(text)
|
||||||
#if 0
|
|
||||||
#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_ASSERT_NAME(_n___ ## __LINE__)
|
|
||||||
#else
|
|
||||||
#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_ASSERT_NAME(__LINE__)
|
|
||||||
#endif
|
|
||||||
#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxMAKE_ASSERT_NAME(text)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The second argument of this macro must be a valid C++ identifier and not a
|
The second argument of this macro must be a valid C++ identifier and not a
|
||||||
|
@@ -487,6 +487,15 @@ typedef int wxWindowID;
|
|||||||
// size of statically declared array
|
// size of statically declared array
|
||||||
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
|
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
|
||||||
|
|
||||||
|
// helper macros to be able to define unique/anonymous objects: this works by
|
||||||
|
// 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(text, line) text ## line
|
||||||
|
#define wxCONCAT_LINE2(text, line) wxCONCAT(text, line)
|
||||||
|
#define wxCONCAT_LINE(text) wxCONCAT_LINE2(text, __LINE__)
|
||||||
|
#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
|
||||||
// integer on success as failure indicator
|
// integer on success as failure indicator
|
||||||
#define wxNOT_FOUND (-1)
|
#define wxNOT_FOUND (-1)
|
||||||
|
@@ -593,7 +593,8 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble,
|
|||||||
// Some commonly used predefined arrays
|
// Some commonly used predefined arrays
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
WX_DEFINE_USER_EXPORTED_ARRAY_SHORT (short, wxArrayShort, WXDLLIMPEXP_BASE);
|
WX_DEFINE_USER_EXPORTED_ARRAY_SHORT (short, wxArrayShort,
|
||||||
|
WXDLLIMPEXP_BASE);
|
||||||
WX_DEFINE_USER_EXPORTED_ARRAY_INT (int, wxArrayInt, WXDLLIMPEXP_BASE);
|
WX_DEFINE_USER_EXPORTED_ARRAY_INT (int, wxArrayInt, WXDLLIMPEXP_BASE);
|
||||||
WX_DEFINE_USER_EXPORTED_ARRAY_LONG (long, wxArrayLong, WXDLLIMPEXP_BASE);
|
WX_DEFINE_USER_EXPORTED_ARRAY_LONG (long, wxArrayLong, WXDLLIMPEXP_BASE);
|
||||||
WX_DEFINE_USER_EXPORTED_ARRAY (void *, wxArrayPtrVoid, WXDLLIMPEXP_BASE);
|
WX_DEFINE_USER_EXPORTED_ARRAY (void *, wxArrayPtrVoid, WXDLLIMPEXP_BASE);
|
||||||
|
Reference in New Issue
Block a user