-#if wxUSE_FUNC_TEMPLATE_POINTER
-# define wxTO_STRING(type) wxToStringConverter<type>
-# define wxTO_STRING_IMP(type)
-# define wxFROM_STRING(type) wxFromStringConverter<type>
-# define wxFROM_STRING_IMP(type)
-#else
-# define wxTO_STRING(type) ToString##type
-# define wxTO_STRING_IMP(type) \
- inline void ToString##type( const wxVariantBase& data, wxString &result ) \
- { wxToStringConverter<type>(data, result); }
-
-# define wxFROM_STRING(type) FromString##type
-# define wxFROM_STRING_IMP(type) \
- inline void FromString##type( const wxString& data, wxVariantBase &result ) \
- { wxFromStringConverter<type>(data, result); }
-#endif
-
-// XTI helper macro. This one is used both by xti.h and rtti.h and
-// thus needs to go in a common header to avoid redundancy.
-#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();
-