Add wxUSE_STD_CONTAINERS and turn it on by default.

Previously, wxUSE_STL enabled both implicit conversion of wxString to
std::[w]string and use of standard containers for the implementation of their
wx equivalents. Split up the two roles now by allowing to enable the use of
the standard containers independently of (backwards incompatible) implicit
conversion in wxString and actually enable wxUSE_STD_CONTAINERS by default.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-03-30 14:16:04 +00:00
parent 44a0071224
commit 01871bf642
39 changed files with 924 additions and 490 deletions

109
configure vendored
View File

@@ -1494,7 +1494,7 @@ do
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
done done
# There might be people who depend on the old broken behaviour: `$host' # There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc. # used to hold the argument of --host etc.
# FIXME: To remove some day. # FIXME: To remove some day.
build=$build_alias build=$build_alias
@@ -1689,9 +1689,11 @@ Optional Features:
--enable-debug_cntxt obsolete, don't use: use wxDebugContext --enable-debug_cntxt obsolete, don't use: use wxDebugContext
--enable-mem_tracing obsolete, don't use: create code with memory tracing --enable-mem_tracing obsolete, don't use: create code with memory tracing
--disable-shared create static library instead of shared --disable-shared create static library instead of shared
--enable-stl use STL for containers --enable-stl use standard C++ classes for everything
--enable-std_containers use standard C++ container classes
--enable-std_iostreams use standard C++ stream classes --enable-std_iostreams use standard C++ stream classes
--enable-std_string use standard C++ string classes --enable-std_string use standard C++ string classes
--enable-std_string_conv_in_wxstring provide implicit conversion to std::string in wxString
--disable-unicode compile without Unicode support --disable-unicode compile without Unicode support
--enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only) --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)
--enable-utf8 use UTF-8 representation for strings (Unix only) --enable-utf8 use UTF-8 representation for strings (Unix only)
@@ -2971,6 +2973,7 @@ esac
DEFAULT_wxUSE_ALL_FEATURES=yes DEFAULT_wxUSE_ALL_FEATURES=yes
DEFAULT_wxUSE_STD_CONTAINERS=$DEFAULT_STD_FLAG
DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG
DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG
@@ -4775,6 +4778,50 @@ fi
echo "${ECHO_T}$result" >&6; } echo "${ECHO_T}$result" >&6; }
enablestring=
defaultval=
if test -z "$defaultval"; then
if test x"$enablestring" = xdisable; then
defaultval=yes
else
defaultval=no
fi
fi
{ echo "$as_me:$LINENO: checking for --${enablestring:-enable}-std_containers" >&5
echo $ECHO_N "checking for --${enablestring:-enable}-std_containers... $ECHO_C" >&6; }
# Check whether --enable-std_containers was given.
if test "${enable_std_containers+set}" = set; then
enableval=$enable_std_containers;
if test "$enableval" = yes; then
wx_cv_use_std_containers='wxUSE_STD_CONTAINERS=yes'
else
wx_cv_use_std_containers='wxUSE_STD_CONTAINERS=no'
fi
else
wx_cv_use_std_containers='wxUSE_STD_CONTAINERS=${'DEFAULT_wxUSE_STD_CONTAINERS":-$defaultval}"
fi
eval "$wx_cv_use_std_containers"
if test x"$enablestring" = xdisable; then
if test $wxUSE_STD_CONTAINERS = no; then
result=yes
else
result=no
fi
else
result=$wxUSE_STD_CONTAINERS
fi
{ echo "$as_me:$LINENO: result: $result" >&5
echo "${ECHO_T}$result" >&6; }
enablestring= enablestring=
defaultval= defaultval=
if test -z "$defaultval"; then if test -z "$defaultval"; then
@@ -4863,6 +4910,50 @@ fi
echo "${ECHO_T}$result" >&6; } echo "${ECHO_T}$result" >&6; }
enablestring=
defaultval=
if test -z "$defaultval"; then
if test x"$enablestring" = xdisable; then
defaultval=yes
else
defaultval=no
fi
fi
{ echo "$as_me:$LINENO: checking for --${enablestring:-enable}-std_string_conv_in_wxstring" >&5
echo $ECHO_N "checking for --${enablestring:-enable}-std_string_conv_in_wxstring... $ECHO_C" >&6; }
# Check whether --enable-std_string_conv_in_wxstring was given.
if test "${enable_std_string_conv_in_wxstring+set}" = set; then
enableval=$enable_std_string_conv_in_wxstring;
if test "$enableval" = yes; then
wx_cv_use_std_string_conv_in_wxstring='wxUSE_STD_STRING_CONV_IN_WXSTRING=yes'
else
wx_cv_use_std_string_conv_in_wxstring='wxUSE_STD_STRING_CONV_IN_WXSTRING=no'
fi
else
wx_cv_use_std_string_conv_in_wxstring='wxUSE_STD_STRING_CONV_IN_WXSTRING=${'DEFAULT_wxUSE_STD_STRING_CONV_IN_WXSTRING":-$defaultval}"
fi
eval "$wx_cv_use_std_string_conv_in_wxstring"
if test x"$enablestring" = xdisable; then
if test $wxUSE_STD_STRING_CONV_IN_WXSTRING = no; then
result=yes
else
result=no
fi
else
result=$wxUSE_STD_STRING_CONV_IN_WXSTRING
fi
{ echo "$as_me:$LINENO: result: $result" >&5
echo "${ECHO_T}$result" >&6; }
enablestring=disable enablestring=disable
defaultval= defaultval=
if test -z "$defaultval"; then if test -z "$defaultval"; then
@@ -44881,6 +44972,13 @@ _ACEOF
fi fi
if test "$wxUSE_STD_CONTAINERS" = "yes"; then
cat >>confdefs.h <<\_ACEOF
#define wxUSE_STD_CONTAINERS 1
_ACEOF
fi
if test "$wxUSE_STD_IOSTREAM" = "yes"; then if test "$wxUSE_STD_IOSTREAM" = "yes"; then
cat >>confdefs.h <<\_ACEOF cat >>confdefs.h <<\_ACEOF
#define wxUSE_STD_IOSTREAM 1 #define wxUSE_STD_IOSTREAM 1
@@ -44895,6 +44993,13 @@ _ACEOF
fi fi
if test "$wxUSE_STD_STRING_CONV_IN_WXSTRING" = "yes"; then
cat >>confdefs.h <<\_ACEOF
#define wxUSE_STD_STRING_CONV_IN_WXSTRING 1
_ACEOF
fi
if test "$wxUSE_STDPATHS" = "yes"; then if test "$wxUSE_STDPATHS" = "yes"; then
cat >>confdefs.h <<\_ACEOF cat >>confdefs.h <<\_ACEOF
#define wxUSE_STDPATHS 1 #define wxUSE_STDPATHS 1

