X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e70f5e1301456e02668807d3795a5f2912c2ea86..27476f7368c891de149723b7d4cf9fb922ce8433:/include/wx/dynarray.h diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index 34aaff0a2b..b5466516d2 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -43,15 +43,7 @@ callback compare function for quick sort must return negative value, 0 or positive value if pItem1 <, = or > pItem2 */ - -#if defined(__VISUALC__) - #define CMPFUNC_CONV _cdecl -#elif defined(__VISAGECPP__) - #define CMPFUNC_CONV _Optlink -#else // !Visual C++ - #define CMPFUNC_CONV -#endif // compiler -typedef int (CMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2); +typedef int (wxCMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2); // ---------------------------------------------------------------------------- /** @@ -159,6 +151,11 @@ private: // template classes // ============================================================================ +// resolves the name conflict between the T() macor and T typedef: we can't +// use T() inside WX_DEFINE_ARRAY! +#define _WX_ERROR_SIZEOF T("illegal use of DEFINE_ARRAY") +#define _WX_ERROR_REMOVE T("removing inexisting element in wxArray::Remove") + // ---------------------------------------------------------------------------- // This macro generates a new array class. It is intended for storage of simple // types of sizeof()<=sizeof(long) or pointers if sizeof(pointer)<=sizeof(long) @@ -177,8 +174,8 @@ public: \ { \ size_t type = sizeof(T); \ size_t sizelong = sizeof(long); \ - if ( type <= sizelong ) \ - { wxFAIL_MSG( _T("illegal use of DEFINE_ARRAY") ); } \ + if ( type > sizelong ) \ + { wxFAIL_MSG( _WX_ERROR_SIZEOF ); } \ } \ \ name& operator=(const name& src) \ @@ -205,7 +202,7 @@ public: \ void Remove(T Item) \ { int iIndex = Index(Item); \ wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \ - _T("removing inexisting element in wxArray::Remove") ); \ + _WX_ERROR_REMOVE); \ wxBaseArray::Remove((size_t)iIndex); } \ \ void Sort(CMPFUNC##T fCmp) { wxBaseArray::Sort((CMPFUNC)fCmp); } \ @@ -239,8 +236,8 @@ public: \ name(SCMPFUNC##T fn) \ { size_t type = sizeof(T); \ size_t sizelong = sizeof(long); \ - if ( type <= sizelong ) \ - { wxFAIL_MSG( _T("illegal use of DEFINE_ARRAY") ); } \ + if ( type > sizelong ) \ + { wxFAIL_MSG( _WX_ERROR_SIZEOF ); } \ m_fnCompare = fn; \ } \ \ @@ -267,7 +264,7 @@ public: \ void Remove(T Item) \ { int iIndex = Index(Item); \ wxCHECK2_MSG( iIndex != wxNOT_FOUND, return, \ - _T("removing inexisting element in wxArray::Remove") ); \ + _WX_ERROR_REMOVE ); \ wxBaseArray::Remove((size_t)iIndex); } \ \ private: \