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
|
||||
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!).
|
||||
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_ASSERT_NAME(line) wxMAKE_ASSERT_NAME_HELPER(line)
|
||||
#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)
|
||||
#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_UNIQUE_NAME(wxAssert_)
|
||||
#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxMAKE_UNIQUE_NAME(text)
|
||||
|
||||
/*
|
||||
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
|
||||
#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
|
||||
// integer on success as failure indicator
|
||||
#define wxNOT_FOUND (-1)
|
||||
|
@@ -593,7 +593,8 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble,
|
||||
// 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_LONG (long, wxArrayLong, WXDLLIMPEXP_BASE);
|
||||
WX_DEFINE_USER_EXPORTED_ARRAY (void *, wxArrayPtrVoid, WXDLLIMPEXP_BASE);
|
||||
|
Reference in New Issue
Block a user