View File

@@ -372,6 +372,7 @@ dnl wxUSE_ALL_FEATURES which is the only which has to be set to "yes" by
dnl default) dnl default)
DEFAULT_wxUSE_ALL_FEATURES=yes DEFAULT_wxUSE_ALL_FEATURES=yes
DEFAULT_wxUSE_STD_CONTAINERS=$DEFAULT_STD_FLAG
DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG
DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG
@@ -699,9 +700,11 @@ dnl global compile options
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
WX_ARG_DISABLE(shared, [ --disable-shared create static library instead of shared], wxUSE_SHARED) WX_ARG_DISABLE(shared, [ --disable-shared create static library instead of shared], wxUSE_SHARED)
WX_ARG_ENABLE(stl, [ --enable-stl use STL for containers], wxUSE_STL) WX_ARG_ENABLE(stl, [ --enable-stl use standard C++ classes for everything], wxUSE_STL)
WX_ARG_ENABLE(std_containers,[ --enable-std_containers use standard C++ container classes], wxUSE_STD_CONTAINERS)
WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM) WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM)
WX_ARG_ENABLE(std_string, [ --enable-std_string use standard C++ string classes], wxUSE_STD_STRING) WX_ARG_ENABLE(std_string, [ --enable-std_string use standard C++ string classes], wxUSE_STD_STRING)
WX_ARG_ENABLE(std_string_conv_in_wxstring, [ --enable-std_string_conv_in_wxstring provide implicit conversion to std::string in wxString], wxUSE_STD_STRING_CONV_IN_WXSTRING)
WX_ARG_DISABLE(unicode, [ --disable-unicode compile without Unicode support], wxUSE_UNICODE) WX_ARG_DISABLE(unicode, [ --disable-unicode compile without Unicode support], wxUSE_UNICODE)
WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU) WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU)
WX_ARG_ENABLE_PARAM(utf8, [ --enable-utf8 use UTF-8 representation for strings (Unix only)], wxUSE_UNICODE_UTF8) WX_ARG_ENABLE_PARAM(utf8, [ --enable-utf8 use UTF-8 representation for strings (Unix only)], wxUSE_UNICODE_UTF8)
@@ -5968,6 +5971,10 @@ if test "$wxUSE_BUSYINFO" = "yes"; then
AC_DEFINE(wxUSE_BUSYINFO) AC_DEFINE(wxUSE_BUSYINFO)
fi fi
if test "$wxUSE_STD_CONTAINERS" = "yes"; then
AC_DEFINE(wxUSE_STD_CONTAINERS)
fi
if test "$wxUSE_STD_IOSTREAM" = "yes"; then if test "$wxUSE_STD_IOSTREAM" = "yes"; then
AC_DEFINE(wxUSE_STD_IOSTREAM) AC_DEFINE(wxUSE_STD_IOSTREAM)
fi fi
@@ -5976,6 +5983,10 @@ if test "$wxUSE_STD_STRING" = "yes"; then
AC_DEFINE(wxUSE_STD_STRING) AC_DEFINE(wxUSE_STD_STRING)
fi fi
if test "$wxUSE_STD_STRING_CONV_IN_WXSTRING" = "yes"; then
AC_DEFINE(wxUSE_STD_STRING_CONV_IN_WXSTRING)
fi
if test "$wxUSE_STDPATHS" = "yes"; then if test "$wxUSE_STDPATHS" = "yes"; then
AC_DEFINE(wxUSE_STDPATHS) AC_DEFINE(wxUSE_STDPATHS)
fi fi

View File

@@ -439,6 +439,8 @@ Major new features in this release
All: All:
- Use standard implementations of container classes by default, you need to
explicitly set wxUSE_STD_CONTAINERS to 0 to use wxWidgets implementations.
- Added cwd and env arguments to wxExecute() (Emilien Kia). - Added cwd and env arguments to wxExecute() (Emilien Kia).
- Added "rest" argument to wxString::Before{First,Last}(). - Added "rest" argument to wxString::Before{First,Last}().
- Added wxThread::OnKill() and OnDelete() callbacks. - Added wxThread::OnKill() and OnDelete() callbacks.

View File

@@ -28,7 +28,7 @@ inline int wxCMPFUNC_CONV wxStringSortDescending(wxString* s1, wxString* s2)
return wxStringSortAscending(s2, s1); return wxStringSortAscending(s2, s1);
} }
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include "wx/dynarray.h" #include "wx/dynarray.h"
@@ -100,7 +100,7 @@ private:
} }
}; };
#else // if !wxUSE_STL #else // if !wxUSE_STD_CONTAINERS
// this shouldn't be defined for compilers not supporting template methods or // this shouldn't be defined for compilers not supporting template methods or
// without std::distance() // without std::distance()
@@ -384,7 +384,7 @@ public:
{ Copy(array); } { Copy(array); }
}; };
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
// this class provides a temporary wxString* from a // this class provides a temporary wxString* from a
// wxArrayString // wxArrayString

View File

@@ -85,7 +85,7 @@
#endif #endif
// deriving wxWin containers from STL ones changes them completely: // deriving wxWin containers from STL ones changes them completely:
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#define __WX_BO_STL ",STL containers" #define __WX_BO_STL ",STL containers"
#else #else
#define __WX_BO_STL ",wx containers" #define __WX_BO_STL ",wx containers"

View File

@@ -299,6 +299,22 @@
# endif # endif
#endif /* !defined(wxUSE_SOCKETS) */ #endif /* !defined(wxUSE_SOCKETS) */
#ifndef wxUSE_STD_CONTAINERS
# ifdef wxABORT_ON_CONFIG_ERROR
# error "wxUSE_STD_CONTAINERS must be defined, please read comment near the top of this file."
# else
# define wxUSE_STD_CONTAINERS 0
# endif
#endif /* !defined(wxUSE_STD_CONTAINERS) */
#ifndef wxUSE_STD_STRING_CONV_IN_WXSTRING
# ifdef wxABORT_ON_CONFIG_ERROR
# error "wxUSE_STD_STRING_CONV_IN_WXSTRING must be defined, please read comment near the top of this file."
# else
# define wxUSE_STD_STRING_CONV_IN_WXSTRING 0
# endif
#endif /* !defined(wxUSE_STD_STRING_CONV_IN_WXSTRING) */
#ifndef wxUSE_STREAMS #ifndef wxUSE_STREAMS
# ifdef wxABORT_ON_CONFIG_ERROR # ifdef wxABORT_ON_CONFIG_ERROR
# error "wxUSE_STREAMS must be defined, please read comment near the top of this file." # error "wxUSE_STREAMS must be defined, please read comment near the top of this file."

