* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108775
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
_ACEOF
;;
+ gnu-versioned-namespace)
+ SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_SYMVER_GNU_NAMESPACE 1
+_ACEOF
+
+ ;;
darwin)
SYMVER_FILE=config/abi/pre/gnu.ver
+
{ 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