#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCPP__ 20010301
+#define __GLIBCPP__ 20010719
// This is necessary until GCC supports separate template
// compilation.
// by the compiler, but instead instantiated into the library binary.
#define _GLIBCPP_FULLY_COMPLIANT_HEADERS 1
+// Define this to permit user-level control of the expansion of string
+// buffers (via a fn pointer), see basic_string.* for more.
+//#define _GLIBCPP_ALLOC_CONTROL
+
// To enable older, ARM-style iostreams and other anachronisms use this.
//#define _GLIBCPP_DEPRECATED 1
// Use corrected code from the committee library group's issues list.
#define _GLIBCPP_RESOLVE_LIB_DEFECTS 1
-// From SGI's stl_config.h; generic settings and user hooks (_NOTHREADS).
-#if defined(_PTHREADS) && !defined(_NOTHREADS)
-# define __STL_PTHREADS
-#endif
-#if defined(_UITHREADS) && !defined(_PTHREADS) && !defined(_NOTHREADS)
-# define __STL_UITHREADS
-#endif
-
-// Concept-checking code is off by default unless users define
-// the _STL_USE_CONCEPT_CHECKS hook.
-//#define _STL_USE_CONCEPT_CHECKS 1
+// Enable concept checking code from the boost libraries.
+//#define _GLIBCPP_CONCEPT_CHECKS 1
+
+// Map gthr.h abstraction to that required for STL. Do not key off of
+// __GTHREADS at this point since we haven't seen the correct symbol
+// yet, instead setup so that include/bits/stl_threads.h will know to
+// include gthr.h instead of any other type of thread support. Note:
+// that gthr.h may well map to gthr-single.h which is a correct way to
+// express no threads support in gcc. As a user, do not define
+// _NOTHREADS without consideration of the consequences (e.g. it is an
+// internal ABI change).
+#define __STL_GTHREADS
+#define __STL_THREADS
+#define __STL_VOLATILE volatile
// This is also a user hook, but via -f[no-]exceptions, not direct #defines.
#ifdef __EXCEPTIONS
-# define __STL_USE_EXCEPTIONS
-# define __STL_TRY try
-# define __STL_CATCH_ALL catch(...)
-# define __STL_THROW(x) throw x
-# define __STL_RETHROW throw
-# define __STL_NOTHROW throw()
-# define __STL_UNWIND(action) catch(...) { action; throw; }
+# define __STL_USE_EXCEPTIONS
+# define __STL_TRY try
+# define __STL_CATCH_ALL catch(...)
+# define __STL_THROW(x) throw x
+# define __STL_RETHROW throw
+# define __STL_NOTHROW throw()
+# define __STL_UNWIND(action) catch(...) { action; throw; }
#else
-# define __STL_TRY
-# define __STL_CATCH_ALL if (false)
-# define __STL_THROW(x)
-# define __STL_RETHROW
-# define __STL_NOTHROW
-# define __STL_UNWIND(action)
+# define __STL_TRY
+# define __STL_CATCH_ALL if (false)
+# define __STL_THROW(x)
+# define __STL_RETHROW
+# define __STL_NOTHROW
+# define __STL_UNWIND(action)
#endif
-// This is the "underlying allocator"
-#define __USE_MALLOC
-
-// Define this to permit user-level control of the expansion of string
-// buffers (via a fn pointer), see basic_string.* for more.
-//#define _GLIBCPP_ALLOC_CONTROL
+// Default to the typically high-speed, pool-based allocator (as
+// libstdc++-v2) instead of the malloc-based allocator (libstdc++-v3
+// snapshots). See libstdc++-v3/docs/html/17_intro/howto.html for
+// details on why you don't want to override this setting. Ensure
+// that threads are properly configured on your platform before
+// assigning blame to the STL container-memory allocator. After doing
+// so, please report any possible issues to libstdc++@gcc.gnu.org .
+// Do not blindly #define __USE_MALLOC here or on the command line.
// The remainder of the prewritten config is mostly automatic; all the
// user hooks are listed above.
-#ifdef _REENTRANT
-# define __STL_THREADS
-#endif
-#ifdef _PTHREADS
-# define __STL_PTHREADS
-#endif
-//#ifndef __STRICT_ANSI__
-//# define __STL_LONG_LONG
-//#endif
-
-// 20010302 pme -- this is only used in bits/concept_checks.h
-//#if (__GNUC__ < 2) || (__GNUC__ == 2 && __GNUC_MINOR__ < 95)
-# define __STL_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE
-//#endif
-
-// Mingw32, GCC compiler using the Microsoft C runtime (settings taken from
-// SGI's stl_config.h)
-#if defined(__MINGW32__)
-# define __STL_NO_DRAND48
-# ifdef _MT
-# define __STL_WIN32THREADS
-# endif
-#endif
-
-// Cygwin32, GCC compiler on MS Windows (settings taken from SGI's
-// stl_config.h)
-#if defined(__CYGWIN__)
-# define __STL_NO_DRAND48
-#endif
-
-// XXX Only used in the SGI rope extensions; this is from stl_config.h and
+// XXX
+// Only used in the SGI rope extensions; this is from stl_config.h and
// should be cleaned up.
-#ifdef __STL_ASSERTIONS
-# include <stdio.h>
-# define __stl_assert(expr) \
- if (!(expr)) { fprintf(stderr, "%s:%d STL assertion failure: %s\n", \
- __FILE__, __LINE__, # expr); abort(); }
-#else
# define __stl_assert(expr)
-#endif
-
-
-#if defined(__STL_WIN32THREADS) || defined(__STL_SGI_THREADS) \
- || defined(__STL_PTHREADS) || defined(__STL_UITHREADS)
-# define __STL_THREADS
-# define __STL_VOLATILE volatile
-#else
-# define __STL_VOLATILE
-#endif
+/** @namespace std
+ * @brief Everything defined by the ISO C++ Standard is within namespace std.
+ */
// End of prewritten config; the discovered settings follow.
-
-