View File

@@ -89,6 +89,16 @@
class 'bar'" */ class 'bar'" */
# pragma warning(disable:4251) # pragma warning(disable:4251)
/*
This is a similar warning which occurs when deriving from standard
containers. MSDN even mentions that it can be ignored in this case
(albeit only in debug build while the warning is the same in release
too and seems equally harmless).
*/
#if wxUSE_STD_CONTAINERS
# pragma warning(disable:4275)
#endif /// wxUSE_STD_CONTAINERS
# ifdef __VISUALC5__ # ifdef __VISUALC5__
/* For VC++ 5.0 for release mode, the warning 'C4702: unreachable code */ /* For VC++ 5.0 for release mode, the warning 'C4702: unreachable code */
/* is buggy, and occurs for code that does actually get executed */ /* is buggy, and occurs for code that does actually get executed */
@@ -2760,7 +2770,7 @@ typedef int (* LINKAGEMODE wxListIterateFunction)(void *current);
#endif #endif
#if defined(__CYGWIN__) && defined(__WXMSW__) #if defined(__CYGWIN__) && defined(__WXMSW__)
# if wxUSE_STL || defined(wxUSE_STD_STRING) # if wxUSE_STD_CONTAINERS || defined(wxUSE_STD_STRING)
/* /*
NASTY HACK because the gethostname in sys/unistd.h which the gnu NASTY HACK because the gethostname in sys/unistd.h which the gnu
stl includes and wx builds with by default clash with each other stl includes and wx builds with by default clash with each other

View File

@@ -13,7 +13,7 @@
#include "wx/defs.h" #include "wx/defs.h"
#include "wx/utils.h" #include "wx/utils.h"
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include "wx/beforestd.h" #include "wx/beforestd.h"
#include <algorithm> #include <algorithm>
@@ -199,7 +199,7 @@ public:
} }
}; };
#else // STL #else // !wxUSE_STD_CONTAINERS
template <typename T> template <typename T>
class wxDList class wxDList
@@ -845,6 +845,6 @@ public:
} */ } */
}; };
#endif // wxUSE_STL/!wxUSE_STL #endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS
#endif // _WX_DLIST_H_ #endif // _WX_DLIST_H_

View File

@@ -14,7 +14,7 @@
#include "wx/defs.h" #include "wx/defs.h"
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include "wx/beforestd.h" #include "wx/beforestd.h"
#include <vector> #include <vector>
#include <algorithm> #include <algorithm>
@@ -81,7 +81,7 @@ typedef int (wxCMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2);
// you cast "SomeArray *" as "BaseArray *" and then delete it) // you cast "SomeArray *" as "BaseArray *" and then delete it)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
template<class T> template<class T>
class wxArray_SortFunction class wxArray_SortFunction
@@ -203,12 +203,12 @@ public: \
} \ } \
} }
#else // if !wxUSE_STL #else // if !wxUSE_STD_CONTAINERS
#define _WX_DECLARE_BASEARRAY(T, name, classexp) \ #define _WX_DECLARE_BASEARRAY(T, name, classexp) \
classexp name \ classexp name \
{ \ { \
typedef CMPFUNC SCMPFUNC; /* for compatibility wuth wxUSE_STL */ \ typedef CMPFUNC SCMPFUNC; /* for compatibility wuth wxUSE_STD_CONTAINERS */ \
public: \ public: \
name(); \ name(); \
name(const name& array); \ name(const name& array); \
@@ -307,7 +307,7 @@ private: \
T *m_pItems; \ T *m_pItems; \
} }
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
// ============================================================================ // ============================================================================
// The private helper macros containing the core of the array classes // The private helper macros containing the core of the array classes
@@ -325,7 +325,7 @@ private: \
// _WX_DEFINE_TYPEARRAY: array for simple types // _WX_DEFINE_TYPEARRAY: array for simple types
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
// in STL case we don't need the entire base arrays hack as standard container // in STL case we don't need the entire base arrays hack as standard container
// don't suffer from alignment/storage problems as our home-grown do // don't suffer from alignment/storage problems as our home-grown do
@@ -335,7 +335,7 @@ private: \
#define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \ #define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \
_WX_DEFINE_TYPEARRAY(T, name, base, classexp) _WX_DEFINE_TYPEARRAY(T, name, base, classexp)
#else // if !wxUSE_STL #else // if !wxUSE_STD_CONTAINERS
// common declaration used by both _WX_DEFINE_TYPEARRAY and // common declaration used by both _WX_DEFINE_TYPEARRAY and
// _WX_DEFINE_TYPEARRAY_PTR // _WX_DEFINE_TYPEARRAY_PTR
@@ -505,7 +505,7 @@ public: \
#define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \ #define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \
_WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP_NONE) _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP_NONE)
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// _WX_DEFINE_SORTED_TYPEARRAY: sorted array for simple data types // _WX_DEFINE_SORTED_TYPEARRAY: sorted array for simple data types

View File

