define wxString::iterator::iterator_category correctly if wxUSE_STD_STRING and not only if wxUSE_STL

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-08-31 14:15:05 +00:00
parent c0213e2ace
commit 302acc453d

View File

@@ -834,22 +834,26 @@ public:
typedef size_t size_type;
typedef wxUniChar const_reference;
#if wxUSE_STL
#if wxUSE_STD_STRING
#if wxUSE_UNICODE_UTF8
// random access is not O(1), as required by Random Access Iterator
#define WX_STR_ITERATOR_TAG std::bidirectional_iterator_tag
#else
#define WX_STR_ITERATOR_TAG std::random_access_iterator_tag
#endif
#define WX_STR_ITERATOR_CATEGORY typedef WX_STR_ITERATOR_TAG iterator_category;
#else
#define WX_STR_ITERATOR_TAG void /* dummy type */
// not defining iterator_category at all in this case is better than defining
// it as some dummy type -- at least it results in more intelligible error
// messages
#define WX_STR_ITERATOR_CATEGORY
#endif
#define WX_STR_ITERATOR_IMPL(iterator_name, pointer_type, reference_type) \
private: \
typedef wxStringImpl::iterator_name underlying_iterator; \
public: \
typedef WX_STR_ITERATOR_TAG iterator_category; \
WX_STR_ITERATOR_CATEGORY \
typedef wxUniChar value_type; \
typedef int difference_type; \
typedef reference_type reference; \