X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cbca59a8fb340a4ed288eed5fad9589df63c49ec..0555b2a0a3c509687e7fc5aeb160f5171b7e6311:/include/wx/object.h?ds=sidebyside diff --git a/include/wx/object.h b/include/wx/object.h index ef260e496c..cb9d8f8c98 100644 --- a/include/wx/object.h +++ b/include/wx/object.h @@ -19,6 +19,37 @@ #include "wx/memory.h" +#define wxDECLARE_CLASS_INFO_ITERATORS() \ +class WXDLLIMPEXP_BASE const_iterator \ + { \ + typedef wxHashTable_Node Node; \ + public: \ + typedef const wxClassInfo* value_type; \ + typedef const value_type& const_reference; \ + typedef const_iterator itor; \ + typedef value_type* ptr_type; \ + \ + Node* m_node; \ + wxHashTable* m_table; \ + public: \ + typedef const_reference reference_type; \ + typedef ptr_type pointer_type; \ + \ + const_iterator(Node* node, wxHashTable* table) \ + : m_node(node), m_table(table) { } \ + const_iterator() : m_node(NULL), m_table(NULL) { } \ + value_type operator*() const; \ + itor& operator++(); \ + const itor operator++(int); \ + bool operator!=(const itor& it) const \ + { return it.m_node != m_node; } \ + bool operator==(const itor& it) const \ + { return it.m_node == m_node; } \ + }; \ + \ + static const_iterator begin_classinfo(); \ + static const_iterator end_classinfo() + // based on the value of wxUSE_EXTENDED_RTTI symbol, // only one of the RTTI system will be compiled: // - the "old" one (defined by rtti.h) or @@ -164,9 +195,8 @@ inline T *wxCheckCast(const void *ptr, T * = NULL) #define _WX_WANT_DELETE_VOID_CONSTCHAR_SIZET #endif -// Only VC++ 6 and CodeWarrior get overloaded delete that matches new -#if (defined(__VISUALC__) && (__VISUALC__ >= 1200)) || \ - (defined(__MWERKS__) && (__MWERKS__ >= 0x2400)) +// Only VC++ 6 gets overloaded delete that matches new +#if (defined(__VISUALC__) && (__VISUALC__ >= 1200)) #define _WX_WANT_DELETE_VOID_WXCHAR_INT #endif @@ -182,12 +212,6 @@ inline T *wxCheckCast(const void *ptr, T * = NULL) #if !defined(__VISUALC__) #define _WX_WANT_ARRAY_DELETE_VOID #endif - - // Only CodeWarrior 6 or higher - #if defined(__MWERKS__) && (__MWERKS__ >= 0x2400) - #define _WX_WANT_ARRAY_DELETE_VOID_WXCHAR_INT - #endif - #endif // wxUSE_ARRAY_MEMORY_OPERATORS #endif // wxUSE_MEMORY_TRACING