@@ -900,7 +900,7 @@ class WXDLLIMPEXP_CORE wxResourceCache: public wxList
{ {
public: public:
wxResourceCache() { } wxResourceCache() { }
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
wxResourceCache(const unsigned int keyType) : wxList(keyType) { } wxResourceCache(const unsigned int keyType) : wxList(keyType) { }
#endif #endif
virtual ~wxResourceCache(); virtual ~wxResourceCache();

View File

@@ -15,7 +15,7 @@
#include "wx/defs.h" #include "wx/defs.h"
#include "wx/string.h" #include "wx/string.h"
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
#include "wx/object.h" #include "wx/object.h"
#else #else
class WXDLLIMPEXP_FWD_BASE wxObject; class WXDLLIMPEXP_FWD_BASE wxObject;
@@ -80,7 +80,7 @@ protected:
}; };
class WXDLLIMPEXP_BASE wxHashTableBase class WXDLLIMPEXP_BASE wxHashTableBase
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
: public wxObject : public wxObject
#endif #endif
{ {

View File

@@ -15,9 +15,9 @@
#include "wx/string.h" #include "wx/string.h"
#include "wx/wxcrt.h" #include "wx/wxcrt.h"
// In wxUSE_STL build we prefer to use the standard hash map class but it can // In wxUSE_STD_CONTAINERS build we prefer to use the standard hash map class
// be either in non-standard hash_map header (old g++ and some other STL // but it can be either in non-standard hash_map header (old g++ and some other
// implementations) or in C++0x standard unordered_map which can in turn be // STL implementations) or in C++0x standard unordered_map which can in turn be
// available either in std::tr1 or std namespace itself // available either in std::tr1 or std namespace itself
// //
// To summarize: if std::unordered_map is available use it, otherwise use tr1 // To summarize: if std::unordered_map is available use it, otherwise use tr1
@@ -28,7 +28,7 @@
#define HAVE_STL_HASH_MAP #define HAVE_STL_HASH_MAP
#endif #endif
#if wxUSE_STL && \ #if wxUSE_STD_CONTAINERS && \
(defined(HAVE_STD_UNORDERED_MAP) || defined(HAVE_TR1_UNORDERED_MAP)) (defined(HAVE_STD_UNORDERED_MAP) || defined(HAVE_TR1_UNORDERED_MAP))
#if defined(HAVE_STD_UNORDERED_MAP) #if defined(HAVE_STD_UNORDERED_MAP)
@@ -42,7 +42,7 @@
#define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \ #define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \
typedef WX_HASH_MAP_NAMESPACE::unordered_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME typedef WX_HASH_MAP_NAMESPACE::unordered_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME
#elif wxUSE_STL && defined(HAVE_STL_HASH_MAP) #elif wxUSE_STD_CONTAINERS && defined(HAVE_STL_HASH_MAP)
#if defined(HAVE_EXT_HASH_MAP) #if defined(HAVE_EXT_HASH_MAP)
#include <ext/hash_map> #include <ext/hash_map>
@@ -59,7 +59,7 @@
#define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \ #define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \
typedef WX_HASH_MAP_NAMESPACE::hash_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME typedef WX_HASH_MAP_NAMESPACE::hash_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME
#else // !wxUSE_STL || no std::{hash,unordered}_map class available #else // !wxUSE_STD_CONTAINERS || no std::{hash,unordered}_map class available
#define wxNEEDS_WX_HASH_MAP #define wxNEEDS_WX_HASH_MAP

View File

@@ -17,7 +17,7 @@
// see comment in wx/hashmap.h which also applies to different standard hash // see comment in wx/hashmap.h which also applies to different standard hash
// set classes // set classes
#if wxUSE_STL && \ #if wxUSE_STD_CONTAINERS && \
(defined(HAVE_STD_UNORDERED_SET) || defined(HAVE_TR1_UNORDERED_SET)) (defined(HAVE_STD_UNORDERED_SET) || defined(HAVE_TR1_UNORDERED_SET))
#if defined(HAVE_STD_UNORDERED_SET) #if defined(HAVE_STD_UNORDERED_SET)
@@ -30,7 +30,7 @@
#error Update this code: unordered_set is available, but I do not know where. #error Update this code: unordered_set is available, but I do not know where.
#endif #endif
#elif wxUSE_STL && defined(HAVE_STL_HASH_MAP) #elif wxUSE_STD_CONTAINERS && defined(HAVE_STL_HASH_MAP)
#if defined(HAVE_EXT_HASH_MAP) #if defined(HAVE_EXT_HASH_MAP)
#include <ext/hash_set> #include <ext/hash_set>

View File

@@ -33,7 +33,7 @@
#include "wx/object.h" #include "wx/object.h"
#include "wx/string.h" #include "wx/string.h"
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include "wx/beforestd.h" #include "wx/beforestd.h"
#include <algorithm> #include <algorithm>
#include <iterator> #include <iterator>
@@ -48,7 +48,7 @@
class WXDLLIMPEXP_FWD_BASE wxObjectListNode; class WXDLLIMPEXP_FWD_BASE wxObjectListNode;
typedef wxObjectListNode wxNode; typedef wxObjectListNode wxNode;
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#define wxLIST_COMPATIBILITY #define wxLIST_COMPATIBILITY
@@ -346,7 +346,7 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str)
#define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name) #define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name)
#define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name) #define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name)
#else // if !wxUSE_STL #else // if !wxUSE_STD_CONTAINERS
// undef it to get rid of old, deprecated functions // undef it to get rid of old, deprecated functions
@@ -1148,7 +1148,7 @@ private:
#define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name) #define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name)
#define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name) #define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name)
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
// ============================================================================ // ============================================================================
// now we can define classes 100% compatible with the old ones // now we can define classes 100% compatible with the old ones
@@ -1162,7 +1162,7 @@ private:
// inline compatibility functions // inline compatibility functions
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxNodeBase deprecated methods // wxNodeBase deprecated methods
@@ -1197,26 +1197,26 @@ WX_DECLARE_LIST_2(wxObject, wxObjectList, wxObjectListNode,
class WXDLLIMPEXP_BASE wxList : public wxObjectList class WXDLLIMPEXP_BASE wxList : public wxObjectList
{ {
public: public:
#if defined(wxWARN_COMPAT_LIST_USE) && !wxUSE_STL #if defined(wxWARN_COMPAT_LIST_USE) && !wxUSE_STD_CONTAINERS
wxList() { }; wxList() { };
wxDEPRECATED( wxList(int key_type) ); wxDEPRECATED( wxList(int key_type) );
#elif !wxUSE_STL #elif !wxUSE_STD_CONTAINERS
wxList(int key_type = wxKEY_NONE); wxList(int key_type = wxKEY_NONE);
#endif #endif
// this destructor is required for Darwin // this destructor is required for Darwin
~wxList() { } ~wxList() { }
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
wxList& operator=(const wxList& list) wxList& operator=(const wxList& list)
{ if (&list != this) Assign(list); return *this; } { if (&list != this) Assign(list); return *this; }
// compatibility methods // compatibility methods
void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); } void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); }
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
}; };
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// wxStringList class for compatibility with the old code // wxStringList class for compatibility with the old code
@@ -1268,7 +1268,7 @@ private:
void DoCopy(const wxStringList&); // common part of copy ctor and operator= void DoCopy(const wxStringList&); // common part of copy ctor and operator=
}; };
#else // if wxUSE_STL #else // if wxUSE_STD_CONTAINERS
WX_DECLARE_LIST_XO(wxString, wxStringListBase, class WXDLLIMPEXP_BASE); WX_DECLARE_LIST_XO(wxString, wxStringListBase, class WXDLLIMPEXP_BASE);
@@ -1291,7 +1291,7 @@ public:
{ push_front(s); return GetFirst(); } { push_front(s); return GetFirst(); }
}; };
#endif // wxUSE_STL #endif // wxUSE_STD_CONTAINERS
#endif // wxLIST_COMPATIBILITY #endif // wxLIST_COMPATIBILITY

