]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/stringimpl.h
fix the bug in insert(end(), value) and added unit test for it
[wxWidgets.git] / include / wx / stringimpl.h
index 7a9adb99bf90dde84b8456e8dcffa153b7346c46..00d24e22424cba32fd01f294cd131b9bf1703fb8 100644 (file)
@@ -53,7 +53,18 @@ extern WXDLLIMPEXP_DATA_BASE(const wxStringCharType*) wxEmptyStringImpl;
 // deal with STL/non-STL/non-STL-but-wxUSE_STD_STRING
 // ----------------------------------------------------------------------------
 
-#define wxUSE_STL_BASED_WXSTRING  wxUSE_STL
+// using STL implies using std::string
+#if wxUSE_STL
+    #undef wxUSE_STD_STRING
+    #define wxUSE_STD_STRING 1
+#endif
+
+// we use STL-based string internally if we use std::string at all now, there
+// should be no reason to prefer our internal implement but if you really need
+// it you can predefine wxUSE_STL_BASED_WXSTRING as 0 when building the library
+#ifndef wxUSE_STL_BASED_WXSTRING
+    #define wxUSE_STL_BASED_WXSTRING  wxUSE_STD_STRING
+#endif
 
 // in both cases we need to define wxStdString
 #if wxUSE_STL_BASED_WXSTRING || wxUSE_STD_STRING
@@ -371,9 +382,11 @@ public:
 
   // lib.string.access
     // return the character at position n
+  value_type operator[](size_type n) const { return m_pchData[n]; }
   value_type at(size_type n) const
     { wxASSERT_VALID_INDEX( n ); return m_pchData[n]; }
     // returns the writable character at position n
+  reference operator[](size_type n) { CopyBeforeWrite(); return m_pchData[n]; }
   reference at(size_type n)
   {
     wxASSERT_VALID_INDEX( n );