]> git.saurik.com Git - wxWidgets.git/commitdiff
use std::[w]string for wxString implementation unless wxUSE_STD_STRING==0 but even...
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 7 May 2008 00:46:45 +0000 (00:46 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 7 May 2008 00:46:45 +0000 (00:46 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
docs/doxygen/mainpages/const_wxusedef.h
include/wx/stringimpl.h

index d2fb60c611c5508f62877c09e1d0ab8874ca2257..f61638fcbd544be928e9f75ebbacf7f9b9aa2d0a 100644 (file)
@@ -241,6 +241,8 @@ All:
 - Added wxON_BLOCK_EXIT_SET() and wxON_BLOCK_EXIT_NULL() to wx/scopeguard.h.
 - Added wxEvtHandler::QueueEvent() replacing AddPendingEvent() and
   wxQueueEvent() replacing wxPostEvent().
+- wxString now uses std::[w]string internally by default, meaning that it is
+  now thread-safe if the standard library provided with your compiler is.
 
 All (Unix):
 
index 93bb092f4263e6a812bcd52421110179ed3ced3d..d80ac6aa8951ecd8881399923717f75bc2b50008 100644 (file)
@@ -41,10 +41,11 @@ library:
 @beginDefList
 @itemdef{wxUSE_STL, Container classes and wxString are implemented using
     standard classes and provide the same standard API.}
+@itemdef{wxUSE_STD_STRING, wxString is implemented using std::[w]string and can
+    be constructed from it (but provides wxWidgets-compatible API, in
+    particular is implicitly convertible to @c char* and not std::[w]string).}
 @itemdef{wxUSE_STD_IOSTREAM, Standard C++ classes are used instead of or in
     addition to wx stream classes.}
-@itemdef{wxUSE_STD_STRING, wxString can be constructed from std::string (but
-    provides wxWidgets-compatible API).}
 @itemdef{wxUSE_UNICODE, Compiled with Unicode support (default in wxWidgets
     3.0, non-Unicode build will be deprecated in the future).}
 @itemdef{wxUSE_UNICODE_WCHAR, wxString uses wchar_t buffer for internal storage
index 7a9adb99bf90dde84b8456e8dcffa153b7346c46..f3cd17cec2b24cf39164d44feb0e8be061478aae 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