View File

@@ -9,7 +9,7 @@
// Licence: wxWindows licence // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#undef WX_DEFINE_LIST #undef WX_DEFINE_LIST
#define WX_DEFINE_LIST(name) \ #define WX_DEFINE_LIST(name) \
@@ -19,7 +19,7 @@
} \ } \
name::BaseListType name::EmptyList; name::BaseListType name::EmptyList;
#else // !wxUSE_STL #else // !wxUSE_STD_CONTAINERS
#undef WX_DEFINE_LIST_2 #undef WX_DEFINE_LIST_2
#define WX_DEFINE_LIST_2(T, name) \ #define WX_DEFINE_LIST_2(T, name) \
void wx##name##Node::DeleteData() \ void wx##name##Node::DeleteData() \
@@ -32,5 +32,5 @@
#undef WX_DEFINE_LIST #undef WX_DEFINE_LIST
#define WX_DEFINE_LIST(name) WX_DEFINE_LIST_2(_WX_LIST_ITEM_TYPE_##name, name) #define WX_DEFINE_LIST(name) WX_DEFINE_LIST_2(_WX_LIST_ITEM_TYPE_##name, name)
#endif // wxUSE_STL/!wxUSE_STL #endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS

View File

@@ -38,7 +38,7 @@ struct wxIsMovable
// (NB: we don't put this into string.h and choose to include wx/string.h from // (NB: we don't put this into string.h and choose to include wx/string.h from
// here instead so that rarely-used wxIsMovable<T> code isn't included by // here instead so that rarely-used wxIsMovable<T> code isn't included by
// everything) // everything)
#if !wxUSE_STL && !wxUSE_STRING_POS_CACHE #if !wxUSE_STD_STRING && !wxUSE_STRING_POS_CACHE
WX_DECLARE_TYPE_MOVABLE(wxString) WX_DECLARE_TYPE_MOVABLE(wxString)
#endif #endif

View File

@@ -201,15 +201,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -261,44 +252,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -314,6 +267,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -201,15 +201,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -261,44 +252,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -314,6 +267,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -201,15 +201,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -261,44 +252,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -314,6 +267,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -201,15 +201,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -261,44 +252,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -314,6 +267,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -202,15 +202,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -262,44 +253,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -315,6 +268,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -201,15 +201,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -261,44 +252,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -314,6 +267,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -197,15 +197,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -257,44 +248,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -310,6 +263,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -13,12 +13,12 @@
#include "wx/vector.h" #include "wx/vector.h"
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include <stack> #include <stack>
#define wxStack std::stack #define wxStack std::stack
#else // !wxUSE_STL #else // !wxUSE_STD_CONTAINERS
// Notice that unlike std::stack, wxStack currently always uses wxVector and // Notice that unlike std::stack, wxStack currently always uses wxVector and
// can't be used with any other underlying container type. // can't be used with any other underlying container type.
@@ -53,7 +53,7 @@ private:
container_type m_cont; container_type m_cont;
}; };
#endif // wxUSE_STL/!wxUSE_STL #endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS
// Deprecated macro-based class for compatibility only, don't use any more. // Deprecated macro-based class for compatibility only, don't use any more.

View File

@@ -1345,12 +1345,13 @@ public:
} }
#endif // wxUSE_STRING_POS_CACHE #endif // wxUSE_STRING_POS_CACHE
// even if we're not built with wxUSE_STL == 1 it is very convenient to allow // even if we're not built with wxUSE_STD_STRING_CONV_IN_WXSTRING == 1 it is
// implicit conversions from std::string to wxString and vice verse as this // very convenient to allow implicit conversions from std::string to wxString
// allows to use the same strings in non-GUI and GUI code, however we don't // and vice verse as this allows to use the same strings in non-GUI and GUI
// want to unconditionally add this ctor as it would make wx lib dependent on // code, however we don't want to unconditionally add this ctor as it would
// libstdc++ on some Linux versions which is bad, so instead we ask the // make wx lib dependent on libstdc++ on some Linux versions which is bad, so
// client code to define this wxUSE_STD_STRING symbol if they need it // instead we ask the client code to define this wxUSE_STD_STRING symbol if
// they need it
#if wxUSE_STD_STRING #if wxUSE_STD_STRING
#if wxUSE_UNICODE_WCHAR #if wxUSE_UNICODE_WCHAR
wxString(const wxStdWideString& str) : m_impl(str) {} wxString(const wxStdWideString& str) : m_impl(str) {}
@@ -1368,10 +1369,8 @@ public:
#endif #endif
#endif // wxUSE_STD_STRING #endif // wxUSE_STD_STRING
// Unlike ctor from std::string, we provide conversion to std::string only // Also always provide explicit conversions to std::[w]string in any case,
// if wxUSE_STL and not merely wxUSE_STD_STRING (which is on by default), // see below for the implicit ones.
// because it conflicts with operator const char/wchar_t* but we still
// provide explicit conversions to std::[w]string for convenience in any case
#if wxUSE_STD_STRING #if wxUSE_STD_STRING
// We can avoid a copy if we already use this string type internally, // We can avoid a copy if we already use this string type internally,
// otherwise we create a copy on the fly: // otherwise we create a copy on the fly:
@@ -1408,13 +1407,14 @@ public:
} }
#endif #endif
#if wxUSE_STL #if wxUSE_STD_STRING_CONV_IN_WXSTRING
// In wxUSE_STL case we also provide implicit conversions as there is no // Implicit conversions to std::[w]string are not provided by default as
// ambiguity with the const char/wchar_t* ones as they are disabled in this // they conflict with the implicit conversions to "const char/wchar_t *"
// build (for consistency with std::basic_string<>) // which we use for backwards compatibility but do provide them if
// explicitly requested.
operator wxStringToStdStringRetType() const { return ToStdString(); } operator wxStringToStdStringRetType() const { return ToStdString(); }
operator wxStringToStdWstringRetType() const { return ToStdWstring(); } operator wxStringToStdWstringRetType() const { return ToStdWstring(); }
#endif // wxUSE_STL #endif // wxUSE_STD_STRING_CONV_IN_WXSTRING
#undef wxStringToStdStringRetType #undef wxStringToStdStringRetType
#undef wxStringToStdWstringRetType #undef wxStringToStdWstringRetType
@@ -1654,11 +1654,12 @@ public:
operator wxCStrData() const { return c_str(); } operator wxCStrData() const { return c_str(); }
// the first two operators conflict with operators for conversion to // the first two operators conflict with operators for conversion to
// std::string and they must be disabled in STL build; the next one only // std::string and they must be disabled if those conversions are enabled;
// makes sense if conversions to char* are also defined and not defining it // the next one only makes sense if conversions to char* are also defined
// in STL build also helps us to get more clear error messages for the code // and not defining it in STL build also helps us to get more clear error
// which relies on implicit conversion to char* in STL build // messages for the code which relies on implicit conversion to char* in
#if !wxUSE_STL // STL build
#if !wxUSE_STD_STRING_CONV_IN_WXSTRING
operator const char*() const { return c_str(); } operator const char*() const { return c_str(); }
operator const wchar_t*() const { return c_str(); } operator const wchar_t*() const { return c_str(); }
@@ -1666,7 +1667,7 @@ public:
// wxWidgets versions: this is the same as conversion to const char * so it // wxWidgets versions: this is the same as conversion to const char * so it
// may fail! // may fail!
operator const void*() const { return c_str(); } operator const void*() const { return c_str(); }
#endif // wxUSE_STL #endif // !wxUSE_STD_STRING_CONV_IN_WXSTRING
// identical to c_str(), for MFC compatibility // identical to c_str(), for MFC compatibility
const wxCStrData GetData() const { return c_str(); } const wxCStrData GetData() const { return c_str(); }

