+2005-12-18 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/c++config: Add in revised namespace associations.
+ _GLIBCXX_BEGIN_NAMESPACE: New macro.
+ _GLIBCXX_END_NAMESPACE: Same.
+ _GLIBCXX_BEGIN_NESTED_NAMESPACE: Same.
+ _GLIBCXX_END_NESTED_NAMESPACE: Same.
+ * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace.
+ * configure: Regenerated.
+ * config.h.in: Same.
+ * config/abi/pre/gnu-versioned-namespace.ver: New.
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested
+ debug mode items.
+ * include/Makefile.am (${host_builddir}/c++config.h): Fill in
+ values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION.
+ * include/Makefile.in: Regnerate.
+ * src/compatibility.cc: Alias new, nested definitions to exported
+ symbols from non-nested __gnu_debug.
+ * src/Makefile.am: Add in ENABLE_SYMVERS_GNU_NAMESPACE.
+ * src/Makefile.in: Regenerate.
+
+ * docs/html/debug_mode.html: Revise for nested design.
+ * docs/html/debug.html: Use debug qualifications instead of
+ __gnu_debug.
+ * docs/html/configopts.html: Revise documentation for
+ --enable-symvers.
+
+ * include/debug/formatter: Simplify namespace qualifications for
+ current, nested-only reality. Add top-level namespace alias,
+ namespace debug, for debug-mode containers.
+ * include/debug/safe_iterator.h: Same.
+ * include/debug/set.h: Same.
+ * include/debug/hash_multimap.h: Same.
+ * include/debug/hash_set.h: Same.
+ * include/debug/bitset
+ * include/debug/safe_sequence.h: Same.
+ * include/debug/multiset.h: Same.
+ * include/debug/safe_base.h: Same.
+ * include/debug/functions.h: Same.
+ * include/debug/safe_iterator.tcc
+ * include/debug/hash_multiset.h: Same.
+ * include/debug/vector
+ * include/debug/map.h: Same.
+ * include/debug/deque
+ * include/debug/hash_map.h: Same.
+ * include/debug/string
+ * include/debug/macros.h: Same.
+ * include/debug/list
+ * include/debug/debug.h: Same.
+ * include/debug/multimap.h: Same.
+ * src/debug.cc: Same.
+ * testsuite/23_containers/vector/invalidation/1.cc: Cleanups.
+ * testsuite/23_containers/vector/invalidation/2.cc: Same.
+ * testsuite/23_containers/vector/invalidation/3.cc: Same.
+ * testsuite/23_containers/vector/invalidation/4.cc: Same.
+ * testsuite/23_containers/deque/invalidation/1.cc: Same.
+ * testsuite/23_containers/deque/invalidation/2.cc: Same.
+ * testsuite/23_containers/deque/invalidation/3.cc: Same.
+ * testsuite/23_containers/deque/invalidation/4.cc: Same.
+ * testsuite/23_containers/multiset/invalidation/1.cc: Same.
+ * testsuite/23_containers/multiset/invalidation/2.cc: Same.
+ * testsuite/23_containers/multimap/invalidation/1.cc: Same.
+ * testsuite/23_containers/multimap/invalidation/2.cc: Same.
+ * testsuite/23_containers/bitset/invalidation/1.cc: Same.
+ * testsuite/23_containers/bitset/cons/16020.cc: Same.
+ * testsuite/23_containers/bitset/operations/13838.cc: Same.
+ * testsuite/23_containers/list/invalidation/1.cc: Same.
+ * testsuite/23_containers/list/invalidation/2.cc: Same.
+ * testsuite/23_containers/list/invalidation/3.cc: Same.
+ * testsuite/23_containers/list/invalidation/4.cc: Same.
+ * testsuite/23_containers/set/invalidation/1.cc: Same.
+ * testsuite/23_containers/set/invalidation/2.cc: Same.
+ * testsuite/23_containers/map/invalidation/1.cc: Same.
+ * testsuite/23_containers/map/invalidation/2.cc: Same.
+ * testsuite/23_containers/map/insert/16813.cc: Same.
+
+ * include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and
+ friends.
+ * include/bits/stl_list.h: Same.
+ * include/bits/stl_map.h: Same.
+ * include/bits/stl_algobase.h: Same.
+ * include/bits/localefwd.h: Same.
+ * include/bits/valarray_array.tcc: Same.
+ * include/bits/valarray_after.h: Same.
+ * include/bits/gslice_array.h: Same.
+ * include/bits/stl_queue.h: Same.
+ * include/bits/gslice.h: Same.
+ * include/bits/locale_facets.tcc: Same.
+ * include/bits/locale_classes.h: Same.
+ * include/bits/stl_set.h: Same.
+ * include/bits/locale_facets.h: Same.
+ * include/bits/stl_stack.h: Same.
+ * include/bits/stl_iterator_base_types.h: Same.
+ * include/bits/stl_heap.h: Same.
+ * include/bits/indirect_array.h: Same.
+ * include/bits/atomicity.h: Same.
+ * include/bits/stream_iterator.h: Same.
+ * include/bits/concurrence.h: Same.
+ * include/bits/basic_string.h: Same.
+ * include/bits/stl_multimap.h: Same.
+ * include/bits/stl_pair.h: Same.
+ * include/bits/basic_ios.tcc: Same.
+ * include/bits/stl_raw_storage_iter.h: Same.
+ * include/bits/stl_vector.h: Same.
+ * include/bits/stl_numeric.h: Same.
+ * include/bits/ios_base.h: Same.
+ * include/bits/stl_deque.h: Same.
+ * include/bits/istream.tcc: Same.
+ * include/bits/postypes.h: Same.
+ * include/bits/stl_multiset.h: Same.
+ * include/bits/mask_array.h: Same.
+ * include/bits/stl_uninitialized.h: Same.
+ * include/bits/ostream.tcc: Same.
+ * include/bits/slice_array.h: Same.
+ * include/bits/boost_concept_check.h: Same.
+ * include/bits/sstream.tcc: Same.
+ * include/bits/stl_iterator_base_funcs.h: Same.
+ * include/bits/char_traits.h: Same.
+ * include/bits/stl_algo.h: Same.
+ * include/bits/stringfwd.h: Same.
+ * include/bits/c++config
+ * include/bits/stl_iterator.h: Same.
+ * include/bits/valarray_array.h: Same.
+ * include/bits/stl_tempbuf.h: Same.
+ * include/bits/vector.tcc: Same.
+ * include/bits/deque.tcc: Same.
+ * include/bits/stl_bvector.h: Same.
+ * include/bits/basic_string.tcc: Same.
+ * include/bits/list.tcc: Same.
+ * include/bits/streambuf_iterator.h: Same.
+ * include/bits/valarray_before.h: Same.
+ * include/bits/stl_construct.h: Same.
+ * include/bits/stl_function.h: Same.
+ * include/bits/cpp_type_traits.h: Same.
+ * include/bits/streambuf.tcc: Same.
+ * include/bits/allocator.h: Same.
+ * include/bits/stl_tree.h: Same.
+ * include/bits/fstream.tcc: Same.
+ * include/bits/stl_relops.h: Same.
+ * include/bits/functexcept.h: Same.
+ * include/std/std_valarray.h: Same.
+ * include/std/std_iostream.h: Same.
+ * include/std/std_streambuf.h: Same.
+ * include/std/std_bitset.h: Same.
+ * include/std/std_iosfwd.h: Same.
+ * include/std/std_iomanip.h: Same.
+ * include/std/std_fstream.h: Same.
+ * include/std/std_limits.h: Same.
+ * include/std/std_stdexcept.h: Same.
+ * include/std/std_istream.h: Same.
+ * include/std/std_complex.h: Same.
+ * include/std/std_memory.h: Same.
+ * include/std/std_ostream.h: Same.
+ * include/std/std_sstream.h: Same.
+ * include/c_std/std_csignal.h: Same.
+ * include/c_std/std_cstdlib.h: Same.
+ * include/c_std/std_cstdio.h: Same.
+ * include/c_std/std_cstdarg.h: Same.
+ * include/c_std/std_cctype.h: Same.
+ * include/c_std/std_cmath.h: Same.
+ * include/c_std/std_ctime.h: Same.
+ * include/c_std/std_clocale.h: Same.
+ * include/c_std/std_csetjmp.h: Same.
+ * include/c_std/std_cwchar.h: Same.
+ * include/c_std/std_cstring.h: Same.
+ * include/c_std/std_cstddef.h: Same.
+ * include/c_std/std_cwctype.h: Same.
+ * include/backward/iterator.h: Same.
+ * include/backward/set.h: Same.
+ * include/backward/hashtable.h: Same.
+ * include/backward/fstream.h: Same.
+ * include/backward/tempbuf.h: Same.
+ * include/backward/istream.h: Same.
+ * include/backward/bvector.h: Same.
+ * include/backward/stack.h: Same.
+ * include/backward/rope.h: Same.
+ * include/backward/complex.h: Same.
+ * include/backward/ostream.h: Same.
+ * include/backward/heap.h: Same.
+ * include/backward/iostream.h: Same.
+ * include/backward/function.h: Same.
+ * include/backward/multimap.h: Same.
+ * include/backward/pair.h: Same.
+ * include/backward/stream.h: Same.
+ * include/backward/iomanip.h: Same.
+ * include/backward/strstream
+ * include/backward/slist.h: Same.
+ * include/backward/tree.h: Same.
+ * include/backward/vector.h: Same.
+ * include/backward/deque.h: Same.
+ * include/backward/multiset.h: Same.
+ * include/backward/list.h: Same.
+ * include/backward/map.h: Same.
+ * include/backward/algobase.h: Same.
+ * include/backward/hash_map.h: Same.
+ * include/backward/algo.h: Same.
+ * include/backward/queue.h: Same.
+ * include/backward/streambuf.h: Same.
+ * src/allocator-inst.cc: Same.
+ * src/complex_io.cc: Same.
+ * src/localename.cc: Same.
+ * src/limits.cc: Same.
+ * src/ios_failure.cc: Same.
+ * src/locale-misc-inst.cc: Same.
+ * src/streambuf-inst.cc: Same.
+ * src/misc-inst.cc: Same.
+ * src/concept-inst.cc: Same.
+ * src/ios_locale.cc: Same.
+ * src/pool_allocator.cc: Same.
+ * src/fstream-inst.cc: Same.
+ * src/istream-inst.cc: Same.
+ * src/string-inst.cc: Same.
+ * src/locale_init.cc: Same.
+ * src/ctype.cc: Same.
+ * src/strstream.cc: Same.
+ * src/ostream-inst.cc: Same.
+ * src/functexcept.cc: Same.
+ * src/streambuf.cc: Same.
+ * src/sstream-inst.cc: Same.
+ * src/ios.cc: Same.
+ * src/valarray-inst.cc: Same.
+ * src/locale.cc: Same.
+ * src/tree.cc: Same.
+ * src/stdexcept.cc: Same.
+ * src/istream.cc: Same.
+ * src/compatibility.cc: Same.
+ * src/locale-inst.cc: Same.
+ * src/globals_io.cc: Same.
+ * src/list.cc: Same.
+ * src/ios_init.cc: Same.
+ * src/locale_facets.cc: Same.
+ * src/codecvt.cc: Same.
+
+ * include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1).
+ * include/tr1/boost_shared_ptr.h: Same.
+ * include/tr1/tuple
+ * include/tr1/hashtable
+ * include/tr1/type_traits_fwd.h: Same.
+ * include/tr1/unordered_set
+ * include/tr1/functional
+ * include/tr1/ref_fwd.h: Same.
+ * include/tr1/utility
+ * include/tr1/type_traits
+ * include/tr1/array
+
+ * include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx).
+ * include/ext/typelist.h: Same.
+ * include/ext/hash_map: Same.
+ * include/ext/rc_string_base.h: Same.
+ * include/ext/pool_allocator.h: Same.
+ * include/ext/iterator: Same.
+ * include/ext/rb_tree: Same.
+ * include/ext/numeric: Same.
+ * include/ext/vstring.tcc: Same.
+ * include/ext/sso_string_base.h: Same.
+ * include/ext/stdio_filebuf.h: Same.
+ * include/ext/algorithm: Same.
+ * include/ext/codecvt_specializations.h: Same.
+ * include/ext/new_allocator.h: Same.
+ * include/ext/array_allocator.h: Same.
+ * include/ext/vstring_util.h: Same.
+ * include/ext/vstring_fwd.h: Same.
+ * include/ext/mt_allocator.h: Same.
+ * include/ext/debug_allocator.h: Same.
+ * include/ext/slist: Same.
+ * include/ext/stdio_sync_filebuf.h: Same.
+ * include/ext/hash_fun.h: Same.
+ * include/ext/malloc_allocator.h: Same.
+ * include/ext/functional: Same.
+ * include/ext/bitmap_allocator.h: Same.
+ * include/ext/pod_char_traits.h: Same.
+ * include/ext/vstring.h: Same.
+ * include/ext/ropeimpl.h: Same.
+ * include/ext/hash_set: Same.
+ * include/ext/memory: Same.
+ * include/ext/rope: Same.
+ * include/bits/boost_concept_check.h: Same.
+ * include/bits/stl_iterator.h: Same.
+ * include/bits/char_traits.h: Same.
+ * include/bits/cpp_type_traits.h: Same.
+ * include/bits/concurrence.h: Same.
+ * include/bits/atomicity.h: Same.
+ * config/locale/gnu/numeric_members.cc: Same.
+ * config/locale/gnu/collate_members.cc: Same.
+ * config/locale/gnu/ctype_members.cc: Same.
+ * config/locale/gnu/c_locale.cc: Same.
+ * config/locale/gnu/codecvt_members.cc: Same.
+ * config/locale/gnu/messages_members.cc: Same.
+ * config/locale/gnu/c_locale.h: Same.
+ * config/locale/gnu/monetary_members.cc: Same.
+ * config/locale/gnu/time_members.cc: Same.
+ * config/locale/ieee_1003.1-2001/c_locale.h: Same.
+ * config/locale/generic/numeric_members.cc: Same.
+ * config/locale/generic/collate_members.cc: Same.
+ * config/locale/generic/ctype_members.cc: Same.
+ * config/locale/generic/c_locale.cc: Same.
+ * config/locale/generic/codecvt_members.cc: Same.
+ * config/locale/generic/messages_members.cc: Same.
+ * config/locale/generic/c_locale.h: Same.
+ * config/locale/generic/monetary_members.cc: Same.
+ * config/locale/generic/time_members.cc: Same.
+ * config/os/aix/atomicity.h: Same.
+ * config/os/irix/atomicity.h: Same.
+ * config/cpu/powerpc/atomicity.h: Same.
+ * config/cpu/cris/atomicity.h: Same.
+ * config/cpu/ia64/atomicity.h: Same.
+ * config/cpu/alpha/atomicity.h: Same.
+ * config/cpu/m68k/atomicity.h: Same.
+ * config/cpu/hppa/atomicity.h: Same.
+ * config/cpu/mips/atomicity.h: Same.
+ * config/cpu/sparc/atomicity.h: Same.
+ * config/cpu/i386/atomicity.h: Same.
+ * config/cpu/i486/atomicity.h: Same.
+ * config/cpu/sh/atomicity.h: Same.
+ * config/cpu/generic/atomicity.h: Same.
+ * config/cpu/s390/atomicity.h: Same.
+ * config/io/c_io_stdio.h: Same.
+ * config/io/basic_file_stdio.cc: Same.
+ * config/io/basic_file_stdio.h: Same.
+ * src/misc-inst.cc: Same.
+ * src/concept-inst.cc: Same.
+ * src/ext-inst.cc: Same.
+ * src/string-inst.cc: Same.
+ * src/pool_allocator.cc: Same.
+ * src/bitmap_allocator.cc: Same.
+ * src/mt_allocator.cc: Same.
+ * libsupc++/exception: Same.
+ * libsupc++/vterminate.cc: Same.
+ * testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map.
+ * testsuite/ext/hash_map/14648.cc: Same.
+
+ * libsupc++/eh_alloc.cc: Correct comment line spacing.
+
2005-12-18 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_algobase.h (__copy_normal::copy_n): Uglify
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
GLIBCXX_ENABLE(symvers,$1,[=STYLE],
[enables symbol versioning of the shared library],
- [permit yes|no|gnu|darwin|darwin-export])
+ [permit yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export])
# If we never went through the GLIBCXX_CHECK_LINKER_FEATURES macro, then we
# don't know enough about $LD to do tricks...
fi
# Check to see if 'gnu' can win.
-if test $enable_symvers = gnu; then
+if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
AC_MSG_CHECKING([for shared libgcc])
ac_save_CFLAGS="$CFLAGS"
AC_DEFINE(_GLIBCXX_SYMVER_GNU, 1,
[Define to use GNU versioning in the shared library.])
;;
+ gnu-versioned-namespace)
+ SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+ AC_DEFINE(_GLIBCXX_SYMVER_GNU_NAMESPACE, 1,
+ [Define to use GNU namespace versioning in the shared library.])
+ ;;
darwin)
SYMVER_FILE=config/abi/pre/gnu.ver
AC_DEFINE(_GLIBCXX_SYMVER_DARWIN, 1,
AC_SUBST(port_specific_symbol_files)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS, test $enable_symvers != no)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU, test $enable_symvers = gnu)
+GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU_NAMESPACE, test $enable_symvers = gnu-versioned-namespace)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_DARWIN, test $enable_symvers = darwin)
AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers)
/* Define to use GNU versioning in the shared library. */
#undef _GLIBCXX_SYMVER_GNU
+/* Define to use GNU namespace versioning in the shared library. */
+#undef _GLIBCXX_SYMVER_GNU_NAMESPACE
+
/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>,
<stdio.h>, and <stdlib.h> can be used or exposed. */
#undef _GLIBCXX_USE_C99
--- /dev/null
+## Linker script for GNU namespace versioning.
+##
+## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+##
+## This file is part of the libstdc++ version 3 distribution.
+##
+## This file is part of the GNU ISO C++ Library. This library is free
+## software; you can redistribute it and/or modify it under the
+## terms of the GNU General Public License as published by the
+## Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with this library; see the file COPYING. If not, write to the Free
+## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+## USA.
+
+GLIBCXX_3.7 {
+
+ global:
+
+ # Names inside the 'extern' block are demangled names.
+ extern "C++"
+ {
+ std::_6::*;
+ std::*
+ };
+
+ # operator new(size_t)
+ _Znw[jm];
+ # operator new(size_t, std::nothrow_t const&)
+ _Znw[jm]RKSt9nothrow_t;
+
+ # operator delete(void*)
+ _ZdlPv;
+ # operator delete(void*, std::nothrow_t const&)
+ _ZdlPvRKSt9nothrow_t;
+
+ # operator new[](size_t)
+ _Zna[jm];
+ # operator new[](size_t, std::nothrow_t const&)
+ _Zna[jm]RKSt9nothrow_t;
+
+ # operator delete[](void*)
+ _ZdaPv;
+ # operator delete[](void*, std::nothrow_t const&)
+ _ZdaPvRKSt9nothrow_t;
+
+ # function-scope static objects requires a guard variable.
+ _ZGVNSt*;
+
+ _ZTT*;
+ _ZTV*;
+
+ _ZTI*;
+ _ZTS*;
+
+ _ZTv0_n*;
+
+ # std::__convert_to_v
+ _ZNSt2_614__convert_to_v*;
+
+ # std::__copy_streambufs
+ _ZNSt2_617__copy_streambufsI[cw]NS_11char_traitsI[cw]EEEEiPNS_15basic_streambufIT_T0_EES7_;
+
+ # __gnu_cxx::__atomic_add
+ # __gnu_cxx::__exchange_and_add
+ _ZN9__gnu_cxx2_612__atomic_addEPV[il][il];
+ _ZN9__gnu_cxx2_618__exchange_and_addEPV[li][il];
+
+ # __gnu_cxx::__pool
+ _ZN9__gnu_cxx2_66__poolILb[01]EE13_M_initializeEv;
+ _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reserve_blockE[jm][jm];
+ _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reclaim_blockEPc[jm];
+ _ZN9__gnu_cxx2_66__poolILb[01]EE10_M_destroyEv;
+ _ZN9__gnu_cxx2_66__poolILb1EE16_M_get_thread_idEv;
+
+ _ZN9__gnu_cxx2_617__pool_alloc_base9_M_refillE[jm];
+ _ZN9__gnu_cxx2_617__pool_alloc_base16_M_get_free_listE[jm];
+ _ZN9__gnu_cxx2_617__pool_alloc_base12_M_get_mutexEv;
+
+ _ZN9__gnu_cxx2_69free_list6_M_getE[jm];
+ _ZN9__gnu_cxx2_69free_list8_M_clearEv;
+
+ local:
+ *;
+};
+
+
+# Symbols in the support library (libsupc++) have their own tag.
+CXXABI_1.7 {
+
+ global:
+ __cxa_allocate_exception;
+ __cxa_bad_cast;
+ __cxa_bad_typeid;
+ __cxa_begin_catch;
+ __cxa_begin_cleanup;
+ __cxa_call_unexpected;
+ __cxa_current_exception_type;
+ __cxa_demangle;
+ __cxa_end_catch;
+ __cxa_end_cleanup;
+ __cxa_free_exception;
+ __cxa_get_exception_ptr;
+ __cxa_get_globals;
+ __cxa_get_globals_fast;
+ __cxa_guard_abort;
+ __cxa_guard_acquire;
+ __cxa_guard_release;
+ __cxa_pure_virtual;
+ __cxa_rethrow;
+ __cxa_throw;
+ __cxa_type_match;
+ __cxa_vec_cctor;
+ __cxa_vec_cleanup;
+ __cxa_vec_ctor;
+ __cxa_vec_delete2;
+ __cxa_vec_delete3;
+ __cxa_vec_delete;
+ __cxa_vec_dtor;
+ __cxa_vec_new2;
+ __cxa_vec_new3;
+ __cxa_vec_new;
+ __gxx_personality_v0;
+ __gxx_personality_sj0;
+ __dynamic_cast;
+
+ # *_type_info classes, ctor and dtor
+ _ZN10__cxxabiv117__array_type_info*;
+ _ZN10__cxxabiv117__class_type_info*;
+ _ZN10__cxxabiv116__enum_type_info*;
+ _ZN10__cxxabiv120__function_type_info*;
+ _ZN10__cxxabiv123__fundamental_type_info*;
+ _ZN10__cxxabiv117__pbase_type_info*;
+ _ZN10__cxxabiv129__pointer_to_member_type_info*;
+ _ZN10__cxxabiv119__pointer_type_info*;
+ _ZN10__cxxabiv120__si_class_type_info*;
+ _ZN10__cxxabiv121__vmi_class_type_info*;
+
+ # *_type_info classes, member functions
+ _ZNK10__cxxabiv117__class_type_info*;
+ _ZNK10__cxxabiv120__function_type_info*;
+ _ZNK10__cxxabiv117__pbase_type_info*;
+ _ZNK10__cxxabiv129__pointer_to_member_type_info*;
+ _ZNK10__cxxabiv119__pointer_type_info*;
+ _ZNK10__cxxabiv120__si_class_type_info*;
+ _ZNK10__cxxabiv121__vmi_class_type_info*;
+
+ # virtual table
+ _ZTVN10__cxxabiv117__array_type_infoE;
+ _ZTVN10__cxxabiv117__class_type_infoE;
+ _ZTVN10__cxxabiv116__enum_type_infoE;
+ _ZTVN10__cxxabiv120__function_type_infoE;
+ _ZTVN10__cxxabiv123__fundamental_type_infoE;
+ _ZTVN10__cxxabiv117__pbase_type_infoE;
+ _ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
+ _ZTVN10__cxxabiv119__pointer_type_infoE;
+ _ZTVN10__cxxabiv120__si_class_type_infoE;
+ _ZTVN10__cxxabiv121__vmi_class_type_infoE;
+
+ # typeinfo structure (and some names)
+ _ZTI[a-z];
+ _ZTIP[a-z];
+ _ZTIPK[a-z];
+ _ZTIN10__cxxabiv117__array_type_infoE;
+ _ZTIN10__cxxabiv117__class_type_infoE;
+ _ZTIN10__cxxabiv116__enum_type_infoE;
+ _ZTIN10__cxxabiv120__function_type_infoE;
+ _ZTIN10__cxxabiv123__fundamental_type_infoE;
+ _ZTIN10__cxxabiv117__pbase_type_infoE;
+ _ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
+ _ZTIN10__cxxabiv119__pointer_type_infoE;
+ _ZTIN10__cxxabiv120__si_class_type_infoE;
+ _ZTIN10__cxxabiv121__vmi_class_type_infoE;
+
+ # typeinfo name
+ _ZTS[a-z];
+ _ZTSP[a-z];
+ _ZTSPK[a-z];
+ _ZTSN10__cxxabiv117__array_type_infoE;
+ _ZTSN10__cxxabiv117__class_type_infoE;
+ _ZTSN10__cxxabiv116__enum_type_infoE;
+ _ZTSN10__cxxabiv120__function_type_infoE;
+ _ZTSN10__cxxabiv123__fundamental_type_infoE;
+ _ZTSN10__cxxabiv117__pbase_type_infoE;
+ _ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
+ _ZTSN10__cxxabiv119__pointer_type_infoE;
+ _ZTSN10__cxxabiv120__si_class_type_infoE;
+ _ZTSN10__cxxabiv121__vmi_class_type_infoE;
+
+ # __gnu_cxx::_verbose_terminate_handler()
+ _ZN9__gnu_cxx2_627__verbose_terminate_handlerEv;
+
+ local:
+ *;
+};
-## Linker script for GNU ld 2.13.91+ only.
+## Linker script for GNU versioning (GNU ld 2.13.91+ only.)
##
## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
##
-## This file is part of the libstdc++ version 3 distribution.
-##
## This file is part of the GNU ISO C++ Library. This library is free
## software; you can redistribute it and/or modify it under the
## terms of the GNU General Public License as published by the
std::__num_base::_S_atoms_out;
std::__moneypunct_cache*;
std::__numpunct_cache*;
- std::__timepunct_cache*;
- __gnu_debug::_Safe_iterator_base*;
- __gnu_debug::_Safe_sequence_base*;
- __gnu_debug::_Error_formatter*;
- __gnu_norm::_List_node_base::hook*;
- __gnu_norm::_List_node_base::swap*;
- __gnu_norm::_List_node_base::unhook*;
- __gnu_norm::_List_node_base::reverse*;
- __gnu_norm::_List_node_base::transfer*
+ std::__timepunct_cache*
};
# Names not in an 'extern' block are mangled names.
_ZN9__gnu_cxx12__atomic_add*;
_ZN9__gnu_cxx18__exchange_and_add*;
+ # __gnu_debug
+_ZN10__gnu_norm15_List_node_base4hookEPS0_;
+_ZN10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZN10__gnu_norm15_List_node_base6unhookEv;
+_ZN10__gnu_norm15_List_node_base7reverseEv;
+_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
+_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv;
+_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv;
+_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
+_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
+_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
+_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
+_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
+_ZNK11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+
# operator new(size_t)
_Znw[jm];
# operator new(size_t, std::nothrow_t const&)
_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetE[jm];
+_ZNSt10__gnu_norm15_List_node_base4hookEPS0_;
+_ZNSt10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZNSt10__gnu_norm15_List_node_base6unhookEv;
+_ZNSt10__gnu_norm15_List_node_base7reverseEv;
+_ZNSt10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_ZNKSt11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNKSt11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNKSt11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNKSt11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNKSt11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNKSt11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+_ZNKSt11__gnu_debug19_Safe_iterator_base11_M_singularEv;
+_ZNKSt11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
+_ZNSt11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
+_ZNSt11__gnu_debug19_Safe_iterator_base9_M_detachEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
+
} GLIBCXX_3.4.6;
# Symbols in the support library (libsupc++) have their own tag.
#
# This is a placeholder file. It does nothing and is not used.
#
-# If you are seeing this file as your linker script (named linker.map), then
-# either 1) the configuration process determined that symbol versioning should
-# not be done, or 2) you specifically turned it off.
-#
+# If you are seeing this file as your linker script (named
+# libstdc++-symbols.ver), then either 1) the configuration process
+# determined that symbol versioning should not be done, or 2) you
+# specifically turned it off. (ie, --disable-symvers).
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
void
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: Generic version -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
__glibcxx_mutex_define_initialized(atomic_mutex);
} // namespace __gnu_internal
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: PA-RISC version -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/c++config.h>
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<int _Inst>
struct _Atomicity_lock
{
__asm__ __volatile__ ("stw,ma %1,0(%0)"
: : "r" (&lock), "r" (tmp) : "memory");
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: x86, x >= 3 version -*- C++ -*-
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<int __inst>
struct _Atomicity_lock
{
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
: "=m" (*__mem) : "ir" (__val), "m" (*__mem));
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-}
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: m68k version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if ( defined(__mc68020__) || defined(__mc68030__) \
|| defined(__mc68040__) || defined(__mc68060__) ) \
&& !defined(__mcpu32__)
// architecturally guaranteed to be atomic.
__exchange_and_add(__mem, __val);
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: MIPS version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
: "r"(__mem), "r"(__val)
: "memory" );
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: S/390 version -*- C++ -*-
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
-// Low-level functions for atomic operations: Generic version -*- C++ -*-
+// Low-level functions for atomic operations: sh version -*- C++ -*-
// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
__glibcxx_mutex_define_initialized(atomic_mutex);
} // namespace __gnu_internal
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* !__SH4A__ */
// Low-level functions for atomic operations: Sparc version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#ifdef __arch64__
_Atomic_word
__attribute__ ((__unused__))
: "memory");
}
#endif /* __arch32__ */
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
} // namespace __gnu_internal
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Definitions for __basic_file<char>.
__basic_file<char>::__basic_file(__c_lock* /*__lock*/)
: _M_cfile(NULL), _M_cfile_created(false) { }
#endif
return 0;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
// Wrapper of C-language FILE struct -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/c++config.h>
#include <ios>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Generic declaration.
template<typename _CharT>
class __basic_file;
streamsize
showmanyc();
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
-// underlying io library -*- C++ -*-
+// Underlying io library details -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <cstddef>
#include <bits/gthr.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef __gthread_mutex_t __c_lock;
// for basic_file.h
static const __int_type _S_out = 0x10;
static const __int_type _S_trunc = 0x20;
};
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <ieeefp.h>
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations for all types used in num_get.
template<>
void
__c_locale
locale::facet::_S_clone_c_locale(__c_locale&)
{ return __c_locale(); }
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
{
"LC_CTYPE",
"LC_MONETARY",
"LC_MESSAGES"
};
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#define _GLIBCXX_NUM_CATEGORIES 0
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef int* __c_locale;
// Convert numeric value of type _Tv to string and return length of
}
return __ret;
}
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
// std::codecvt implementation details, generic version -*- C++ -*-
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations.
#ifdef _GLIBCXX_USE_WCHAR_T
codecvt_base::result
return __ret;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::collate implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// These are basically extensions to char_traits, and perhaps should
// be put there instead of here.
template<>
size_t __n) const
{ return wcsxfrm(__to, __from, __n); }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::ctype implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// NB: The other ctype<char> specializations are in src/locale.cc and
// various /config/os/* files.
template<>
}
}
#endif // _GLIBCXX_USE_WCHAR_T
-}
+
+_GLIBCXX_END_NAMESPACE
// std::messages implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations
template<>
string
messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
{ return __dfault; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::moneypunct implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Construct and return valid pattern consisting of some combination of:
// space none symbol sign value
money_base::pattern
moneypunct<wchar_t, false>::~moneypunct()
{ delete _M_data; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::numpunct implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
numpunct<char>::_M_initialize_numpunct(__c_locale)
numpunct<wchar_t>::~numpunct()
{ delete _M_data; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
+
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
__timepunct<char>::
_M_data->_M_amonth12 = L"Dec";
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
#include <langinfo.h>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
__c_locale
locale::facet::_S_clone_c_locale(__c_locale& __cloc)
{ return __duplocale(__cloc); }
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
{
"LC_CTYPE",
"LC_MEASUREMENT",
"LC_IDENTIFICATION"
};
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#define _GLIBCXX_NUM_CATEGORIES 6
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
extern "C" __typeof(uselocale) __uselocale;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef __locale_t __c_locale;
// Convert numeric value of type _Tv to string and return length of
#endif
return __ret;
}
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
// std::codecvt implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations.
#ifdef _GLIBCXX_USE_WCHAR_T
codecvt_base::result
return __ret;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::collate implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// These are basically extensions to char_traits, and perhaps should
// be put there instead of here.
template<>
size_t __n) const
{ return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::ctype implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// NB: The other ctype<char> specializations are in src/locale.cc and
// various /config/os/* files.
template<>
#endif
}
#endif // _GLIBCXX_USE_WCHAR_T
-}
+
+_GLIBCXX_END_NAMESPACE
// std::messages implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations.
template<>
string
# endif
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::moneypunct implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Construct and return valid pattern consisting of some combination of:
// space none symbol sign value
money_base::pattern
delete _M_data;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::numpunct implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
numpunct<wchar_t>::~numpunct()
{ delete _M_data; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
#include <bits/c++locale_internal.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
__timepunct<char>::
}
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <iconv.h> // For codecvt using iconv, iconv_t
#include <nl_types.h> // For messages
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef int* __c_locale;
-}
+
+_GLIBCXX_END_NAMESPACE
+
// Low-level functions for atomic operations: AIX version -*- C++ -*-
-// Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <sys/atomic_op.h>
}
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add (volatile _Atomic_word* __mem, int __val)
{
(void) ::fetch_and_add (const_cast<atomic_p>(__mem), __val);
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Low-level functions for atomic operations: IRIX version -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <mutex.h>
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{ return (_Atomic_word) test_then_add((unsigned long*) const_cast<_Atomic_word*>(__mem), __val); }
void
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_GNU_NAMESPACE_TRUE ENABLE_SYMVERS_GNU_NAMESPACE_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
enableval="$enable_symvers"
case "$enableval" in
- yes|no|gnu|darwin|darwin-export) ;;
+ yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export) ;;
*) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable symvers" >&5
echo "$as_me: error: Unknown argument to enable/disable symvers" >&2;}
{ (exit 1); exit 1; }; } ;;
fi
# Check to see if 'gnu' can win.
-if test $enable_symvers = gnu; then
+if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
echo "$as_me:$LINENO: checking for shared libgcc" >&5
echo $ECHO_N "checking for shared libgcc... $ECHO_C" >&6
cat >>confdefs.h <<\_ACEOF
#define _GLIBCXX_SYMVER_GNU 1
+_ACEOF
+
+ ;;
+ gnu-versioned-namespace)
+ SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_SYMVER_GNU_NAMESPACE 1
_ACEOF
;;
+
{ echo "$as_me:$LINENO: versioning on shared library symbols is $enable_symvers" >&5
echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
+if test $enable_symvers = gnu-versioned-namespace; then
+ ENABLE_SYMVERS_GNU_NAMESPACE_TRUE=
+ ENABLE_SYMVERS_GNU_NAMESPACE_FALSE='#'
+else
+ ENABLE_SYMVERS_GNU_NAMESPACE_TRUE='#'
+ ENABLE_SYMVERS_GNU_NAMESPACE_FALSE=
+fi
+
+
+
+
if test $enable_symvers = darwin; then
ENABLE_SYMVERS_DARWIN_TRUE=
ENABLE_SYMVERS_DARWIN_FALSE='#'
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${ENABLE_SYMVERS_GNU_NAMESPACE_TRUE}" && test -z "${ENABLE_SYMVERS_GNU_NAMESPACE_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_GNU_NAMESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_SYMVERS_GNU_NAMESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${ENABLE_SYMVERS_DARWIN_TRUE}" && test -z "${ENABLE_SYMVERS_DARWIN_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_DARWIN\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
s,@ENABLE_SYMVERS_FALSE@,$ENABLE_SYMVERS_FALSE,;t t
s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMVERS_GNU_TRUE,;t t
s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t
+s,@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@,$ENABLE_SYMVERS_GNU_NAMESPACE_TRUE,;t t
+s,@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@,$ENABLE_SYMVERS_GNU_NAMESPACE_FALSE,;t t
s,@ENABLE_SYMVERS_DARWIN_TRUE@,$ENABLE_SYMVERS_DARWIN_TRUE,;t t
s,@ENABLE_SYMVERS_DARWIN_FALSE@,$ENABLE_SYMVERS_DARWIN_FALSE,;t t
s,@baseline_dir@,$baseline_dir,;t t
</dd>
<dt><code>--enable-symvers[=style] </code></dt>
+
<dd><p>In 3.1 and later, tries to turn on symbol versioning in the
- shared library (if a shared library has been requested). The
- only 'style' currently supported is 'gnu' which requires that
- a recent version of the GNU linker be in use. With no style
- given, the configure script will try to guess if the 'gnu'
- style can be used, and if so, will turn it on. Hopefully
- people will volunteer to do other 'style' options.
+ shared library (if a shared library has been
+ requested). Values for 'style' that are currently supported
+ are 'gnu', 'gnu-versioned-namespace', 'darwin', and
+ 'darwin-export'. Both gnu- options require that a recent
+ version of the GNU linker be in use. Both darwin options are
+ equivalent. With no style given, the configure script will try
+ to guess if the 'gnu' style can be used, and if so, will turn
+ it on.
</p>
+
</dd>
<dt><code>--enable-libstdcxx-pch </code></dt>
<tr>
<td>std::bitset</td>
<td><bitset></td>
- <td>__gnu_debug::bitset</td>
+ <td>debug::bitset</td>
<td><debug/bitset></td>
</tr>
<tr>
<td>std::deque</td>
<td><deque></td>
- <td>__gnu_debug::deque</td>
+ <td>debug::deque</td>
<td><debug/deque></td>
</tr>
<tr>
<td>std::list</td>
<td><list></td>
- <td>__gnu_debug::list</td>
+ <td>debug::list</td>
<td><debug/list></td>
</tr>
<tr>
<td>std::map</td>
<td><map></td>
- <td>__gnu_debug::map</td>
+ <td>debug::map</td>
<td><debug/map></td>
</tr>
<tr>
<td>std::multimap</td>
<td><map></td>
- <td>__gnu_debug::multimap</td>
+ <td>debug::multimap</td>
<td><debug/map></td>
</tr>
<tr>
<td>std::multiset</td>
<td><set></td>
- <td>__gnu_debug::multiset</td>
+ <td>debug::multiset</td>
<td><debug/set></td>
</tr>
<tr>
<td>std::set</td>
<td><set></td>
- <td>__gnu_debug::set</td>
+ <td>debug::set</td>
<td><debug/set></td>
</tr>
<tr>
<td>std::string</td>
<td><string></td>
- <td>__gnu_debug::string</td>
+ <td>debug::string</td>
<td><debug/string></td>
</tr>
<tr>
<td>std::wstring</td>
<td><string></td>
- <td>__gnu_debug::wstring</td>
+ <td>debug::wstring</td>
<td><debug/string></td>
</tr>
<tr>
<td>std::basic_string</td>
<td><string></td>
- <td>__gnu_debug::basic_string</td>
+ <td>debug::basic_string</td>
<td><debug/string></td>
</tr>
<tr>
<td>std::vector</td>
<td><vector></td>
- <td>__gnu_debug::vector</td>
+ <td>debug::vector</td>
<td><debug/vector></td>
</tr>
<tr>
<td>__gnu_cxx::hash_map</td>
<td><ext/hash_map></td>
- <td>__gnu_debug::hash_map</td>
+ <td>debug::hash_map</td>
<td><debug/hash_map></td>
</tr>
<tr>
<td>__gnu_cxx::hash_multimap</td>
<td><ext/hash_map></td>
- <td>__gnu_debug::hash_multimap</td>
+ <td>debug::hash_multimap</td>
<td><debug/hash_map></td>
</tr>
<tr>
<td>__gnu_cxx::hash_set</td>
<td><ext/hash_set></td>
- <td>__gnu_debug::hash_set</td>
+ <td>debug::hash_set</td>
<td><debug/hash_set></td>
</tr>
<tr>
<td>__gnu_cxx::hash_multiset</td>
<td><ext/hash_set></td>
- <td>__gnu_debug::hash_multiset</td>
+ <td>debug::hash_multiset</td>
<td><debug/hash_set></td>
</tr>
</table>
<li><code>std::basic_string</code> (no safe iterators)</li>
<li><code>std::bitset</code></li>
<li><code>std::deque</code></li>
- <li><code>__gnu_cxx::hash_map</code></li>
- <li><code>__gnu_cxx::hash_multimap</code></li>
- <li><code>__gnu_cxx::hash_multiset</code></li>
- <li><code>__gnu_cxx::hash_set</code></li>
<li><code>std::list</code></li>
<li><code>std::map</code></li>
<li><code>std::multimap</code></li>
<li><code>std::multiset</code></li>
<li><code>std::set</code></li>
<li><code>std::vector</code></li>
+ <li><code>__gnu_cxx::hash_map</code></li>
+ <li><code>__gnu_cxx::hash_multimap</code></li>
+ <li><code>__gnu_cxx::hash_multiset</code></li>
+ <li><code>__gnu_cxx::hash_set</code></li>
</ul>
<p>In release mode, we define only the release-mode version of the
component with its standard name and do not include the debugging
component at all. The release mode version is defined within the
- namespace <code>__gnu_norm</code>, and then associated with namespace
- <code>std</code> via a "strong using" directive. Minus the
- namespace associations, this method leaves the behavior of release
- mode completely unchanged from its behavior prior to the
- introduction of the libstdc++ debug mode. Here's an example of what
- this ends up looking like, in C++.</p>
+ namespace <code>std</code>. Minus the namespace associations, this
+ method leaves the behavior of release mode completely unchanged from
+ its behavior prior to the introduction of the libstdc++ debug
+ mode. Here's an example of what this ends up looking like, in
+ C++.</p>
<pre>
-namespace __gnu_norm
+namespace std
{
- using namespace std;
-
template<typename _Tp, typename _Alloc = allocator<_Tp> >
class list
{
// ...
- };
-} // namespace __gnu_norm
-
-namespace std
-{
- using namespace __gnu_norm __attribute__ ((strong));
-}
+ };
+} // namespace std
</pre>
-<p>In debug mode we include the release-mode container and also the
-debug-mode container. The release mode version is defined exactly as
-before, and the debug-mode container is defined within the namespace
-<code>__gnu_debug</code>, which is associated with namespace
+<p>In debug mode we include the release-mode container (which is now
+defined in in the namespace <code>__gnu_norm</code>) and also the
+debug-mode container. The debug-mode container is defined within the
+namespace <code>__gnu_debug</code>, which is associated with namespace
<code>std</code> via a "strong using" directive. This method allows
the debug- and release-mode versions of the same component to coexist
-at compile-time without causing an unreasonable maintenance burden,
-while minimizing confusion. Again, this boils down to C++ code as
-follows:</p>
+at compile-time and link-time without causing an unreasonable
+maintenance burden, while minimizing confusion. Again, this boils down
+to C++ code as follows:</p>
<pre>
-namespace __gnu_norm
-{
- using namespace std;
-
- template<typename _Tp, typename _Alloc = allocator<_Tp> >
- class list
- {
- // ...
- };
-} // namespace __gnu_norm
-
-namespace __gnu_debug
-{
- using namespace std;
-
- template<typename _Tp, typename _Alloc = allocator<_Tp> >
- class list
- : public __gnu_norm::list<_Tp, _Alloc>,
- public __gnu_debug::_Safe_sequence<list<_Tp, _Alloc> >
- {
- // ...
- };
-} // namespace __gnu_norm
-
namespace std
{
+ namespace __gnu_norm
+ {
+ template<typename _Tp, typename _Alloc = allocator<_Tp> >
+ class list
+ {
+ // ...
+ };
+ } // namespace __gnu_norm
+
+ namespace __gnu_debug
+ {
+ template<typename _Tp, typename _Alloc = allocator<_Tp> >
+ class list
+ : public __gnu_norm::list<_Tp, _Alloc>,
+ public __gnu_debug::_Safe_sequence<list<_Tp, _Alloc> >
+ {
+ // ...
+ };
+ } // namespace __gnu_norm
+
using namespace __gnu_debug __attribute__ ((strong));
}
</pre>
$(STAMP) stamp-host
# Host includes dynamic.
-${host_builddir}/c++config.h: ${top_builddir}/config.h \
- ${glibcxx_srcdir}/include/bits/c++config \
- stamp-${host_alias} \
- ${toplevel_srcdir}/gcc/DATESTAMP
- @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
- sed -e 's/^/#define __GLIBCXX__ /' \
- < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+if ENABLE_SYMVERS_GNU_NAMESPACE
+stamp-namespace-version:
+ echo 1 > stamp-namespace-version
+else
+stamp-namespace-version:
+ echo 0 > stamp-namespace-version
+endif
+${host_builddir}/c++config.h: ${CONFIG_HEADER} \
+ ${glibcxx_srcdir}/include/bits/c++config \
+ stamp-${host_alias} \
+ ${toplevel_srcdir}/gcc/DATESTAMP \
+ stamp-namespace-version
+ @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
+ nsa_version=`cat stamp-namespace-version` ;\
+ sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
+ -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+ < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
-e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
-e 's/VERSION/_GLIBCXX_VERSION/g' \
-e 's/WORDS_/_GLIBCXX_WORDS_/g' \
< ${CONFIG_HEADER} >> $@ ;\
- echo "#endif // _CXXCONFIG_" >>$@
+ echo "" >> $@ ;\
+ echo "#endif // _CXXCONFIG_" >> $@
# Host includes for threads
uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
$(STAMP) stamp-host
# Host includes dynamic.
-${host_builddir}/c++config.h: ${top_builddir}/config.h \
- ${glibcxx_srcdir}/include/bits/c++config \
- stamp-${host_alias} \
- ${toplevel_srcdir}/gcc/DATESTAMP
- @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
- sed -e 's/^/#define __GLIBCXX__ /' \
- < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@stamp-namespace-version:
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@ echo 1 > stamp-namespace-version
+@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@stamp-namespace-version:
+@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@ echo 0 > stamp-namespace-version
+${host_builddir}/c++config.h: ${CONFIG_HEADER} \
+ ${glibcxx_srcdir}/include/bits/c++config \
+ stamp-${host_alias} \
+ ${toplevel_srcdir}/gcc/DATESTAMP \
+ stamp-namespace-version
+ @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
+ nsa_version=`cat stamp-namespace-version` ;\
+ sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
+ -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+ < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
-e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
-e 's/VERSION/_GLIBCXX_VERSION/g' \
-e 's/WORDS_/_GLIBCXX_WORDS_/g' \
< ${CONFIG_HEADER} >> $@ ;\
- echo "#endif // _CXXCONFIG_" >>$@
+ echo "" >> $@ ;\
+ echo "#endif // _CXXCONFIG_" >> $@
${host_builddir}/gthr.h: ${toplevel_srcdir}/gcc/gthr.h stamp-${host_alias}
sed -e '/^#pragma/b' \
using __gnu_cxx::iota;
#endif /* _BACKWARD_ALGO_H */
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::uninitialized_copy_n;
#endif /* _BACKWARD_ALGOBASE_H */
-
-// Local Variables:
-// mode:C++
-// End:
typedef std::vector<bool, std::allocator<bool> > bit_vector;
#endif /* _BACKWARD_BVECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
typedef complex<long double> long_double_complex;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
using std::deque;
#endif /* _BACKWARD_DEQUE_H */
-
-// Local Variables:
-// mode:C++
-// End:
#endif
#endif
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::mem_fun1_ref;
#endif /* _BACKWARD_FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::hash_multimap;
#endif /* _BACKWARD_HASH_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::hashtable;
#endif /* _BACKWARD_HASHTABLE_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::sort_heap;
#endif /* _BACKWARD_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::setw;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
using std::flush;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
#include "iostream.h"
#endif
-
-// Local Variables:
-// mode:C++
-// End:
-
-
-
-
-
using std::raw_storage_iterator;
#endif /* _BACKWARD_ITERATOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::list;
#endif /* _BACKWARD_LIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::map;
#endif /* _BACKWARD_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::multimap;
#endif /* _BACKWARD_MULTIMAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::multiset;
#endif /* _BACKWARD_MULTISET_H */
-
-// Local Variables:
-// mode:C++
-// End:
#include "iostream.h"
#endif
-
-// Local Variables:
-// mode:C++
-// End:
using std::make_pair;
#endif /* _BACKWARD_PAIR_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::priority_queue;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::wrope;
#endif /* _BACKWARD_ROPE_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::set;
#endif /* _BACKWARD_SET_H */
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::slist;
#endif /* _BACKWARD_SLIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
using std::stack;
#endif /* _BACKWARD_STACK_H */
-
-// Local Variables:
-// mode:C++
-// End:
#include "iostream.h"
#endif
-
-// Local Variables:
-// mode:C++
-// End:
using std::streambuf;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
// Backward-compat support -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <ostream>
#include <string>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Class strstreambuf, a streambuf class that manages an array of char.
// Note that this class is not a template.
class strstreambuf : public basic_streambuf<char, char_traits<char> >
private:
strstreambuf _M_buf;
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
#endif
using __gnu_cxx::temporary_buffer;
#endif /* _BACKWARD_TEMPBUF_H */
-
-// Local Variables:
-// mode:C++
-// End:
using __gnu_cxx::rb_tree;
#endif
-// Local Variables:
-// mode:C++
-// End:
using std::vector;
#endif /* _BACKWARD_VECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
// Define the base class to std::allocator.
#include <bits/c++allocator.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Tp>
class allocator;
// Undefine.
#undef __glibcxx_base_allocator
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// Low-level functions for atomic operations -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifndef _GLIBCXX_ATOMICITY_H
#define _GLIBCXX_ATOMICITY_H 1
+#include <bits/c++config.h>
#include <bits/atomic_word.h>
-
-namespace __gnu_cxx
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val);
void
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val);
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
/* Even if the CPU doesn't need a memory barrier, we need to ensure that
the compiler doesn't reorder memory accesses across the barriers. */
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <bits/locale_classes.h>
#include <bits/locale_facets.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 27.4.5 Template class basic_ios
/**
* @brief Virtual base class for all stream classes.
void
_M_cache_locale(const locale& __loc);
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
#include <bits/basic_ios.tcc>
// basic_ios member functions -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _CharT, typename _Traits>
void
basic_ios<_CharT, _Traits>::clear(iostate __state)
extern template class basic_ios<wchar_t>;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <bits/atomicity.h>
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @class basic_string basic_string.h <string>
* @brief Managing sequences of characters and character-like objects.
getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
wchar_t __delim);
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _BASIC_STRING_H */
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Type>
inline bool
__is_null_pointer(_Type* __ptr)
getline(basic_istream<wchar_t>&, wstring&);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// -*- C++ -*-
+
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/stl_iterator_base_types.h> // for traits and tags
#include <utility> // for pair<>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
#define _IsUnused __attribute__ ((__unused__))
// HashedAssociativeContainer
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
#undef _IsUnused
// Pick up any CPU-specific definitions.
#include <bits/cpu_defines.h>
-// Debug mode support. Debug mode basic_string is not allowed to be
-// associated with std, because of locale and exception link
-// dependence.
-namespace __gnu_debug_def { }
+// The current version of the C++ library in compressed ISO date format.
+#define __GLIBCXX__
-namespace __gnu_debug
+// Macros for various namespace association schemes and modes.
+#ifdef _GLIBCXX_DEBUG
+# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
+#endif
+
+#define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+
+// Macros for namespaces.
+// _GLIBCXX_BEGIN_NAMESPACE
+// _GLIBCXX_END_NAMESPACE
+// _GLIBCXX_BEGIN_NESTED_NAMESPACE
+// _GLIBCXX_END_NESTED_NAMESPACE
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y {
+# define _GLIBCXX_END_NESTED_NAMESPACE } }
+# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
+# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
+#else
+# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X {
+# define _GLIBCXX_END_NAMESPACE }
+# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y {
+# define _GLIBCXX_END_NESTED_NAMESPACE } }
+# else
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
+# define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
+# endif
+#endif
+
+// Namespace associations for versioning mode.
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+namespace std
+{
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
+}
+
+// In addition, other supported namespace configurations.
+namespace __gnu_cxx
{
- using namespace __gnu_debug_def;
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
}
-#ifdef _GLIBCXX_DEBUG
-# define _GLIBCXX_STD __gnu_norm
-# define _GLIBCXX_EXTERN_TEMPLATE 0
-namespace __gnu_norm
+namespace __gnu_ext
{
- using namespace std;
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
}
+
namespace std
{
+ namespace tr1
+ {
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
+ }
+}
+#endif
+
+// Namespace associations for debug mode.
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
+namespace std
+{
+ namespace __gnu_norm { }
+
+#if 1
+ namespace __gnu_debug_def { }
+ namespace __gnu_debug { using namespace __gnu_debug_def; }
using namespace __gnu_debug_def __attribute__ ((strong));
+#else
+ namespace __gnu_debug { namespace detail { } }
+ using namespace __gnu_debug __attribute__ ((strong));
+#endif
}
+
+# define _GLIBCXX_STD __gnu_norm
+# define _GLIBCXX_EXTERN_TEMPLATE 0
# if __NO_INLINE__ && !__GXX_WEAK__
# warning debug mode without inlining may fail due to lack of weak symbols
# endif
#else
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+# define _GLIBCXX_STD _6
+#else
# define _GLIBCXX_STD std
#endif
+#endif
+
// Allow use of "export template." This is currently not a feature
// that g++ supports.
# define _GLIBCXX_EXTERN_TEMPLATE 1
#endif
+
// Certain function definitions that are meant to be overridable from
// user code are decorated with this macro. For some targets, this
// macro causes these definitions to be weak.
#include <bits/stl_algobase.h>// For copy, lexicographical_compare, fill_n
#include <bits/postypes.h> // For streampos
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief Mapping from character type to associated types.
*
std::fill_n(__s, __n, __a);
return __s;
}
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 21.1
/**
* @brief Basis for explicit traits specializations.
};
#endif //_GLIBCXX_USE_WCHAR_T
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif
// Support for concurrent programing -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#endif
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
typedef __glibcxx_mutex_type mutex_type;
/// @brief Scoped lock idiom.
lock(const lock&);
lock& operator=(const lock&);
};
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
} // namespace __gnu_internal
// Forward declaration hack, should really include this from somewhere.
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<typename _Iterator, typename _Container>
class __normal_iterator;
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
struct __true_type { };
struct __false_type { };
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<bool>
struct __truth_type
{ typedef __false_type __type; };
};
};
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif //_CPP_TYPE_TRAITS_H
#ifndef _DEQUE_TCC
#define _DEQUE_TCC 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
template <typename _Tp, typename _Alloc>
deque<_Tp, _Alloc>&
deque<_Tp, _Alloc>::
this->_M_impl._M_start._M_set_node(__new_nstart);
this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _CharT, typename _Traits>
void
basic_filebuf<_CharT, _Traits>::
extern template class basic_fstream<wchar_t>;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
#ifndef _FUNCTEXCEPT_H
#define _FUNCTEXCEPT_H 1
+#include <bits/c++config.h>
#include <exception_defines.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Helper for exception objects in <except>
void
__throw_bad_exception(void) __attribute__((__noreturn__));
// Helpers for exception objects in basic_ios
void
__throw_ios_failure(const char*) __attribute__((__noreturn__));
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// The template and inlines for the -*- C++ -*- gslice class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Class defining multi-dimensional subset of an array.
*
return *this;
}
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_H */
-
-// Local Variables:
-// mode:c++
-// End:
// The template and inlines for the -*- C++ -*- gslice_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Reference to multi-dimensional subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
// The template and inlines for the -*- C++ -*- indirect_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Reference to arbitrary subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _INDIRECT_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <bits/localefwd.h>
#include <bits/locale_classes.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// The following definitions of bitmask types are enums, not ints,
// as permitted (but not required) in the standard, in order to provide
// better type safety in iostream calls. A side effect is that
__base.setf(ios_base::scientific, ios_base::floatfield);
return __base;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _IOS_BASE_H */
#include <locale>
#include <ostream> // For flush()
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>::sentry::
sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false)
extern template class basic_iostream<wchar_t>;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
#ifndef _LIST_TCC
#define _LIST_TCC 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
template<typename _Tp, typename _Alloc>
void
_List_base<_Tp, _Alloc>::
swap(*(__fill - 1));
}
}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _LIST_TCC */
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <bits/atomicity.h>
#include <bits/gthr.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 22.1.1 Class locale
/**
* @brief Container class for localization functionality.
delete [] _M_impl->_M_names[0];
_M_impl->_M_names[0] = 0; // Unnamed.
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <bits/ios_base.h> // For ios_base, ios_base::iostate
#include <streambuf>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// NB: Don't instantiate required wchar_t facets if no wchar_t support.
#ifdef _GLIBCXX_USE_WCHAR_T
# define _GLIBCXX_NUM_FACETS 28
inline _CharT
tolower(_CharT __c, const locale& __loc)
{ return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <typeinfo> // For bad_cast.
#include <bits/streambuf_iterator.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Facet>
locale
locale::combine(const locale& __other) const
has_facet<messages<wchar_t> >(const locale&);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <iosfwd> // For ostreambuf_iterator, istreambuf_iterator
#include <bits/functexcept.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 22.1.1 Locale
class locale;
__throw_bad_cast();
return *__f;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// The template and inlines for the -*- C++ -*- mask_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Reference to selected subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _MASK_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>::sentry::
sentry(basic_ostream<_CharT, _Traits>& __os)
extern template wostream& operator<<(wostream&, const char*);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// Position types -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <stdint.h> // For int64_t
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// The types streamoff, streampos and wstreampos and the class
// template fpos<> are described in clauses 21.1.2, 21.1.3, 27.1.2,
// 27.2, 27.4.1, 27.4.3 and D.6. Despite all this verbage, the
typedef fpos<mbstate_t> streampos;
/// File position for wchar_t streams.
typedef fpos<mbstate_t> wstreampos;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// The template and inlines for the -*- C++ -*- slice_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Class defining one-dimensional subset of an array.
*
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _SLICE_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
// String based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <sstream>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template <class _CharT, class _Traits, class _Alloc>
typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
basic_stringbuf<_CharT, _Traits, _Alloc>::
extern template class basic_stringstream<wchar_t>;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// See concept_check.h for the __glibcxx_*_requires macros.
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Find the median of three values.
* @param a A value.
__comp);
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _ALGO_H */
#include <bits/concept_check.h>
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @brief Swaps two values.
#endif /* CHAR_MAX == SCHAR_MAX */
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif
#ifndef _BVECTOR_H
#define _BVECTOR_H 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
typedef unsigned long _Bit_type;
enum { _S_word_bit = int(CHAR_BIT * sizeof(_Bit_type)) };
_M_impl._M_end_of_storage - _M_impl._M_start._M_p);
}
};
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
// Declare a partial specialization of vector<T, Alloc>.
#include <bits/stl_vector.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @brief A specialization of vector for booleans which offers fixed time
* access to individual elements in any order.
clear()
{ erase(begin(), end()); }
};
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif
#include <bits/cpp_type_traits.h>
#include <new>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @if maint
* Constructs an object in existing memory by invoking an allocated
{
_Destroy(__first, __last);
}
-
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_CONSTRUCT_H */
#include <bits/stl_iterator_base_types.h>
#include <bits/stl_iterator_base_funcs.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @if maint
* @brief This function controls the size of memory nodes.
inline void
swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _DEQUE_H */
#ifndef _FUNCTION_H
#define _FUNCTION_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 20.3.1 base classes
/** @defgroup s20_3_1_base Functor Base Classes
* Function objects, or @e functors, are objects with an @c operator()
/** @} */
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
// Heap implementation -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// is_heap, a predicate testing whether or not a range is
// a heap. This function is an extension, not part of the C++
// standard.
std::pop_heap(__first, __last--, __comp);
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
#include <bits/cpp_type_traits.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 24.4.1 Reverse iterators
/**
* "Bidirectional and random access iterators have corresponding reverse
return insert_iterator<_Container>(__x,
typename _Container::iterator(__i));
}
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// This iterator adapter is 'normal' in the sense that it does not
// change the semantics of any of the operators of its iterator
// parameter. Its primary purpose is to convert an iterator that is
operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
__n, const __normal_iterator<_Iterator, _Container>& __i)
{ return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
-} // namespace __gnu_cxx
-#endif
+_GLIBCXX_END_NAMESPACE
-// Local Variables:
-// mode:C++
-// End:
+#endif
// Functions used by iterators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#pragma GCC system_header
#include <bits/concept_check.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _InputIterator>
inline typename iterator_traits<_InputIterator>::difference_type
__distance(_InputIterator __first, _InputIterator __last,
// concept requirements -- taken care of in __advance
std::__advance(__i, __n, std::__iterator_category(__i));
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _ITERATOR_BASE_FUNCS_H */
// Types used in iterator implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//@{
/**
* @defgroup iterator_tags Iterator Tags
__iterator_category(const _Iter&)
{ return typename iterator_traits<_Iter>::iterator_category(); }
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _ITERATOR_BASE_TYPES_H */
#include <bits/concept_check.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
// Supporting structures are split into common and templated types; the
// latter publicly inherits from the former in an effort to reduce code
// duplication. This results in some "needless" static_cast'ing later on,
inline void
swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _LIST_H */
#include <bits/functexcept.h>
#include <bits/concept_check.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @brief A standard container made up of (key,value) pairs, which can be
* retrieved based on a key, in logarithmic time.
swap(map<_Key, _Tp, _Compare, _Alloc>& __x,
map<_Key, _Tp, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _MAP_H */
#include <bits/concept_check.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
// Forward declaration of operators < and ==, needed for friend declaration.
template <typename _Key, typename _Tp,
swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x,
multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _MULTIMAP_H */
#include <bits/concept_check.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
// Forward declaration of operators < and ==, needed for friend declaration.
template <class _Key, class _Compare = std::less<_Key>,
multiset<_Key, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _MULTISET_H */
// Numeric functions implementation -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @brief Accumulate values in a range.
return ++__result;
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_NUMERIC_H */
// Pair implementation -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifndef _PAIR_H
#define _PAIR_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/// pair holds two objects of arbitrary type.
template<class _T1, class _T2>
struct pair
inline pair<_T1, _T2>
make_pair(_T1 __x, _T2 __y)
{ return pair<_T1, _T2>(__x, __y); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _PAIR_H */
// Queue implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/concept_check.h>
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Forward declarations of operators < and ==, needed for friend declaration.
template<typename _Tp, typename _Sequence = deque<_Tp> >
class queue;
};
// No equality/comparison operators are provided for priority_queue.
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _QUEUE_H */
// -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifndef _STL_RAW_STORAGE_ITERATOR_H
#define _STL_RAW_STORAGE_ITERATOR_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* This iterator class lets algorithms store their results into
* uninitialized memory.
return __tmp;
}
};
-} // namespace std
-#endif
+_GLIBCXX_END_NAMESPACE
-// Local Variables:
-// mode:C++
-// End:
+#endif
// std::rel_ops implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifndef _STL_RELOPS_H
#define _STL_RELOPS_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
namespace rel_ops
{
/** @namespace std::rel_ops
{ return !(__x < __y); }
} // namespace rel_ops
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_RELOPS_H */
#include <bits/concept_check.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
// Forward declarations of operators < and ==, needed for friend declaration.
template<class _Key, class _Compare = std::less<_Key>,
class _Alloc = std::allocator<_Key> >
swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _SET_H */
// Stack implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/concept_check.h>
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Forward declarations of operators == and <, needed for friend
// declaration.
template<typename _Tp, typename _Sequence = deque<_Tp> >
inline bool
operator>=(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
{ return !(__x < __y); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _STACK_H */
#include <memory>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @if maint
* This class is used in two places: stl_algo.h and ext/memory,
__throw_exception_again;
}
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _TEMPBUF_H */
#include <bits/stl_function.h>
#include <bits/cpp_type_traits.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Red-black tree class, designed for use in implementing STL
// associative containers (set, multiset, map, and multimap). The
// insertion and deletion algorithms are based on those in Cormen,
return false;
return true;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <cstring>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// uninitialized_copy
template<typename _InputIterator, typename _ForwardIterator>
inline _ForwardIterator
}
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_UNINITIALIZED_H */
#include <bits/functexcept.h>
#include <bits/concept_check.h>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @if maint
* See bits/stl_deque.h's _Deque_base for an explanation.
inline void
swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _VECTOR_H */
// Stream iterators
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/// Provides input iterator semantics for streams.
template<typename _Tp, typename _CharT = char,
typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t>
operator++(int)
{ return *this; }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
#endif
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _CharT, typename _Traits>
streamsize
basic_streambuf<_CharT, _Traits>::
__copy_streambufs(basic_streambuf<wchar_t>*, basic_streambuf<wchar_t>*);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
// Streambuf iterators
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// NB: Should specialize copy, find algorithms for streambuf iterators.
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 24.5.3 Template class istreambuf_iterator
/// Provides input iterator semantics for streambufs.
template<typename _CharT, typename _Traits>
return *this;
}
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
#endif
// String support -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/c++config.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Alloc>
class allocator;
typedef basic_string<wchar_t> wstring;
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif // _STRINGFWD_H
// The template and inlines for the -*- C++ -*- internal _Meta class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//
// gslice_array closure.
//
#undef _DEFINE_EXPR_BINARY_FUNCTION
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _CPP_VALARRAY_AFTER_H */
-
-// Local Variables:
-// mode:c++
-// End:
#include <cstring>
#include <new>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//
// Helper functions on raw pointers
//
_DEFINE_ARRAY_FUNCTION(>>, __shift_right)
#undef _DEFINE_VALARRAY_FUNCTION
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/valarray_array.tcc>
// The template and inlines for the -*- C++ -*- internal _Array helper class.
-// Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2003, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifndef _VALARRAY_ARRAY_TCC
#define _VALARRAY_ARRAY_TCC 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Tp>
void
__valarray_fill(_Array<_Tp> __a, size_t __n, _Array<bool> __m,
new (__q) _Tp(*__p);
}
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _VALARRAY_ARRAY_TCC */
// The template and inlines for the -*- C++ -*- internal _Meta class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <bits/slice_array.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//
// Implementing a loosened valarray return value is tricky.
// First we need to meet 26.3.1/3: we should not add more than
_SClos (_Array<_Tp> __a, const slice& __s) : _Base (__a, __s) {}
};
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _CPP_VALARRAY_BEFORE_H */
-
-// Local Variables:
-// mode:c++
-// End:
#ifndef _VECTOR_TCC
#define _VECTOR_TCC 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
template<typename _Tp, typename _Alloc>
void
vector<_Tp, _Alloc>::
}
}
}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _VECTOR_TCC */
#undef tolower
#undef toupper
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::isalnum;
using ::isalpha;
using ::iscntrl;
using ::isxdigit;
using ::tolower;
using ::toupper;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#pragma GCC system_header
+#include <bits/c++config.h>
#include <locale.h>
// Get rid of those macros defined in <locale.h> in lieu of real functions.
#undef setlocale
#undef localeconv
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::lconv;
using ::setlocale;
using ::localeconv;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#undef tan
#undef tanh
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
// Forward declaration of a helper function. This really should be
// an `exported' forward declaration.
template<typename _Tp> _Tp __cmath_power(_Tp, unsigned int);
inline typename __enable_if<double, __is_integer<_Tp>::__value>::__type
tanh(_Tp __x)
{ return __builtin_tanh(__x); }
-}
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99_MATH
#if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
// These are possible macros imported from C99-land. For strict
// conformance, remove possible C99-injected names from the global
// namespace, and sequester them in the __gnu_cxx extension namespace.
-namespace __gnu_cxx
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<typename _Tp>
inline int
__capture_fpclassify(_Tp __f) { return fpclassify(__f); }
inline int
__capture_isunordered(_Tp __f1, _Tp __f2)
{ return isunordered(__f1, __f2); }
-}
+
+_GLIBCXX_END_NAMESPACE
// Only undefine the C99 FP macros, if actually captured for namespace movement
#undef fpclassify
#undef islessgreater
#undef isunordered
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Tp>
inline int
- fpclassify(_Tp __f) { return __gnu_cxx::__capture_fpclassify(__f); }
+ fpclassify(_Tp __f) { return ::__gnu_cxx::__capture_fpclassify(__f); }
template<typename _Tp>
inline int
- isfinite(_Tp __f) { return __gnu_cxx::__capture_isfinite(__f); }
+ isfinite(_Tp __f) { return ::__gnu_cxx::__capture_isfinite(__f); }
template<typename _Tp>
inline int
- isinf(_Tp __f) { return __gnu_cxx::__capture_isinf(__f); }
+ isinf(_Tp __f) { return ::__gnu_cxx::__capture_isinf(__f); }
template<typename _Tp>
inline int
- isnan(_Tp __f) { return __gnu_cxx::__capture_isnan(__f); }
+ isnan(_Tp __f) { return ::__gnu_cxx::__capture_isnan(__f); }
template<typename _Tp>
inline int
- isnormal(_Tp __f) { return __gnu_cxx::__capture_isnormal(__f); }
+ isnormal(_Tp __f) { return ::__gnu_cxx::__capture_isnormal(__f); }
template<typename _Tp>
inline int
- signbit(_Tp __f) { return __gnu_cxx::__capture_signbit(__f); }
+ signbit(_Tp __f) { return ::__gnu_cxx::__capture_signbit(__f); }
template<typename _Tp>
inline int
isgreater(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isgreater(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_isgreater(__f1, __f2); }
template<typename _Tp>
inline int
isgreaterequal(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isgreaterequal(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_isgreaterequal(__f1, __f2); }
template<typename _Tp>
inline int
isless(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isless(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_isless(__f1, __f2); }
template<typename _Tp>
inline int
islessequal(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_islessequal(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_islessequal(__f1, __f2); }
template<typename _Tp>
inline int
islessgreater(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_islessgreater(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_islessgreater(__f1, __f2); }
template<typename _Tp>
inline int
isunordered(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isunordered(__f1, __f2); }
-}
+ { return ::__gnu_cxx::__capture_isunordered(__f1, __f2); }
+
+_GLIBCXX_END_NAMESPACE
+
#endif /* _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC */
#endif
#pragma GCC system_header
+#include <bits/c++config.h>
#include <setjmp.h>
// Get rid of those macros defined in <setjmp.h> in lieu of real functions.
#define setjmp(env) setjmp (env)
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::jmp_buf;
using ::longjmp;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#pragma GCC system_header
+#include <bits/c++config.h>
#include <signal.h>
// Get rid of those macros defined in <signal.h> in lieu of real functions.
#undef raise
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::sig_atomic_t;
using ::signal;
using ::raise;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#pragma GCC system_header
+#include <bits/c++config.h>
#include <stdarg.h>
// Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998
#define va_end(ap) va_end (ap)
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::va_list;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#pragma GCC system_header
+#include <bits/c++config.h>
#include <stddef.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::ptrdiff_t;
using ::size_t;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#undef vprintf
#undef vsprintf
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::FILE;
using ::fpos_t;
using ::vfprintf;
using ::vprintf;
using ::vsprintf;
-}
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99
#undef vsnprintf
#undef vsscanf
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
extern "C" int
(snprintf)(char * restrict, size_t, const char * restrict, ...);
using ::vsnprintf;
using ::vsscanf;
#endif
-}
-
-namespace std
-{
- using __gnu_cxx::snprintf;
- using __gnu_cxx::vfscanf;
- using __gnu_cxx::vscanf;
- using __gnu_cxx::vsnprintf;
- using __gnu_cxx::vsscanf;
-}
+
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+ using ::__gnu_cxx::snprintf;
+ using ::__gnu_cxx::vfscanf;
+ using ::__gnu_cxx::vscanf;
+ using ::__gnu_cxx::vsnprintf;
+ using ::__gnu_cxx::vsscanf;
+
+_GLIBCXX_END_NAMESPACE
+
#endif
#endif
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
extern "C" void abort(void);
extern "C" int atexit(void (*)());
extern "C" void exit(int);
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#else
#undef wcstombs
#undef wctomb
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::div_t;
using ::ldiv_t;
inline ldiv_t
div(long __i, long __j) { return ldiv(__i, __j); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99
#undef strtof
#undef strtold
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
using ::lldiv_t;
#endif
#endif
using ::strtof;
using ::strtold;
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
using ::__gnu_cxx::lldiv_t;
#endif
using ::__gnu_cxx::strtoll;
using ::__gnu_cxx::strtoull;
using ::__gnu_cxx::strtold;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif // _GLIBCXX_USE_C99
#pragma GCC system_header
+#include <bits/c++config.h>
#include <cstddef>
-
#include <string.h>
// Get rid of those macros defined in <string.h> in lieu of real functions.
#undef strerror
#undef strlen
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::memcpy;
using ::memmove;
using ::strcpy;
inline char*
strstr(char* __s1, const char* __s2)
{ return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
#pragma GCC system_header
#include <cstddef>
-
#include <time.h>
// Get rid of those macros defined in <time.h> in lieu of real functions.
#undef localtime
#undef strftime
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::clock_t;
using ::time_t;
using ::tm;
using ::gmtime;
using ::localtime;
using ::strftime;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
}
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::mbstate_t;
-}
+
+_GLIBCXX_END_NAMESPACE
// Get rid of those macros defined in <wchar.h> in lieu of real functions.
#undef btowc
#undef wscanf
#if _GLIBCXX_USE_WCHAR_T
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::wint_t;
using ::btowc;
inline wchar_t*
wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
{ return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
-}
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99
#undef wcstoll
#undef wcstoull
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
extern "C" long double
(wcstold)(const wchar_t * restrict, wchar_t ** restrict);
using ::wcstoll;
using ::wcstoull;
#endif
-}
-namespace std
-{
- using __gnu_cxx::wcstold;
- using __gnu_cxx::wcstoll;
- using __gnu_cxx::wcstoull;
-}
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+ using ::__gnu_cxx::wcstold;
+ using ::__gnu_cxx::wcstoll;
+ using ::__gnu_cxx::wcstoull;
+
+_GLIBCXX_END_NAMESPACE
+
#endif
#endif //_GLIBCXX_USE_WCHAR_T
#undef wctype
#if _GLIBCXX_USE_WCHAR_T
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::wint_t; // cwchar
using ::wctype_t;
using ::towupper;
using ::wctrans;
using ::wctype;
-}
+
+_GLIBCXX_END_NAMESPACE
+
#endif //_GLIBCXX_USE_WCHAR_T
#endif
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<size_t _Nb>
operator=(bool __x)
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_write)
+ _M_message(__gnu_debug::__msg_bad_bitset_write)
._M_iterator(*this));
*static_cast<_Base_ref*>(this) = __x;
return *this;
operator=(const reference& __x)
{
_GLIBCXX_DEBUG_VERIFY(! __x._M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_read)
+ _M_message(__gnu_debug::__msg_bad_bitset_read)
._M_iterator(__x));
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_write)
+ _M_message(__gnu_debug::__msg_bad_bitset_write)
._M_iterator(*this));
*static_cast<_Base_ref*>(this) = __x;
return *this;
operator~() const
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_read)
+ _M_message(__gnu_debug::__msg_bad_bitset_read)
._M_iterator(*this));
return ~(*static_cast<const _Base_ref*>(this));
}
operator bool() const
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_read)
+ _M_message(__gnu_debug::__msg_bad_bitset_read)
._M_iterator(*this));
return *static_cast<const _Base_ref*>(this);
}
flip()
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_flip)
+ _M_message(__gnu_debug::__msg_bad_bitset_flip)
._M_iterator(*this));
_Base_ref::flip();
return *this;
const bitset<_Nb>& __x)
{ return __os << __x._M_base(); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
* standard library algorithms.
*/
+
+namespace std
+{
+ namespace __gnu_debug_def { }
+ namespace __gnu_debug { using namespace __gnu_debug_def; }
+}
+
+namespace debug = std::__gnu_debug;
+
#ifdef _GLIBCXX_DEBUG
-# include <debug/macros.h>
# include <cstdlib>
# include <cstdio>
+# include <debug/macros.h>
-// Avoid the use of assert, because we're trying to keep the <cassert>
-// include out of the mix.
+namespace std
+{
namespace __gnu_debug
{
+ // Avoid the use of assert, because we're trying to keep the <cassert>
+ // include out of the mix.
inline void
__replacement_assert(const char* __file, int __line, const char* __function,
const char* __condition)
__function, __condition);
std::abort();
}
-}
+} // namespace __gnu_debug
+} // namespace std
#define _GLIBCXX_DEBUG_ASSERT(_Condition) \
do { \
if (! (_Condition)) \
- ::__gnu_debug::__replacement_assert(__FILE__, __LINE__, \
+ std::__gnu_debug::__replacement_assert(__FILE__, __LINE__, \
__PRETTY_FUNCTION__, \
#_Condition); \
} while (false)
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Tp, typename _Allocator = std::allocator<_Tp> >
swap(deque<_Tp, _Alloc>& __lhs, deque<_Tp, _Alloc>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
#include <typeinfo>
#include <debug/debug.h>
+namespace std
+{
namespace __gnu_debug
{
- using std::type_info;
-
/** Determine if the two types are the same. */
template<typename _Type1, typename _Type2>
struct __is_same
{ return _Error_formatter(__file, __line); }
};
} // namespace __gnu_debug
+} // namespace std
#endif
#ifndef _GLIBCXX_DEBUG_FUNCTIONS_H
#define _GLIBCXX_DEBUG_FUNCTIONS_H 1
+#include <bits/c++config.h>
#include <stddef.h> // for ptrdiff_t
#include <bits/stl_iterator_base_types.h> // for iterator_traits, categories
#include <bits/cpp_type_traits.h> // for __is_integer
+namespace std
+{
namespace __gnu_debug
{
template<typename _Iterator, typename _Sequence>
template<typename _Iterator>
inline bool
__check_singular(_Iterator& __x)
- { return __gnu_debug::__check_singular_aux(&__x); }
+ { return __check_singular_aux(&__x); }
/** Non-NULL pointers are nonsingular. */
template<typename _Tp>
{
typedef typename std::iterator_traits<_InputIterator>::iterator_category
_Category;
- return __gnu_debug::__valid_range_aux2(__first, __last, _Category());
+ return __valid_range_aux2(__first, __last, _Category());
}
/** Don't know what these iterators are, or if they are even
__valid_range(const _InputIterator& __first, const _InputIterator& __last)
{
typedef typename std::__is_integer<_InputIterator>::__type _Integral;
- return __gnu_debug::__valid_range_aux(__first, __last, _Integral());
+ return __valid_range_aux(__first, __last, _Integral());
}
/** Safe iterators know how to check if they form a valid range. */
__check_valid_range(const _InputIterator& __first,
const _InputIterator& __last)
{
- _GLIBCXX_DEBUG_ASSERT(__gnu_debug::__valid_range(__first, __last));
+ _GLIBCXX_DEBUG_ASSERT(__valid_range(__first, __last));
return __first;
}
{
typedef typename std::iterator_traits<_InputIterator>::iterator_category
_Category;
- return __gnu_debug::__check_sorted_aux(__first, __last, _Category());
+ return __check_sorted_aux(__first, __last, _Category());
}
template<typename _InputIterator, typename _Predicate>
{
typedef typename std::iterator_traits<_InputIterator>::iterator_category
_Category;
- return __gnu_debug::__check_sorted_aux(__first, __last, __pred,
+ return __check_sorted_aux(__first, __last, __pred,
_Category());
}
return __first == __last;
}
} // namespace __gnu_debug
+} // namespace std
#endif
// Debugging hash_map implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Value, typename _Tp,
hash_map<_Value, _Tp, _HashFcn, _EqualKey, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
// Debugging hash_multimap implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Value, typename _Tp,
hash_multimap<_Value, _Tp, _HashFcn, _EqualKey, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
// Debugging hash_multiset implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Value,
hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
// Debugging hash_set implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Value,
hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Tp, typename _Allocator = std::allocator<_Tp> >
splice(iterator __position, list& __x)
{
_GLIBCXX_DEBUG_VERIFY(&__x != this,
- _M_message(::__gnu_debug::__msg_self_splice)
+ _M_message(__gnu_debug::__msg_self_splice)
._M_sequence(*this, "this"));
this->splice(__position, __x, __x.begin(), __x.end());
}
{
__glibcxx_check_insert(__position);
_GLIBCXX_DEBUG_VERIFY(__x.get_allocator() == this->get_allocator(),
- _M_message(::__gnu_debug::__msg_splice_alloc)
+ _M_message(__gnu_debug::__msg_splice_alloc)
._M_sequence(*this)._M_sequence(__x, "__x"));
_GLIBCXX_DEBUG_VERIFY(__i._M_dereferenceable(),
- _M_message(::__gnu_debug::__msg_splice_bad)
+ _M_message(__gnu_debug::__msg_splice_bad)
._M_iterator(__i, "__i"));
_GLIBCXX_DEBUG_VERIFY(__i._M_attached_to(&__x),
- _M_message(::__gnu_debug::__msg_splice_other)
+ _M_message(__gnu_debug::__msg_splice_other)
._M_iterator(__i, "__i")._M_sequence(__x, "__x"));
// _GLIBCXX_RESOLVE_LIB_DEFECTS
__glibcxx_check_insert(__position);
__glibcxx_check_valid_range(__first, __last);
_GLIBCXX_DEBUG_VERIFY(__first._M_attached_to(&__x),
- _M_message(::__gnu_debug::__msg_splice_other)
+ _M_message(__gnu_debug::__msg_splice_other)
._M_sequence(__x, "x")
._M_iterator(__first, "first"));
_GLIBCXX_DEBUG_VERIFY(__x.get_allocator() == this->get_allocator(),
- _M_message(::__gnu_debug::__msg_splice_alloc)
+ _M_message(__gnu_debug::__msg_splice_alloc)
._M_sequence(*this)._M_sequence(__x));
for (iterator __tmp = __first; __tmp != __last; )
{
_GLIBCXX_DEBUG_VERIFY(&__x != this || __tmp != __position,
- _M_message(::__gnu_debug::__msg_splice_overlap)
+ _M_message(__gnu_debug::__msg_splice_overlap)
._M_iterator(__tmp, "position")
._M_iterator(__first, "first")
._M_iterator(__last, "last"));
swap(list<_Tp, _Alloc>& __lhs, list<_Tp, _Alloc>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
#define _GLIBCXX_DEBUG_VERIFY(_Condition,_ErrorMessage) \
do { \
if (! (_Condition)) \
- ::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
+ std::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
._ErrorMessage._M_error(); \
} while (false)
// Verify that [_First, _Last) forms a valid iterator range.
#define __glibcxx_check_valid_range(_First,_Last) \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__valid_range(_First, _Last), \
- _M_message(::__gnu_debug::__msg_valid_range) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__valid_range(_First, _Last), \
+ _M_message(std::__gnu_debug::__msg_valid_range) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
*/
#define __glibcxx_check_insert(_Position) \
_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
- _M_message(::__gnu_debug::__msg_insert_singular) \
+ _M_message(std::__gnu_debug::__msg_insert_singular) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position)); \
_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_insert_different) \
+ _M_message(std::__gnu_debug::__msg_insert_different) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position))
#define __glibcxx_check_insert_range(_Position,_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
- _M_message(::__gnu_debug::__msg_insert_singular) \
+ _M_message(std::__gnu_debug::__msg_insert_singular) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position)); \
_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_insert_different) \
+ _M_message(std::__gnu_debug::__msg_insert_different) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position))
*/
#define __glibcxx_check_erase(_Position) \
_GLIBCXX_DEBUG_VERIFY(_Position._M_dereferenceable(), \
- _M_message(::__gnu_debug::__msg_erase_bad) \
+ _M_message(std::__gnu_debug::__msg_erase_bad) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position)); \
_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_erase_different) \
+ _M_message(std::__gnu_debug::__msg_erase_different) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position))
#define __glibcxx_check_erase_range(_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
_GLIBCXX_DEBUG_VERIFY(_First._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_erase_different) \
+ _M_message(std::__gnu_debug::__msg_erase_different) \
._M_sequence(*this, "this") \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
// Verify that the subscript _N is less than the container's size.
#define __glibcxx_check_subscript(_N) \
_GLIBCXX_DEBUG_VERIFY(_N < this->size(), \
- _M_message(::__gnu_debug::__msg_subscript_oob) \
+ _M_message(std::__gnu_debug::__msg_subscript_oob) \
._M_sequence(*this, "this") \
._M_integer(_N, #_N) \
._M_integer(this->size(), "size"))
// Verify that the container is nonempty
#define __glibcxx_check_nonempty() \
_GLIBCXX_DEBUG_VERIFY(! this->empty(), \
- _M_message(::__gnu_debug::__msg_empty) \
+ _M_message(std::__gnu_debug::__msg_empty) \
._M_sequence(*this, "this"))
// Verify that the < operator for elements in the sequence is a
#define __glibcxx_check_sorted(_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
__glibcxx_check_strict_weak_ordering(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last), \
- _M_message(::__gnu_debug::__msg_unsorted) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_sorted(_First, _Last), \
+ _M_message(std::__gnu_debug::__msg_unsorted) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
#define __glibcxx_check_sorted_pred(_First,_Last,_Pred) \
__glibcxx_check_valid_range(_First,_Last); \
__glibcxx_check_strict_weak_ordering_pred(_First,_Last,_Pred); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
- _M_message(::__gnu_debug::__msg_unsorted_pred) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
+ _M_message(std::__gnu_debug::__msg_unsorted_pred) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred))
w.r.t. the value _Value. */
#define __glibcxx_check_partitioned(_First,_Last,_Value) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
- _Value), \
- _M_message(::__gnu_debug::__msg_unpartitioned) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_partitioned(_First, _Last, \
+ _Value), \
+ _M_message(std::__gnu_debug::__msg_unpartitioned) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Value))
w.r.t. the value _Value and predicate _Pred. */
#define __glibcxx_check_partitioned_pred(_First,_Last,_Value,_Pred) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_partitioned(_First, _Last, \
_Value, _Pred), \
- _M_message(::__gnu_debug::__msg_unpartitioned_pred) \
+ _M_message(std::__gnu_debug::__msg_unpartitioned_pred) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred) \
// Verify that the iterator range [_First, _Last) is a heap
#define __glibcxx_check_heap(_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last), \
- _M_message(::__gnu_debug::__msg_not_heap) \
+_GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last), \
+ _M_message(std::__gnu_debug::__msg_not_heap) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
w.r.t. the predicate _Pred. */
#define __glibcxx_check_heap_pred(_First,_Last,_Pred) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
- _M_message(::__gnu_debug::__msg_not_heap_pred) \
+_GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last, _Pred), \
+ _M_message(std::__gnu_debug::__msg_not_heap_pred) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred))
#include <debug/safe_iterator.h>
#include <utility>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
map<_Key,_Tp,_Compare,_Allocator>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
#include <debug/safe_iterator.h>
#include <utility>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
multimap<_Key,_Tp,_Compare,_Allocator>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
#include <debug/safe_iterator.h>
#include <utility>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Key, typename _Compare = std::less<_Key>,
multiset<_Key,_Compare,_Allocator>& __y)
{ return __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
// Safe sequence/iterator base implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#ifndef _GLIBCXX_DEBUG_SAFE_BASE_H
#define _GLIBCXX_DEBUG_SAFE_BASE_H 1
+namespace std
+{
namespace __gnu_debug
{
class _Safe_sequence_base;
{ if (++_M_version == 0) _M_version = 1; }
};
} // namespace __gnu_debug
+} // namespace std
#endif
#include <bits/stl_pair.h>
#include <bits/cpp_type_traits.h>
+namespace std
+{
namespace __gnu_debug
{
- using std::iterator_traits;
- using std::pair;
-
/** Iterators that derive from _Safe_iterator_base but that aren't
* _Safe_iterators can be determined singular or non-singular via
* _Safe_iterator_base.
const _Safe_iterator<_Iterator, _Sequence>& __i)
{ return __i + __n; }
} // namespace __gnu_debug
+} // namespace std
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <debug/safe_iterator.tcc>
// Debugging iterator implementation (out of line) -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#ifndef _GLIBCXX_DEBUG_SAFE_ITERATOR_TCC
#define _GLIBCXX_DEBUG_SAFE_ITERATOR_TCC 1
+namespace std
+{
namespace __gnu_debug
{
template<typename _Iterator, typename _Sequence>
}
}
} // namespace __gnu_debug
+} // namespace std
#endif
#include <debug/functions.h>
#include <debug/safe_base.h>
+namespace std
+{
namespace __gnu_debug
{
template<typename _Iterator, typename _Sequence>
}
}
} // namespace __gnu_debug
+} // namespace std
#endif
#include <debug/safe_iterator.h>
#include <utility>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Key, typename _Compare = std::less<_Key>,
set<_Key,_Compare,_Allocator>& __y)
{ return __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug
{
-template<typename _CharT, typename _Traits = std::char_traits<_CharT>,
+ template<typename _CharT, typename _Traits = std::char_traits<_CharT>,
typename _Allocator = std::allocator<_CharT> >
class basic_string
: public std::basic_string<_CharT, _Traits, _Allocator>,
operator[](size_type __pos) const
{
_GLIBCXX_DEBUG_VERIFY(__pos <= this->size(),
- _M_message(::__gnu_debug::__msg_subscript_oob)
+ _M_message(__gnu_debug::__msg_subscript_oob)
._M_sequence(*this, "this")
._M_integer(__pos, "__pos")
._M_integer(this->size(), "size"));
#else
// as an extension v3 allows s[s.size()] when s is non-const.
_GLIBCXX_DEBUG_VERIFY(__pos <= this->size(),
- _M_message(::__gnu_debug::__msg_subscript_oob)
+ _M_message(__gnu_debug::__msg_subscript_oob)
._M_sequence(*this, "this")
._M_integer(__pos, "__pos")
._M_integer(this->size(), "size"));
#endif
} // namespace __gnu_debug
+} // namespace std
#endif
#include <debug/safe_sequence.h>
#include <debug/safe_iterator.h>
+namespace std
+{
namespace __gnu_debug_def
{
template<typename _Tp,
swap(vector<_Tp, _Alloc>& __lhs, vector<_Tp, _Alloc>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
// Algorithm extensions -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <algorithm>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::ptrdiff_t;
using std::min;
using std::pair;
return false;
return true;
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* _EXT_ALGORITHM */
#include <bits/functexcept.h>
#include <tr1/array>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/// @brief Base class.
template<typename _Tp>
class array_allocator_base
operator!=(const array_allocator<_Tp, _Array>&,
const array_allocator<_Tp, _Array>&)
{ return false; }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
#endif
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if defined __GTHREADS
namespace
{
bitmap_allocator<_Tp>::_S_mut;
#endif
-
-}
+_GLIBCXX_END_NAMESPACE
#endif
// Define this here so codecvt.cc can have _S_max_size definition.
#define _GLIBCXX_USE_ENCODING_STATE 1
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/// @brief Extension to use icov for dealing with character encodings.
// This includes conversions and comparisons between various character
// sets. This object encapsulates data that may need to be shared between
typedef encoding_state state_type;
typedef typename std::fpos<state_type> pos_type;
};
-} // namespace __gnu_cxx
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using __gnu_cxx::encoding_state;
/// @brief codecvt<InternT, _ExternT, encoding_state> specialization.
codecvt<_InternT, _ExternT, encoding_state>::
do_max_length() const throw()
{ return 1; }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <stdexcept>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief A meta-allocator with debugging bits, as per [20.4].
*
throw std::runtime_error("debug_allocator::deallocate null pointer");
}
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// Functional extensions -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <functional>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::unary_function;
using std::binary_function;
using std::mem_fun1_t;
using std::mem_fun1_ref_t;
using std::const_mem_fun1_ref_t;
- /** The @c identity_element functions are not part of the C++ standard; SGI
- * provided them as an extension. Its argument is an operation, and its
- * return value is the identity element for that operation. It is overloaded
- * for addition and multiplication, and you can overload it for your own
- * nefarious operations.
+ /** The @c identity_element functions are not part of the C++
+ * standard; SGI provided them as an extension. Its argument is an
+ * operation, and its return value is the identity element for that
+ * operation. It is overloaded for addition and multiplication,
+ * and you can overload it for your own nefarious operations.
*
* @addtogroup SGIextensions
* @{
inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
mem_fun1_ref(_Ret (_Tp::*__f)(_Arg) const)
{ return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
+
#endif
// 'struct hash' from SGI -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <cstddef>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
template<class _Key>
operator()(unsigned long __x) const
{ return __x; }
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <ext/hashtable.h>
#include <bits/concept_check.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::equal_to;
using std::allocator;
using std::pair;
end() const
{ return _M_ht.end(); }
-public:
+ public:
iterator
insert(const value_type& __obj)
{ return _M_ht.insert_equal(__obj); }
size_type
elems_in_bucket(size_type __n) const
{ return _M_ht.elems_in_bucket(__n); }
-};
+ };
template <class _Key, class _Tp, class _HF, class _EqKey, class _Alloc>
inline bool
hash_multimap<_Key, _Tp, _HashFcn, _EqlKey, _Alloc>& __hm2)
{ __hm1.swap(__hm2); }
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
-namespace std
-{
-// Specialization of insert_iterator so that it will work for hash_map
-// and hash_multimap.
+_GLIBCXX_BEGIN_NAMESPACE(std)
+ // Specialization of insert_iterator so that it will work for hash_map
+ // and hash_multimap.
template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
class insert_iterator<__gnu_cxx::hash_map<_Key, _Tp, _HashFn,
_EqKey, _Alloc> >
operator++(int)
{ return *this; }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifdef _GLIBCXX_DEBUG
# include <debug/hash_map>
#include <ext/hashtable.h>
#include <bits/concept_check.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::equal_to;
using std::allocator;
using std::pair;
hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2)
{ __hs1.swap(__hs2); }
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
// Specialization of insert_iterator so that it will work for hash_set
// and hash_multiset.
insert_iterator<_Container>&
operator++(int) { return *this; }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifdef _GLIBCXX_DEBUG
# include <debug/hash_set>
// Hashtable implementation used by containers -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/stl_function.h>
#include <ext/hash_fun.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
using std::ptrdiff_t;
using std::forward_iterator_tag;
__throw_exception_again;
}
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// HP/SGI iterator extensions -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/concept_check.h>
#include <iterator>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// There are two signatures for distance. In addition to the one
// taking two iterators and returning a result, there is another
// taking two iterators and a reference-to-result variable, and
// concept requirements -- taken care of in __distance
__distance(__first, __last, __n, std::__iterator_category(__first));
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// Allocator that wraps "C" malloc -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <new>
#include <bits/functexcept.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief An allocator that uses malloc.
*
inline bool
operator!=(const malloc_allocator<_Tp>&, const malloc_allocator<_Tp>&)
{ return false; }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// Memory extensions -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <memory>
#include <bits/stl_tempbuf.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::ptrdiff_t;
using std::pair;
using std::__iterator_category;
/// Destroys objects and frees storage.
~temporary_buffer() { }
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <bits/gthr.h>
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
typedef void (*__destroy_handler)(void*);
/// @brief Base class for pool object.
{ return false; }
#undef __thread_default
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// Allocator that wraps operator new -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <new>
#include <bits/functexcept.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief An allocator that uses global new, as per [20.4].
*
inline bool
operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
{ return false; }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// Numeric extensions -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <ext/functional> // For identity_element
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// Returns __x ** __n, where __n >= 0. _Note that "multiplication"
// is required to be associative, but not necessarily commutative.
template<typename _Tp, typename _Integer, typename _MonoidOperation>
while (__first != __last)
*__first++ = __value++;
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <string>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// POD character abstraction.
// NB: The char_type parameter is a subset of int_type, as to allow
// int_type to properly hold the full range of char_type values as
inline bool
operator<(const character<V, I, S>& lhs, const character<V, I, S>& rhs)
{ return lhs.value < rhs.value; }
-} // namespace __gnu_cxx
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/// char_traits<__gnu_cxx::character> specialization.
template<typename V, typename I, typename S>
struct char_traits<__gnu_cxx::character<V, I, S> >
not_eof(const int_type& __c)
{ return eq_int_type(__c, eof()) ? int_type() : __c; }
};
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/atomicity.h>
#include <bits/concurrence.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief Base class for __pool_alloc.
*
}
}
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// rb_tree extension -*- C++ -*-
-// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/stl_tree.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::_Rb_tree;
using std::allocator;
~rb_tree() { }
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
#include <bits/atomicity.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @if maint
* Documentation? What's that?
return true;
return false;
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* _RC_STRING_BASE_H */
#include <ext/memory> // For uninitialized_copy_n
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
using std::ptrdiff_t;
using std::allocator;
}
};
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
# include <ext/ropeimpl.h>
// SGI's rope class implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <ext/memory> // For uninitialized_copy_n
#include <ext/numeric> // For power
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
using std::printf;
using std::basic_ostream;
{ _Rope_rotate(__first, __middle, __last); }
# endif
-} // namespace __gnu_cxx
-
-// Local Variables:
-// mode:C++
-// End:
+_GLIBCXX_END_NAMESPACE
#include <bits/stl_uninitialized.h>
#include <bits/concept_check.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
using std::ptrdiff_t;
using std::_Construct;
}
}
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
// Specialization of insert_iterator so that insertions will be constant
// time rather than linear time.
-
template <class _Tp, class _Alloc>
class insert_iterator<__gnu_cxx::slist<_Tp, _Alloc> >
{
insert_iterator<_Container>&
operator++(int)
{ return *this; }
-};
+ };
+
+_GLIBCXX_END_NAMESPACE
-} // namespace std
#endif
#ifndef _SSO_STRING_BASE_H
#define _SSO_STRING_BASE_H 1
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<typename _CharT, typename _Traits, typename _Alloc>
class __sso_string_base
: protected __vstring_utility<_CharT, _Traits, _Alloc>
return true;
return false;
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* _SSO_STRING_BASE_H */
// File descriptor layer for filebuf -*- C++ -*-
-// Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <fstream>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief Provides a layer of compatibility for C/POSIX.
*
this->_M_set_buffer(-1);
}
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
// Iostreams wrapper for stdio FILE* -*- C++ -*-
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <cwchar>
#endif
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/// @brief class stdio_sync_filebuf.
template<typename _CharT, typename _Traits = std::char_traits<_CharT> >
class stdio_sync_filebuf : public std::basic_streambuf<_CharT, _Traits>
extern template class stdio_sync_filebuf<wchar_t>;
#endif
#endif
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
#ifndef TYPELIST_HPP
#define TYPELIST_HPP
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// XXX namespace typelist
// struct typelist -> struct node
template<typename Typelist, template<typename T> class Transform>
struct transform;
-}
+_GLIBCXX_END_NAMESPACE
+
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-namespace __gnu_cxx
-{
namespace detail
{
// #include <ext/detail/type_utils.h>
typedef typename append<Hd, typelist<rest> >::type::root type;
};
} // namespace detail
-}
+_GLIBCXX_END_NAMESPACE
+
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-namespace __gnu_cxx
-{
template<typename Fn, typename Typelist>
struct apply
{
public:
typedef typelist<typename transform_type::type> type;
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#define _GLIBCXX_TYPELIST_CHAIN1(X0) __gnu_cxx::chain<X0, __gnu_cxx::null_type>
#include <ext/rc_string_base.h>
#include <ext/sso_string_base.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @class __versa_string vstring.h
* @brief Managing sequences of characters and character-like objects.
__versa_string<_CharT, _Traits, _Alloc, _Base>& __rhs)
{ __lhs.swap(__rhs); }
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
/**
* @brief Read stream into a string.
* @param is Input stream.
__gnu_cxx::__versa_string<_CharT, _Traits, _Alloc, _Base>& __str)
{ return getline(__is, __str, __is.widen('\n')); }
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include "vstring.tcc"
#pragma GCC system_header
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
const typename __versa_string<_CharT, _Traits, _Alloc, _Base>::size_type
return __r;
}
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
template<typename _CharT, typename _Traits, typename _Alloc,
template <typename, typename, typename> class _Base>
basic_istream<_CharT, _Traits>&
return __in;
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif // _VSTRING_TCC
#include <bits/char_traits.h>
#include <memory> // For allocator.
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<typename _CharT, typename _Traits, typename _Alloc>
class __sso_string_base;
__versa_string<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t>, __rc_string_base> __wrc_string;
#endif
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* _VSTRING_FWD_H */
#include <locale>
#include <algorithm> // For std::distance, srd::search.
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template<typename _CharT, typename _Traits, typename _Alloc>
struct __vstring_utility
{
_S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
{ _S_copy(__p, __k1, __k2 - __k1); }
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* _VSTRING_UTIL_H */
((__n) < 1 ? 0 : ((__n) + _GLIBCXX_BITSET_BITS_PER_WORD - 1) \
/ _GLIBCXX_BITSET_BITS_PER_WORD)
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @if maint
* Base class, general case. It is a class inveriant that _Nw will be
return __os << __tmp;
}
//@}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#undef _GLIBCXX_BITSET_WORDS
#undef _GLIBCXX_BITSET_BITS_PER_WORD
#include <cmath>
#include <sstream>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Forward declarations.
template<typename _Tp> class complex;
template<> class complex<float>;
inline
complex<long double>::complex(const complex<double>& __z)
: _M_value(__z.__rep()) { }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_COMPLEX */
#include <bits/basic_file.h>
#include <bits/gthr.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// [27.8.1.1] template class basic_filebuf
/**
* @brief The actual work of input and output (for files).
this->setstate(ios_base::failbit);
}
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/fstream.tcc>
// Standard stream manipulators -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <istream>
#include <functional>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// [27.6.3] standard manipulators
// Also see DR 183.
extern template wistream& operator>>(wistream&, _Setw);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_IOMANIP */
// Forwarding declarations -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <bits/postypes.h>
#include <bits/functexcept.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _CharT, typename _Traits = char_traits<_CharT> >
class basic_ios;
typedef basic_fstream<wchar_t> wfstream; ///< @isiosfwd
#endif
/** @} */
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_IOSFWD */
// Standard iostream objects -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <ostream>
#include <istream>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @name Standard Stream Objects
*
// For construction of filebuffers for cout, cin, cerr, clog et. al.
static ios_base::Init __ioinit;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_IOSTREAM */
#include <ios>
#include <limits> // For numeric_limits
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// [27.6.1.1] Template class basic_istream
/**
* @brief Controlling input.
template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>&
ws(basic_istream<_CharT, _Traits>& __is);
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/istream.tcc>
-// The template and inlines for the -*- C++ -*- numeric_limits classes.
+// The template and inlines for the numeric_limits classes. -*- C++ -*-
// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
(__glibcxx_digits (T) * 643 / 2136)
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Describes the rounding style for floating-point types.
*
#undef __glibcxx_long_double_traps
#undef __glibcxx_long_double_tinyness_before
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#undef __glibcxx_signed
#undef __glibcxx_min
// <memory> -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <debug/debug.h>
#include <limits>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @if maint
* This is a helper function. The unused second parameter exists to
operator auto_ptr<_Tp1>() throw()
{ return auto_ptr<_Tp1>(this->release()); }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_MEMORY */
// Output streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <ios>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// [27.6.2.1] Template class basic_ostream
/**
* @brief Controlling output.
flush(basic_ostream<_CharT, _Traits>& __os)
{ return __os.flush(); }
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/ostream.tcc>
#include <istream>
#include <ostream>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// [27.7.1] template class basic_stringbuf
/**
* @brief The actual work of input and output (for std::string).
str(const __string_type& __s)
{ _M_stringbuf.str(__s); }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/sstream.tcc>
// Standard exception classes -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <exception>
#include <string>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/** Logic errors represent problems in the internal logic of a program;
* in theory, these are preventable, and even detectable before the
* program runs (e.g., violations of class invariants).
public:
explicit underflow_error(const string& __arg);
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_STDEXCEPT */
#include <bits/localefwd.h>
#include <bits/ios_base.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @if maint
* Does stuff.
__copy_streambufs(basic_streambuf<wchar_t>* __sbin,
basic_streambuf<wchar_t>* __sbout);
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/streambuf.tcc>
// The template and inlines for the -*- C++ -*- valarray class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <algorithm>
#include <debug/debug.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<class _Clos, typename _Tp>
class _Expr;
template<class _Tp> class mask_array; // masked array
template<class _Tp> class indirect_array; // indirected array
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#include <bits/valarray_array.h>
#include <bits/valarray_before.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Smart array designed to support numeric processing.
*
return _M_data[__i];
}
-} // std::
+_GLIBCXX_END_NAMESPACE
#include <bits/valarray_after.h>
-
#include <bits/slice_array.h>
#include <bits/gslice.h>
#include <bits/gslice_array.h>
#include <bits/mask_array.h>
#include <bits/indirect_array.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<typename _Tp>
inline
valarray<_Tp>::valarray() : _M_size(0), _M_data(0) {}
_DEFINE_BINARY_OPERATOR(<=, __less_equal)
_DEFINE_BINARY_OPERATOR(>=, __greater_equal)
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _GLIBCXX_VALARRAY */
//namespace std::tr1
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
/// @brief struct array [6.2.2].
/// NB: Requires complete type _Tp.
template<typename _Tp, std::size_t _Nm = 1>
const _Tp&
get(const array<_Tp, _Nm>& __arr)
{ return __arr[_Int]; }
-} // namespace std::tr1
+
+_GLIBCXX_END_NAMESPACE
}
#endif
// namespace std::tr1
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
class bad_weak_ptr : public std::exception
{
mutable weak_ptr<_Tp> _M_weak_this;
};
-} // namespace tr1
+_GLIBCXX_END_NAMESPACE
} // namespace std
#endif
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
template<typename _MemberPointer>
class _Mem_fn;
return result;
}
};
-}
+
+_GLIBCXX_END_NAMESPACE
}
#endif
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
//----------------------------------------------------------------------
// Class template hashtable, class definition.
__throw_exception_again;
}
}
-}
+
+_GLIBCXX_END_NAMESPACE
} // Namespace std::tr1
#endif /* GNU_LIBSTDCXX_TR1_HASHTABLE_ */
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
template<typename _Tp>
class reference_wrapper;
template<typename _Tp>
reference_wrapper<const _Tp>
cref(const _Tp& __t);
-}
+
+_GLIBCXX_END_NAMESPACE
}
#endif
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
// An implementation specific class which is used in the tuple class
// when the tuple is not maximum possible size.
struct _NullClass { };
#include <tr1/repeat.h>
#undef _GLIBCXX_REPEAT_HEADER
#undef _SHORT_REPEAT
-}
+
+_GLIBCXX_END_NAMESPACE
}
#include <tr1/functional>
// namespace std::tr1
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
// For use in __in_array and elsewhere.
struct __sfinae_types
{
#undef _DEFINE_SPEC
#undef _DEFINE_SPEC_BODY
-}
+_GLIBCXX_END_NAMESPACE
}
#endif
// namespace std::tr1
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
/// @brief helper classes [4.3].
template<typename _Tp, _Tp __v>
struct integral_constant;
/// @brief other transformations [4.8].
template<std::size_t _Len, std::size_t _Align>
struct aligned_storage;
-}
+
+_GLIBCXX_END_NAMESPACE
}
#endif
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
// XXX When we get typedef templates these class definitions
// will be unnecessary.
unordered_multimap<Key, T, Hash, Pred, Alloc, cache_hash_code>& y)
{ x.swap(y); }
-}
+_GLIBCXX_END_NAMESPACE
}
#endif /* GNU_LIBSTDCXX_TR1_UNORDERED_MAP_ */
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
// XXX When we get typedef templates these class definitions
// will be unnecessary.
unordered_multiset<Value, Hash, Pred, Alloc, cache_hash_code>& y)
{ x.swap(y); }
-}
+_GLIBCXX_END_NAMESPACE
}
#endif /* GNU_LIBSTDCXX_TR1_UNORDERED_SET_ */
namespace std
{
-namespace tr1
-{
+_GLIBCXX_BEGIN_NAMESPACE(tr1)
+
template<class _Tp> class tuple_size;
template<int _Int, class _Tp> class tuple_element;
const typename tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&
get(const pair<_Tp1, _Tp2>& __in)
{ return __pair_get<_Int>::__const_get(__in); }
-}
+
+_GLIBCXX_END_NAMESPACE
}
#endif
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
using std::malloc;
using std::memcpy;
#else
-// In a freestanding environment, these functions may not be
-// available -- but for now, we assume that they are.
+// In a freestanding environment, these functions may not be available
+// -- but for now, we assume that they are.
extern "C" void *malloc (std::size_t);
extern "C" void free(void *);
extern "C" int memset (void *, int, std::size_t);
// Exception Handling support header for -*- C++ -*-
-// Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002
+// Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2005
// Free Software Foundation
//
// This file is part of GCC.
#pragma GCC visibility push(default)
+#include <bits/c++config.h>
+
extern "C++" {
namespace std
bool uncaught_exception() throw();
} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/** A replacement for the standard terminate_handler which prints more
information about the terminating exception (if any) on stderr. Call
@code
In 3.4 and later, this is on by default.
*/
void __verbose_terminate_handler ();
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
} // extern "C++"
// Verbose terminate_handler -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation
+// Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// the GNU General Public License.
#include <bits/c++config.h>
+
#if _GLIBCXX_HOSTED
#include <cstdlib>
#include <exception>
using namespace std;
using namespace abi;
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// A replacement for the standard terminate_handler which prints
// more information about the terminating exception (if any) on
// stderr.
abort();
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
+
#endif
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
version_arg = -Wl,--version-script=libstdc++-symbols.ver
version_dep = libstdc++-symbols.ver
endif
+if ENABLE_SYMVERS_GNU_NAMESPACE
+version_arg = -Wl,--version-script=libstdc++-symbols.ver
+version_dep = libstdc++-symbols.ver
+endif
if ENABLE_SYMVERS_DARWIN
version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
version_dep = libstdc++-symbols.explist
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
toolexeclib_LTLIBRARIES = libstdc++.la
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
@ENABLE_SYMVERS_FALSE@version_arg =
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,--version-script=libstdc++-symbols.ver
@ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,--version-script=libstdc++-symbols.ver
@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.explist
@ENABLE_SYMVERS_FALSE@version_dep =
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver
@ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver
# Source files linked in via configuration/make substitution for a
// Explicit instantiation file.
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <memory>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template class allocator<char>;
template class allocator<wchar_t>;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#include <ext/bitmap_allocator.h>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
namespace balloc
{
template class __mini_vector<std::pair
// Instantiations.
template class bitmap_allocator<char>;
template class bitmap_allocator<wchar_t>;
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Definitions for locale::id of standard facets that are specialized.
locale::id codecvt<char, char, mbstate_t>::id;
do_always_noconv() const throw()
{ return false; }
#endif // _GLIBCXX_USE_WCHAR_T
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#define _M_set_length_and_sharable(a) _M_set_length_and_sharableXX(a)
#define ignore ignoreXX
#define eq eqXX
+#define _List_node_base _List_node_baseXX
+#define __gnu_debug __gnu_debugXX
#endif
#include <string>
#include <fstream>
#include <sstream>
-namespace std
-{
- // std::istream ignore explicit specializations.
+_GLIBCXX_BEGIN_NAMESPACE(std)
+ // std::istream ignore explicit specializations.
template<>
basic_istream<char>&
basic_istream<char>::
{
streamsize __size = std::min(streamsize(__sb->egptr()
- __sb->gptr()),
- streamsize(__n - _M_gcount));
+ streamsize(__n - _M_gcount));
if (__size > 1)
{
__sb->gbump(__size);
{
streamsize __size = std::min(streamsize(__sb->egptr()
- __sb->gptr()),
- streamsize(__n - _M_gcount));
+ streamsize(__n - _M_gcount));
if (__size > 1)
{
__sb->gbump(__size);
return *this;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
+
// NB: These symbols renames should go into the shared library only,
// and only those shared libraries that support versioning.
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv
*/
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
istreambuf_iterator<char>&
istreambuf_iterator<char>::operator++();
istreambuf_iterator<wchar_t>&
istreambuf_iterator<wchar_t>::operator++();
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
/* gcc-4.0.0
_ZNSs4_Rep26_M_set_length_and_sharableEj
_ZNSt11char_traitsIcE2eqERKcS2_
_ZNSt11char_traitsIwE2eqERKwS2_
*/
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// std::char_traits is explicitly specialized
bool (* __p1)(const char&, const char&) = &char_traits<char>::eq;
bool
basic_ofstream<wchar_t>::is_open() const;
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// The rename syntax for default exported names is
// asm (".symver name1,exportedname@GLIBCXX_3.4")
#include <bits/compatibility.h>
#undef _GLIBCXX_APPLY_SYMVER
+/* gcc-3.4.0
+_ZN10__gnu_norm15_List_node_base4hookEPS0_;
+_ZN10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZN10__gnu_norm15_List_node_base6unhookEv;
+_ZN10__gnu_norm15_List_node_base7reverseEv;
+_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
+_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv;
+_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv;
+_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
+_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
+_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
+_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
+_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
+_ZNK11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+*/
+#include "debug_list.cc"
+#include "debug.cc"
+
+_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX4hookEPS_, \
+_ZN10__gnu_norm15_List_node_base4hookEPS0_, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX4swapERS_S0_, \
+_ZN10__gnu_norm15_List_node_base4swapERS0_S1_, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX6unhookEv, \
+_ZN10__gnu_norm15_List_node_base6unhookEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX7reverseEv, \
+_ZN10__gnu_norm15_List_node_base7reverseEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt17_List_node_baseXX8transferEPS_S0_, \
+_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt13__gnu_debugXX19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb, \
+_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb, \
+ GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt13__gnu_debugXX19_Safe_iterator_base9_M_detachEv, \
+_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX19_Safe_iterator_base11_M_singularEv,\
+_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX19_Safe_iterator_base14_M_can_compareERKS0_, \
+_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt13__gnu_debugXX19_Safe_sequence_base13_M_detach_allEv, \
+_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt13__gnu_debugXX19_Safe_sequence_base18_M_detach_singularEv, \
+_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt13__gnu_debugXX19_Safe_sequence_base22_M_revalidate_singularEv, \
+_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNSt13__gnu_debugXX19_Safe_sequence_base7_M_swapERS0_, \
+_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX16_Error_formatter8_M_errorEv, \
+_ZNK11__gnu_debug16_Error_formatter8_M_errorEv, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX16_Error_formatter10_M_messageENS_13_Debug_msg_idE, \
+_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc, \
+_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_, \
+_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX16_Error_formatter13_M_print_wordEPKc, \
+_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc, \
+GLIBCXX_3.4)
+
+_GLIBCXX_ASM_SYMVER(_ZNKSt13__gnu_debugXX16_Error_formatter15_M_print_stringEPKc, \
+_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc, \
+GLIBCXX_3.4)
+
+
#endif
#ifdef _GLIBCXX_SYMVER_DARWIN
using namespace std;
extern "C" void
-__eprintf (const char *string, const char *expression,
- unsigned int line, const char *filename)
+__eprintf(const char *string, const char *expression,
+ unsigned int line, const char *filename)
{
- fprintf (stderr, string, expression, line, filename);
- fflush (stderr);
- abort ();
+ fprintf(stderr, string, expression, line, filename);
+ fflush(stderr);
+ abort();
}
#endif
#endif
// The template and inlines for the -*- C++ -*- complex number classes.
-// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <complex>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
basic_istream<char, char_traits<char> >&
operator>>(basic_istream<char, char_traits<char> >&, complex<float>&);
operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&,
const complex<long double>&);
#endif //_GLIBCXX_USE_WCHAR_T
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#define _Instantiate(...) template void __function_requires< __VA_ARGS__ > ()
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template void __aux_require_boolean_expr<bool>(bool const&);
_Instantiate(_ConvertibleConcept<unsigned, unsigned> );
_Instantiate(_RandomAccessIteratorConcept<wchar_t const*> );
#endif
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#undef _Instantiate
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Definitions for static const data members of ctype_base.
const ctype_base::mask ctype_base::space;
const ctype_base::mask ctype_base::print;
}
}
#endif
-} // namespace std
+_GLIBCXX_END_NAMESPACE
static __glibcxx_mutex_define_initialized(iterator_base_mutex);
} // namespace __gnu_internal
+namespace std
+{
namespace __gnu_debug
{
const char* _S_debug_messages[] =
_Safe_iterator_base::
_M_can_compare(const _Safe_iterator_base& __x) const
{
- return (!_M_singular() && !__x._M_singular()
- && _M_sequence == __x._M_sequence);
+ return (!_M_singular()
+ && !__x._M_singular() && _M_sequence == __x._M_sequence);
}
void
_Error_formatter::_M_format_word(char*, int, const char*,
const char*) const;
} // namespace __gnu_debug
+} // namespace std
const int min_len = __gnu_cxx::_Rope_constants::_S_max_rope_depth + 1;
}
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using namespace __gnu_internal;
template
template class stdio_filebuf<wchar_t>;
#endif
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <fstream>
-namespace std
-{
- // filebuf
- template class basic_filebuf<char, char_traits<char> >;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_filebuf<wchar_t, char_traits<wchar_t> >;
-#endif
+_GLIBCXX_BEGIN_NAMESPACE(std)
- // ifstream
+ template class basic_filebuf<char, char_traits<char> >;
template class basic_ifstream<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_ifstream<wchar_t>;
-#endif
-
- // ofstream
template class basic_ofstream<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_ofstream<wchar_t>;
-#endif
-
- // fstream
template class basic_fstream<char>;
+
#ifdef _GLIBCXX_USE_WCHAR_T
+ template class basic_filebuf<wchar_t, char_traits<wchar_t> >;
+ template class basic_ifstream<wchar_t>;
+ template class basic_ofstream<wchar_t>;
template class basic_fstream<wchar_t>;
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <new>
#include <typeinfo>
#include <ios>
+
#ifdef _GLIBCXX_USE_NLS
# include <libintl.h>
# define _(msgid) gettext (msgid)
# define _(msgid) (msgid)
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
#if __EXCEPTIONS
void
__throw_bad_exception(void)
__throw_ios_failure(const char*)
{ abort(); }
#endif //__EXCEPTIONS
-}
+
+_GLIBCXX_END_NAMESPACE
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// In macro form:
// _GLIBCXX_ASM_SYMVER(currentname, oldname, GLIBCXX_3.2)
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Standard stream objects.
// NB: Iff <iostream> is included, these definitions become wonky.
typedef char fake_istream[sizeof(istream)]
fake_wostream wcerr;
fake_wostream wclog;
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
namespace __gnu_internal
{
#include <ios>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template class basic_ios<char>;
#ifdef _GLIBCXX_USE_WCHAR_T
template class basic_ios<wchar_t>;
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <limits>
#include <bits/atomicity.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// XXX GLIBCXX_ABI Deprecated
// Definitions for static const data members of __ios_flags.
const __ios_flags::__int_type __ios_flags::_S_boolalpha;
}
_M_callbacks = 0;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <ios>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
ios_base::failure::failure(const string& __str) throw()
: _M_msg(__str) { }
const char*
ios_base::failure::what() const throw()
{ return _M_msg.c_str(); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#endif
} // namespace __gnu_internal
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using namespace __gnu_internal;
extern istream cin;
}
return __ret;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <ios>
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Called only by basic_ios<>::init.
void
ios_base::_M_init()
_M_call_callbacks(imbue_event);
return __old;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#include <iostream>
#include <iomanip>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template class _Setfill<char>;
template _Setfill<char> setfill(char);
template class basic_iostream<char>;
template _Setfill<wchar_t> setfill(wchar_t);
template class basic_iostream<wchar_t>;
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <istream>
#include <iomanip>
-namespace std
-{
- // istream
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template class basic_istream<char>;
template istream& ws(istream&);
template istream& operator>>(istream&, char&);
template wistream& operator>>(wistream&, _Setprecision);
template wistream& operator>>(wistream&, _Setw);
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#include <istream>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
basic_istream<char>&
basic_istream<char>::
return __in;
}
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Static data members of -*- C++ -*- numeric_limits classes
-// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <limits>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
const bool __numeric_limits_base::is_specialized;
const int __numeric_limits_base::digits;
const int __numeric_limits_base::digits10;
const bool numeric_limits<long double>::traps;
const bool numeric_limits<long double>::tinyness_before;
const float_round_style numeric_limits<long double>::round_style;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// std::list utilities implementation -*- C++ -*-
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <list>
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
void
_List_node_base::swap(_List_node_base& __x, _List_node_base& __y)
{
__prev_node->_M_next = __next_node;
__next_node->_M_prev = __prev_node;
}
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
// Locale support -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
# define C char
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// moneypunct, money_get, and money_put
template class moneypunct<C, false>;
template class moneypunct<C, true>;
__int_to_char(C*, unsigned long long, const C*,
ios_base::fmtflags, bool);
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Locale support -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
+// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
int
__convert_from_v(char*, const int, const char*, double,
int
__convert_from_v(char*, const int, const char*, long double,
const __c_locale&, int);
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
static __glibcxx_mutex_define_initialized(locale_cache_mutex);
}
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Definitions for static const data members of locale.
const locale::category locale::none;
const locale::category locale::ctype;
_M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
return _M_index - 1;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Definitions for static const data members of time_base.
template<>
const char*
*__fptr++ = (__flags & ios_base::uppercase) ? 'G' : 'g';
*__fptr = '\0';
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
static __glibcxx_mutex_define_initialized(locale_mutex);
} // namespace __gnu_internal
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using namespace __gnu_internal;
locale::locale() throw() : _M_impl(0)
_M_caches[__timepunct<wchar_t>::id._M_id()] = __tpw;
#endif
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <cstring>
#include <locale>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using namespace __gnu_cxx;
locale::locale(const char* __s) : _M_impl(0)
}
}
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#include <ostream>
#include <ext/stdio_sync_filebuf.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// string related to iostreams
template
basic_istream<char>&
basic_istream<wchar_t>&
getline(basic_istream<wchar_t>&, wstring&);
#endif
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template class stdio_sync_filebuf<char>;
#ifdef _GLIBCXX_USE_WCHAR_T
template class stdio_sync_filebuf<wchar_t>;
#endif
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
}
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
void
__pool<false>::_M_destroy() throw()
{
// Instantiations.
template class __mt_alloc<char>;
template class __mt_alloc<wchar_t>;
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <ostream>
#include <iomanip>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// ostream
template class basic_ostream<char>;
template ostream& endl(ostream&);
template wostream& operator<<(wostream&, _Setprecision);
template wostream& operator<<(wostream&, _Setw);
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
static __glibcxx_mutex_define_initialized(palloc_init_mutex);
}
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// Definitions for __pool_alloc_base.
__pool_alloc_base::_Obj* volatile*
__pool_alloc_base::_M_get_free_list(size_t __bytes)
// Instantiations.
template class __pool_alloc<char>;
template class __pool_alloc<wchar_t>;
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <sstream>
-namespace std
-{
- // stringbuf
- template class basic_stringbuf<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_stringbuf<wchar_t>;
-#endif
+_GLIBCXX_BEGIN_NAMESPACE(std)
- // istringstream
+ template class basic_stringbuf<char>;
template class basic_istringstream<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_istringstream<wchar_t>;
-#endif
-
- // ostringstream
template class basic_ostringstream<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_ostringstream<wchar_t>;
-#endif
-
- // stringstream
template class basic_stringstream<char>;
+
#ifdef _GLIBCXX_USE_WCHAR_T
+ template class basic_stringbuf<wchar_t>;
+ template class basic_istringstream<wchar_t>;
+ template class basic_ostringstream<wchar_t>;
template class basic_stringstream<wchar_t>;
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Methods for Exception Support for -*- C++ -*-
-// Copyright (C) 1997, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <string>
#include <stdexcept>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
logic_error::logic_error(const string& __arg)
: exception(), _M_msg(__arg) { }
underflow_error::underflow_error(const string& __arg)
: runtime_error(__arg) { }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Explicit instantiation file.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
#include <ios>
#include <streambuf>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// streambuf
template class basic_streambuf<char>;
-#ifdef _GLIBCXX_USE_WCHAR_T
- template class basic_streambuf<wchar_t>;
-#endif
template
streamsize
- __copy_streambufs(basic_streambuf<char>*,
- basic_streambuf<char>*);
+ __copy_streambufs(basic_streambuf<char>*, basic_streambuf<char>*);
+
#ifdef _GLIBCXX_USE_WCHAR_T
+ // wstreambuf
+ template class basic_streambuf<wchar_t>;
+
template
streamsize
- __copy_streambufs(basic_streambuf<wchar_t>*,
- basic_streambuf<wchar_t>*);
+ __copy_streambufs(basic_streambuf<wchar_t>*, basic_streambuf<wchar_t>*);
#endif
-} //std
+
+_GLIBCXX_END_NAMESPACE
#include <streambuf>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
streamsize
__copy_streambufs(basic_streambuf<char>* __sbin,
return __ret;
}
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
# define C char
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef basic_string<C> S;
template class basic_string<C>;
template
const C*
search(const C*, const C*, const C*, const C*, bool(*)(const C&, const C&));
-} // namespace std
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-namespace __gnu_cxx
-{
using std::S;
template bool operator==(const S::iterator&, const S::iterator&);
template bool operator==(const S::const_iterator&, const S::const_iterator&);
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
// strstream definitions -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <string.h>
#include <limits.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
strstreambuf::strstreambuf(streamsize initial_capacity)
: _Base(), _M_alloc_fun(0), _M_free_fun(0), _M_dynamic(true),
_M_frozen(false), _M_constant(false)
char*
strstream::str()
{ return _M_buf.str(); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// RB tree utilities implementation -*- C++ -*-
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <bits/stl_tree.h>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
_Rb_tree_node_base*
_Rb_tree_increment(_Rb_tree_node_base* __x)
{
while (1);
return __sum;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
// Explicit instantiation file.
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#include <valarray>
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Some explicit instantiations.
template void
__valarray_fill(size_t* __restrict__, size_t, const size_t&);
: _M_count(1), _M_start(__o), _M_size(__l), _M_stride(__s),
_M_index(__l.size() == 0 ? 0 : __valarray_product(__l))
{ __gslice_to_index(__o, __l, __s, _M_index); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
return 0;
}
// { dg-error "candidates" "" { target *-*-* } 223 }
-// { dg-error "std::auto_ptr" "" { target *-*-* } 353 }
+// { dg-error "::auto_ptr" "" { target *-*-* } 353 }
// { dg-do compile }
// libstdc++/21770
-template class __gnu_debug::basic_string<int, std::char_traits<int>,
- std::allocator<char> >;
+template class debug::basic_string<int, std::char_traits<int>,
+ std::allocator<char> >;
// libstdc++/16020
void test01()
{
- using __gnu_debug::bitset;
+ using debug::bitset;
bool test __attribute__((unused)) = true;
bitset<5> b(7);
#include <debug/bitset>
#include <testsuite_hooks.h>
-using __gnu_debug::bitset;
+using debug::bitset;
bool test = true;
// libstdc++/13838
void test01()
{
- using __gnu_debug::bitset;
+ using debug::bitset;
bool test __attribute__((unused)) = true;
bitset<4> b0, b1;
#include <debug/deque>
#include <testsuite_hooks.h>
-using __gnu_debug::deque;
+using debug::deque;
bool test = true;
#include <debug/deque>
#include <testsuite_hooks.h>
-using __gnu_debug::deque;
+using debug::deque;
bool test = true;
#include <debug/deque>
#include <testsuite_hooks.h>
-using __gnu_debug::deque;
+using debug::deque;
bool test = true;
#include <debug/deque>
#include <testsuite_hooks.h>
-using __gnu_debug::deque;
+using debug::deque;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::list;
+using debug::list;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::list;
+using debug::list;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::list;
+using debug::list;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::list;
+using debug::list;
using std::advance;
bool test = true;
// libstdc++/16813
void test01()
{
- using __gnu_debug::map;
+ using debug::map;
bool test __attribute__((unused)) = true;
map<int, float> m1, m2;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::map;
+using debug::map;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::map;
+using debug::map;
using std::advance;
bool test = true;
#include <testsuite_hooks.h>
#include <utility>
-using __gnu_debug::multimap;
+using debug::multimap;
using std::advance;
bool test = true;
#include <testsuite_hooks.h>
#include <utility>
-using __gnu_debug::multimap;
+using debug::multimap;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::multiset;
+using debug::multiset;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::multiset;
+using debug::multiset;
using std::advance;
// Erase
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::set;
+using debug::set;
using std::advance;
bool test = true;
#include <iterator>
#include <testsuite_hooks.h>
-using __gnu_debug::set;
+using debug::set;
using std::advance;
// Erase
#include <debug/vector>
#include <testsuite_hooks.h>
-using __gnu_debug::vector;
+using debug::vector;
bool test = true;
#include <debug/vector>
#include <testsuite_hooks.h>
-using __gnu_debug::vector;
+using debug::vector;
bool test = true;
#include <debug/vector>
#include <testsuite_hooks.h>
-using __gnu_debug::vector;
+using debug::vector;
bool test = true;
#include <debug/vector>
#include <testsuite_hooks.h>
-using __gnu_debug::vector;
+using debug::vector;
bool test = true;
ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
+ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
EXEEXT = @EXEEXT@
#include <ext/hash_map>
#include <testsuite_hooks.h>
-using namespace std;
-using namespace __gnu_cxx;
-
namespace __gnu_cxx
{
+ using std::string;
+
inline size_t hash_string(const char* s)
{
unsigned long h;
};
}
-
-const int Size = 5;
-
void test01()
{
+ const int Size = 5;
bool test __attribute__((unused)) = true;
+ using std::string;
+ using std::pair;
+ using std::vector;
+ using __gnu_cxx::hash_map;
+
for (int i = 0; i < 10; i++)
{
- hash_map<string,int> a;
- hash_map<string,int> b;
+ hash_map<string, int> a;
+ hash_map<string, int> b;
- vector<pair<string,int> > contents (Size);
+ vector<pair<string, int> > contents (Size);
for (int j = 0; j < Size; j++)
{
string s;
-// Copyright (C) 2004 Free Software Foundation
+// Copyright (C) 2004, 2005 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// libstdc++/14648
void test01()
{
- using namespace std;
using namespace __gnu_cxx;
- typedef hash_map<char, crope, hash<char>, equal_to<char> > maptype;
+ typedef hash_map<char, crope, hash<char>, std::equal_to<char> > maptype;
maptype m;
m['l'] = "50";
m['x'] = "10";
- cout << "m['x'] = " << m['x'] << endl;
+ std::cout << "m['x'] = " << m['x'] << std::endl;
}
int main()
typedef character<unsigned int, unsigned long> pod_uint;
}
-namespace __gnu_cxx {
+namespace __gnu_cxx
+{
// Specializations.
// pod_char
template<>