virtual nodetype *Find(const wxListKey& key) const \
{ return (nodetype *)wxListBase::Find(key); } \
\
+ bool Member(const Tbase *object) const \
+ { return Find(object) != NULL; } \
+ \
int IndexOf(Tbase *object) const \
{ return wxListBase::IndexOf(object); } \
\
reference_type operator*() const \
{ return *(pointer_type)m_node->GetDataPtr(); } \
ptrop \
- itor& operator++() { m_node = m_node->GetNext(); return *this; }\
+ itor& operator++() \
+ { \
+ wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \
+ m_node = m_node->GetNext(); \
+ return *this; \
+ } \
const itor operator++(int) \
- { itor tmp = *this; m_node = m_node->GetNext(); return tmp; }\
+ { \
+ itor tmp = *this; \
+ wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \
+ m_node = m_node->GetNext(); \
+ return tmp; \
+ } \
itor& operator--() \
{ \
m_node = m_node ? m_node->GetPrevious() : m_init; \
reference_type operator*() const \
{ return *(pointer_type)m_node->GetDataPtr(); } \
ptrop \
- itor& operator++() { m_node = m_node->GetNext(); return *this; }\
+ itor& operator++() \
+ { \
+ wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \
+ m_node = m_node->GetNext(); \
+ return *this; \
+ } \
const itor operator++(int) \
- { itor tmp = *this; m_node = m_node->GetNext(); return tmp; }\
+ { \
+ itor tmp = *this; \
+ wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \
+ m_node = m_node->GetNext(); \
+ return tmp; \
+ } \
itor& operator--() \
{ \
m_node = m_node ? m_node->GetPrevious() : m_init; \
// compatibility methods
void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); }
- bool Member(wxObject *object) const { return Find(object) != NULL; }
#endif // !wxUSE_STL
};