View File

@@ -11,7 +11,7 @@
/* /*
This header implements std::string-like string class, wxStringImpl, that is This header implements std::string-like string class, wxStringImpl, that is
used by wxString to store the data. Alternatively, if wxUSE_STL=1, used by wxString to store the data. Alternatively, if wxUSE_STD_STRING=1,
wxStringImpl is just a typedef to std:: string class. wxStringImpl is just a typedef to std:: string class.
*/ */
@@ -50,15 +50,9 @@ extern WXDLLIMPEXP_DATA_BASE(const wxStringCharType*) wxEmptyStringImpl;
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// deal with STL/non-STL/non-STL-but-wxUSE_STD_STRING // deal with various build options
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// 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 // 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 // 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 // it you can predefine wxUSE_STL_BASED_WXSTRING as 0 when building the library

View File

@@ -200,15 +200,6 @@
// Recommended setting: 0 (this is still work in progress...) // Recommended setting: 0 (this is still work in progress...)
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
// Set wxUSE_STL to 1 to derive wxList(Foo) and wxArray(Foo) from
// std::list<Foo*> and std::vector<Foo*>, with a compatibility interface,
// and for wxHashMap to be implemented with templates.
//
// Default is 0
//
// Recommended setting: YMMV
#define wxUSE_STL 0
// Support for message/error logging. This includes wxLogXXX() functions and // Support for message/error logging. This includes wxLogXXX() functions and
// wxLog and derived classes. Don't set this to 0 unless you really know what // wxLog and derived classes. Don't set this to 0 unless you really know what
// you are doing. // you are doing.
@@ -260,44 +251,6 @@
// Recommended setting: 1 as setting it to 0 disables many other things // Recommended setting: 1 as setting it to 0 disables many other things
#define wxUSE_STREAMS 1 #define wxUSE_STREAMS 1
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM and wxUSE_STD_STRING.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled (default), wx streams are used everywhere and wxWidgets doesn't
// depend on the standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 0
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable conversion to standard C++ string if 1.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. // Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf.
// Note that if the system's implementation does not support positional // Note that if the system's implementation does not support positional
// parameters, setting this to 1 forces the use of the wxWidgets implementation // parameters, setting this to 1 forces the use of the wxWidgets implementation
@@ -313,6 +266,89 @@
// Recommended setting: 1 if you want to support multiple languages // Recommended setting: 1 if you want to support multiple languages
#define wxUSE_PRINTF_POS_PARAMS 1 #define wxUSE_PRINTF_POS_PARAMS 1
// ----------------------------------------------------------------------------
// Interoperability with the standard library.
// ----------------------------------------------------------------------------
// Set wxUSE_STL to 1 to enable maximal interoperability with the standard
// library, even at the cost of backwards compatibility.
//
// Default is 0
//
// Recommended setting: 0 as the options below already provide a relatively
// good level of interoperability and changing this option arguably isn't worth
// diverging from the official builds of the library.
#define wxUSE_STL 0
// This is not a real option but is used as the default value for
// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS.
//
// Currently the Digital Mars and Watcom compilers come without standard C++
// library headers by default, wxUSE_STD_STRING can be set to 1 if you do have
// them (e.g. from STLPort).
//
// VC++ 5.0 does include standard C++ library headers, however they produce
// many warnings that can't be turned off when compiled at warning level 4.
#if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0
#else
#define wxUSE_STD_DEFAULT 1
#endif
// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<>
// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but
// usually more limited) implementations are used which allows to avoid the
// dependency on the C++ run-time library.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 unless you use a system without good implementation
// of STL.
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
// Use standard C++ streams if 1 instead of wx streams in some places. If
// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the
// standard streams library.
//
// Notice that enabling this does not replace wx streams with std streams
// everywhere, in a lot of places wx streams are used no matter what.
//
// Default is 1 if compiler supports it.
//
// Recommended setting: 1 if you use the standard streams anyhow and so
// dependency on the standard streams library is not a
// problem
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
// Enable minimal interoperability with the standard C++ string class if 1.
// "Minimal" means that wxString can be constructed from std::string or
// std::wstring but can't be implicitly converted to them. You need to enable
// the option below for the latter.
//
// Default is 1 for most compilers.
//
// Recommended setting: 1 unless you want to ensure your program doesn't use
// the standard C++ library at all.
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT
// Make wxString as much interchangeable with std::[w]string as possible, in
// particular allow implicit conversion of wxString to either of these classes.
// This comes at a price (or a benefit, depending on your point of view) of not
// allowing implicit conversion to "const char *" and "const wchar_t *".
//
// Because a lot of existing code relies on these conversions, this option is
// disabled by default but can be enabled for your build if you don't care
// about compatibility.
//
// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled.
//
// Recommended setting: 0 to remain compatible with the official builds of
// wxWidgets.
#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// non GUI features selection // non GUI features selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -14,7 +14,7 @@
#include "wx/defs.h" #include "wx/defs.h"
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include <vector> #include <vector>
#include <algorithm> #include <algorithm>
@@ -26,7 +26,7 @@ inline void wxVectorSort(wxVector<T>& v)
std::sort(v.begin(), v.end()); std::sort(v.begin(), v.end());
} }
#else // !wxUSE_STL #else // !wxUSE_STD_CONTAINERS
#include "wx/utils.h" #include "wx/utils.h"
#include "wx/scopeguard.h" #include "wx/scopeguard.h"
@@ -485,7 +485,7 @@ void wxVectorSort(wxVector<T>& v)
#endif // wxUSE_STL/!wxUSE_STL #endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS
#if WXWIN_COMPATIBILITY_2_8 #if WXWIN_COMPATIBILITY_2_8
#define WX_DECLARE_VECTORBASE(obj, cls) typedef wxVector<obj> cls #define WX_DECLARE_VECTORBASE(obj, cls) typedef wxVector<obj> cls

View File

@@ -189,8 +189,6 @@
#define wxUSE_EXTENDED_RTTI 0 #define wxUSE_EXTENDED_RTTI 0
#define wxUSE_STL 0
#define wxUSE_LOG 0 #define wxUSE_LOG 0
#define wxUSE_LOGWINDOW 0 #define wxUSE_LOGWINDOW 0
@@ -205,6 +203,12 @@
#define wxUSE_STREAMS 0 #define wxUSE_STREAMS 0
#define wxUSE_PRINTF_POS_PARAMS 0
#define wxUSE_STL 0
#if defined(__DMC__) || defined(__WATCOMC__) \ #if defined(__DMC__) || defined(__WATCOMC__) \
|| (defined(_MSC_VER) && _MSC_VER < 1200) || (defined(_MSC_VER) && _MSC_VER < 1200)
#define wxUSE_STD_DEFAULT 0 #define wxUSE_STD_DEFAULT 0
@@ -212,11 +216,14 @@
#define wxUSE_STD_DEFAULT 0 #define wxUSE_STD_DEFAULT 0
#endif #endif
#define wxUSE_STD_CONTAINERS wxUSE_STD_DEFAULT
#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT #define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT
#define wxUSE_STD_STRING wxUSE_STD_DEFAULT #define wxUSE_STD_STRING wxUSE_STD_DEFAULT
#define wxUSE_PRINTF_POS_PARAMS 0 #define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL
#define wxUSE_LONGLONG 0 #define wxUSE_LONGLONG 0

View File

@@ -33,7 +33,7 @@
wxArrayString::wxArrayString(size_t sz, const char** a) wxArrayString::wxArrayString(size_t sz, const char** a)
{ {
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
Init(false); Init(false);
#endif #endif
for (size_t i=0; i < sz; i++) for (size_t i=0; i < sz; i++)
@@ -42,7 +42,7 @@ wxArrayString::wxArrayString(size_t sz, const char** a)
wxArrayString::wxArrayString(size_t sz, const wchar_t** a) wxArrayString::wxArrayString(size_t sz, const wchar_t** a)
{ {
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
Init(false); Init(false);
#endif #endif
for (size_t i=0; i < sz; i++) for (size_t i=0; i < sz; i++)
@@ -51,14 +51,14 @@ wxArrayString::wxArrayString(size_t sz, const wchar_t** a)
wxArrayString::wxArrayString(size_t sz, const wxString* a) wxArrayString::wxArrayString(size_t sz, const wxString* a)
{ {
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
Init(false); Init(false);
#endif #endif
for (size_t i=0; i < sz; i++) for (size_t i=0; i < sz; i++)
Add(a[i]); Add(a[i]);
} }
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
// size increment = min(50% of current size, ARRAY_MAXSIZE_INCREMENT) // size increment = min(50% of current size, ARRAY_MAXSIZE_INCREMENT)
#define ARRAY_MAXSIZE_INCREMENT 4096 #define ARRAY_MAXSIZE_INCREMENT 4096
@@ -462,7 +462,7 @@ bool wxArrayString::operator==(const wxArrayString& a) const
return true; return true;
} }
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
// =========================================================================== // ===========================================================================
// wxJoin and wxSplit // wxJoin and wxSplit

View File

@@ -172,9 +172,9 @@ bool wxCommandProcessor::Redo()
{ {
wxCommand *redoCommand = NULL; wxCommand *redoCommand = NULL;
wxList::compatibility_iterator redoNode wxList::compatibility_iterator redoNode
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
= NULL // just to avoid warnings = NULL // just to avoid warnings
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
; ;
if ( m_currentCommand ) if ( m_currentCommand )

View File

@@ -927,9 +927,9 @@ void wxDCImpl::DoDrawSpline( const wxPointList *points )
wx_spline_add_point(x1, y1); wx_spline_add_point(x1, y1);
while ((node = node->GetNext()) while ((node = node->GetNext())
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
!= NULL != NULL
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
) )
{ {
p = node->GetData(); p = node->GetData();

View File

@@ -696,13 +696,13 @@ void wxGCDCImpl::DoDrawSpline(const wxPointList *points)
path.MoveToPoint( x1 , y1 ); path.MoveToPoint( x1 , y1 );
path.AddLineToPoint( cx1 , cy1 ); path.AddLineToPoint( cx1 , cy1 );
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
while ((node = node->GetNext()) != NULL) while ((node = node->GetNext()) != NULL)
#else #else
while ((node = node->GetNext())) while ((node = node->GetNext()))
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
{ {
p = node->GetData(); p = node->GetData();

View File

@@ -28,7 +28,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> // for memmove #include <string.h> // for memmove
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
// we cast the value to long from which we cast it to void * in IndexForInsert: // we cast the value to long from which we cast it to void * in IndexForInsert:
// this can't work if the pointers are not big enough // this can't work if the pointers are not big enough
@@ -383,7 +383,7 @@ _WX_DEFINE_BASEARRAY(double, wxBaseArrayDouble)
#pragma warning(pop) #pragma warning(pop)
#endif #endif
#else // wxUSE_STL #else // wxUSE_STD_CONTAINERS
#include "wx/arrstr.h" #include "wx/arrstr.h"
@@ -491,4 +491,4 @@ int wxSortedArrayString::Index(const wxString& str,
return it - begin(); return it - begin();
} }
#endif // !wxUSE_STL/wxUSE_STL #endif // !wxUSE_STD_CONTAINERS/wxUSE_STD_CONTAINERS

View File

@@ -33,7 +33,7 @@
#include "wx/crt.h" #include "wx/crt.h"
#endif #endif
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
// ============================================================================= // =============================================================================
// implementation // implementation
@@ -756,16 +756,16 @@ wxNode *wxStringList::Prepend(const wxChar *s)
#endif // wxLIST_COMPATIBILITY #endif // wxLIST_COMPATIBILITY
#else // wxUSE_STL = 1 #else // wxUSE_STD_CONTAINERS = 1
#include "wx/listimpl.cpp" #include "wx/listimpl.cpp"
WX_DEFINE_LIST(wxObjectList) WX_DEFINE_LIST(wxObjectList)
// with wxUSE_STL wxStringList contains wxString objects, not pointers // with wxUSE_STD_CONTAINERS wxStringList contains wxString objects, not pointers
void _WX_LIST_HELPER_wxStringListBase::DeleteFunction( wxString WXUNUSED(X) ) void _WX_LIST_HELPER_wxStringListBase::DeleteFunction( wxString WXUNUSED(X) )
{ {
} }
wxStringListBase::BaseListType wxStringListBase::EmptyList; wxStringListBase::BaseListType wxStringListBase::EmptyList;
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS

View File

@@ -2967,19 +2967,19 @@ wxAccessible* wxWindowBase::CreateAccessible()
// list classes implementation // list classes implementation
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
#include "wx/listimpl.cpp" #include "wx/listimpl.cpp"
WX_DEFINE_LIST(wxWindowList) WX_DEFINE_LIST(wxWindowList)
#else // !wxUSE_STL #else // !wxUSE_STD_CONTAINERS
void wxWindowListNode::DeleteData() void wxWindowListNode::DeleteData()
{ {
delete (wxWindow *)GetData(); delete (wxWindow *)GetData();
} }
#endif // wxUSE_STL/!wxUSE_STL #endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// borders // borders
@@ -3283,8 +3283,8 @@ void wxWindowBase::DoMoveInTabOrder(wxWindow *win, WindowOrder move)
wxWindowList::compatibility_iterator i = siblings.Find(win); wxWindowList::compatibility_iterator i = siblings.Find(win);
wxCHECK_RET( i, wxT("MoveBefore/AfterInTabOrder(): win is not a sibling") ); wxCHECK_RET( i, wxT("MoveBefore/AfterInTabOrder(): win is not a sibling") );
// unfortunately, when wxUSE_STL == 1 DetachNode() is not implemented so we // unfortunately, when wxUSE_STD_CONTAINERS == 1 DetachNode() is not
// can't just move the node around // implemented so we can't just move the node around
wxWindow *self = (wxWindow *)this; wxWindow *self = (wxWindow *)this;
siblings.DeleteObject(self); siblings.DeleteObject(self);
if ( move == OrderAfter ) if ( move == OrderAfter )

View File

@@ -1048,11 +1048,11 @@ void wxMSWDCImpl::DoDrawSpline(const wxPointList *points)
lppt[ bezier_pos ] = lppt[ bezier_pos-1 ]; lppt[ bezier_pos ] = lppt[ bezier_pos-1 ];
bezier_pos++; bezier_pos++;
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
while ((node = node->GetNext()) != NULL) while ((node = node->GetNext()) != NULL)
#else #else
while ((node = node->GetNext())) while ((node = node->GetNext()))
#endif // !wxUSE_STL #endif // !wxUSE_STD_CONTAINERS
{ {
p = (wxPoint *)node->GetData(); p = (wxPoint *)node->GetData();
x1 = x2; x1 = x2;

View File

@@ -78,7 +78,7 @@ bool wxChoice::Create(wxWindow *parent,
MacPostControlCreate( pos, size ); MacPostControlCreate( pos, size );
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
if ( style & wxCB_SORT ) if ( style & wxCB_SORT )
// autosort // autosort
m_strings = wxArrayString( 1 ); m_strings = wxArrayString( 1 );
@@ -109,7 +109,7 @@ int wxChoice::DoInsertItems(const wxArrayStringsAdapter & items,
{ {
unsigned int idx; unsigned int idx;
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
if ( IsSorted() ) if ( IsSorted() )
{ {
wxArrayString::iterator wxArrayString::iterator
@@ -118,7 +118,7 @@ int wxChoice::DoInsertItems(const wxArrayStringsAdapter & items,
m_strings.insert( insertPoint, items[i] ); m_strings.insert( insertPoint, items[i] );
} }
else else
#endif // wxUSE_STL #endif // wxUSE_STD_CONTAINERS
{ {
idx = pos; idx = pos;
m_strings.Insert( items[i], idx ); m_strings.Insert( items[i], idx );
@@ -189,7 +189,7 @@ unsigned int wxChoice::GetCount() const
int wxChoice::FindString( const wxString& s, bool bCase ) const int wxChoice::FindString( const wxString& s, bool bCase ) const
{ {
#if !wxUSE_STL #if !wxUSE_STD_CONTAINERS
// Avoid assert for non-default args passed to sorted array Index // Avoid assert for non-default args passed to sorted array Index
if ( IsSorted() ) if ( IsSorted() )
bCase = true; bCase = true;

View File

@@ -545,7 +545,7 @@ void SurfaceImpl::MeasureWidths(Font &font, const char *s, int len, int *positio
#else #else
// If not unicode then just use the widths we have // If not unicode then just use the widths we have
#if wxUSE_STL #if wxUSE_STD_CONTAINERS
std::copy(tpos.begin(), tpos.end(), positions); std::copy(tpos.begin(), tpos.end(), positions);
#else #else
memcpy(positions, tpos.begin(), len * sizeof(int)); memcpy(positions, tpos.begin(), len * sizeof(int));