Commit 8e32aa11 by Benjamin Kosnik Committed by Benjamin Kosnik

user.cfg.in: Adjust includes.

2009-11-06  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in: Adjust includes.

	* doc/doxygen/doxygroups.cc: Move group markup.
	* include/tr1_impl/regex: Change " to '. Add group markup.
	* include/std/utility: Same.
	* include/std/type_traits: Same.
	* include/std/streambuf: Same.
	* include/std/iosfwd: Same.
	* include/std/limits: Same.
	* include/std/sstream: Same.
	* include/profile/impl/profiler_state.h: Same.
	* include/profile/impl/profiler_hashtable_size.h: Same.
	* include/bits/stl_algobase.h: Same.
	* include/bits/stl_iterator_base_types.h: Same.
	* include/bits/stream_iterator.h: Same.
	* include/bits/stl_iterator.h: Same.
	* include/bits/stl_tempbuf.h: Same.
	* include/bits/streambuf_iterator.h: Same.
	* libsupc++/exception: Same.
	* libsupc++/cxxabi.h: Same.
	* include/tr1_impl/type_traits: Same.

	* include/parallel/multiway_merge.h: Change @__c to @c, @__f to @f.
	* include/parallel/list_partition.h: Same.
	* include/parallel/for_each.h: Same.
	* include/parallel/workstealing.h: Same.
	* include/parallel/base.h: Same.
	* include/parallel/equally_split.h: Same.
	* include/parallel/random_shuffle.h: Same.
	* include/parallel/balanced_quicksort.h: Same.
	* include/parallel/merge.h: Same.
	* include/parallel/multiway_mergesort.h: Same.
	* include/parallel/compatibility.h: Same.
	* include/parallel/queue.h: Same.
	* include/parallel/checkers.h: Same.
	* include/parallel/random_number.h: Same.


	* include/c_global/csignal: Change # to \#.
	* include/c_global/cstdlib: Same.
	* include/c_global/cstdio: Same.
	* include/c_global/cstdarg: Same.
	* include/c_global/cctype: Same.
	* include/c_global/cerrno: Same.
	* include/c_global/cstdatomic: Same.
	* include/c_global/cmath: Same.
	* include/c_global/ciso646: Same.
	* include/c_global/ctime: Same.
	* include/c_global/clocale: Same.
	* include/c_global/climits: Same.
	* include/c_global/cassert: Same.
	* include/c_global/csetjmp: Same.
	* include/c_global/cwchar: Same.
	* include/c_global/cfloat: Same.
	* include/c_global/cstring: Same.
	* include/c_global/cstddef: Same.
	* include/c_global/cwctype: Same.

	* include/std/memory: Only dance around boost_sp_counted_base.h.
	* include/tr1_impl/boost_sp_counted_base.h: Add markup.
	* include/tr1/shared_ptr.h: Strip markup.
	* include/bits/shared_ptr.h: Move base types...
	* include/bits/shared_ptr_base.h: ...here.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.
	* configure: Same.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Adjust line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.

From-SVN: r153980
parent 2fdbecf6
2009-11-06 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Adjust includes.
* doc/doxygen/doxygroups.cc: Move group markup.
* include/tr1_impl/regex: Change " to '. Add group markup.
* include/std/utility: Same.
* include/std/type_traits: Same.
* include/std/streambuf: Same.
* include/std/iosfwd: Same.
* include/std/limits: Same.
* include/std/sstream: Same.
* include/profile/impl/profiler_state.h: Same.
* include/profile/impl/profiler_hashtable_size.h: Same.
* include/bits/stl_algobase.h: Same.
* include/bits/stl_iterator_base_types.h: Same.
* include/bits/stream_iterator.h: Same.
* include/bits/stl_iterator.h: Same.
* include/bits/stl_tempbuf.h: Same.
* include/bits/streambuf_iterator.h: Same.
* libsupc++/exception: Same.
* libsupc++/cxxabi.h: Same.
* include/tr1_impl/type_traits: Same.
* include/parallel/multiway_merge.h: Change @__c to @c, @__f to @f.
* include/parallel/list_partition.h: Same.
* include/parallel/for_each.h: Same.
* include/parallel/workstealing.h: Same.
* include/parallel/base.h: Same.
* include/parallel/equally_split.h: Same.
* include/parallel/random_shuffle.h: Same.
* include/parallel/balanced_quicksort.h: Same.
* include/parallel/merge.h: Same.
* include/parallel/multiway_mergesort.h: Same.
* include/parallel/compatibility.h: Same.
* include/parallel/queue.h: Same.
* include/parallel/checkers.h: Same.
* include/parallel/random_number.h: Same.
* include/c_global/csignal: Change # to \#.
* include/c_global/cstdlib: Same.
* include/c_global/cstdio: Same.
* include/c_global/cstdarg: Same.
* include/c_global/cctype: Same.
* include/c_global/cerrno: Same.
* include/c_global/cstdatomic: Same.
* include/c_global/cmath: Same.
* include/c_global/ciso646: Same.
* include/c_global/ctime: Same.
* include/c_global/clocale: Same.
* include/c_global/climits: Same.
* include/c_global/cassert: Same.
* include/c_global/csetjmp: Same.
* include/c_global/cwchar: Same.
* include/c_global/cfloat: Same.
* include/c_global/cstring: Same.
* include/c_global/cstddef: Same.
* include/c_global/cwctype: Same.
* include/std/memory: Only dance around boost_sp_counted_base.h.
* include/tr1_impl/boost_sp_counted_base.h: Add markup.
* include/tr1/shared_ptr.h: Strip markup.
* include/bits/shared_ptr.h: Move base types...
* include/bits/shared_ptr_base.h: ...here.
* include/Makefile.am: Add.
* include/Makefile.in: Regenerate.
* configure: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Adjust line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
2009-11-06 Paolo Carlini <paolo.carlini@oracle.com> 2009-11-06 Paolo Carlini <paolo.carlini@oracle.com>
* include/parallel/multiway_merge.h: Simple formatting and * include/parallel/multiway_merge.h: Simple formatting and
......
...@@ -19542,7 +19542,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -19542,7 +19542,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -26444,7 +26444,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -26444,7 +26444,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -32259,7 +32259,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -32259,7 +32259,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -43904,7 +43904,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -43904,7 +43904,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -44118,7 +44118,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -44118,7 +44118,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -44593,7 +44593,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -44593,7 +44593,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -50762,7 +50762,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -50762,7 +50762,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -56562,7 +56562,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -56562,7 +56562,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -56729,7 +56729,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -56729,7 +56729,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -56878,7 +56878,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -56878,7 +56878,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -57045,7 +57045,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -57045,7 +57045,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -57217,7 +57217,7 @@ $as_echo_n "checking for ld version... " >&6; } ...@@ -57217,7 +57217,7 @@ $as_echo_n "checking for ld version... " >&6; }
glibcxx_ld_is_gold=yes glibcxx_ld_is_gold=yes
fi fi
ldver=`$LD --version 2>/dev/null | ldver=`$LD --version 2>/dev/null |
sed -e 's/GNU gold /GNU ld/;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
...@@ -149,10 +149,3 @@ summarized in <a href="tables.html">tables</a>. */ ...@@ -149,10 +149,3 @@ summarized in <a href="tables.html">tables</a>. */
* Components for concurrent operations, including threads, mutexes, * Components for concurrent operations, including threads, mutexes,
* and condition variables. * and condition variables.
*/ */
/**
* @defgroup pointer_abstractions Pointer Abstractions
* @ingroup memory
*
* Components for memory allocation, deallocation, and management.
*/
...@@ -669,17 +669,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -669,17 +669,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/profile/unordered_map \ include/profile/unordered_map \
include/profile/unordered_set \ include/profile/unordered_set \
include/profile/vector \ include/profile/vector \
include/profile/base.h \
include/profile/impl/profiler.h \
include/profile/impl/profiler_container_size.h \
include/profile/impl/profiler_hash_func.h \
include/profile/impl/profiler_hashtable_size.h \
include/profile/impl/profiler_map_to_unordered_map.h \
include/profile/impl/profiler_node.h \
include/profile/impl/profiler_state.h \
include/profile/impl/profiler_trace.h \
include/profile/impl/profiler_vector_size.h \
include/profile/impl/profiler_vector_to_list.h \
include/ext/algorithm \ include/ext/algorithm \
include/ext/functional \ include/ext/functional \
include/ext/iterator \ include/ext/iterator \
...@@ -720,7 +709,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -720,7 +709,6 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/tr1_impl/cwctype \ include/tr1_impl/cwctype \
include/tr1_impl/functional \ include/tr1_impl/functional \
include/tr1_impl/hashtable \ include/tr1_impl/hashtable \
include/tr1_impl/random \
include/tr1_impl/regex \ include/tr1_impl/regex \
include/tr1_impl/type_traits \ include/tr1_impl/type_traits \
include/tr1_impl/unordered_map \ include/tr1_impl/unordered_map \
...@@ -732,10 +720,10 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \ ...@@ -732,10 +720,10 @@ INPUT = @srcdir@/doc/doxygen/doxygroups.cc \
include/@host_alias@/bits \ include/@host_alias@/bits \
include/backward \ include/backward \
include/bits \ include/bits \
include/bits/shared_ptr.h \
include/debug \ include/debug \
include/parallel \ include/parallel \
include/profile \ include/profile \
include/profile/impl \
include/ext \ include/ext \
include/ext/pb_ds \ include/ext/pb_ds \
include/ext/pb_ds/detail include/ext/pb_ds/detail
......
...@@ -121,6 +121,7 @@ bits_headers = \ ...@@ -121,6 +121,7 @@ bits_headers = \
${bits_srcdir}/stream_iterator.h \ ${bits_srcdir}/stream_iterator.h \
${bits_srcdir}/streambuf_iterator.h \ ${bits_srcdir}/streambuf_iterator.h \
${bits_srcdir}/shared_ptr.h \ ${bits_srcdir}/shared_ptr.h \
${bits_srcdir}/shared_ptr_base.h \
${bits_srcdir}/slice_array.h \ ${bits_srcdir}/slice_array.h \
${bits_srcdir}/sstream.tcc \ ${bits_srcdir}/sstream.tcc \
${bits_srcdir}/stl_algo.h \ ${bits_srcdir}/stl_algo.h \
......
...@@ -364,6 +364,7 @@ bits_headers = \ ...@@ -364,6 +364,7 @@ bits_headers = \
${bits_srcdir}/stream_iterator.h \ ${bits_srcdir}/stream_iterator.h \
${bits_srcdir}/streambuf_iterator.h \ ${bits_srcdir}/streambuf_iterator.h \
${bits_srcdir}/shared_ptr.h \ ${bits_srcdir}/shared_ptr.h \
${bits_srcdir}/shared_ptr_base.h \
${bits_srcdir}/slice_array.h \ ${bits_srcdir}/slice_array.h \
${bits_srcdir}/sstream.tcc \ ${bits_srcdir}/sstream.tcc \
${bits_srcdir}/stl_algo.h \ ${bits_srcdir}/stl_algo.h \
......
...@@ -998,7 +998,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -998,7 +998,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
} }
/** /**
* @brief Performs "dictionary" comparison on ranges. * @brief Performs 'dictionary' comparison on ranges.
* @ingroup sorting_algorithms * @ingroup sorting_algorithms
* @param first1 An input iterator. * @param first1 An input iterator.
* @param last1 An input iterator. * @param last1 An input iterator.
...@@ -1006,9 +1006,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P) ...@@ -1006,9 +1006,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
* @param last2 An input iterator. * @param last2 An input iterator.
* @return A boolean true or false. * @return A boolean true or false.
* *
* "Returns true if the sequence of elements defined by the range * 'Returns true if the sequence of elements defined by the range
* [first1,last1) is lexicographically less than the sequence of elements * [first1,last1) is lexicographically less than the sequence of elements
* defined by the range [first2,last2). Returns false otherwise." * defined by the range [first2,last2). Returns false otherwise.'
* (Quoted from [25.3.8]/1.) If the iterators are all character pointers, * (Quoted from [25.3.8]/1.) If the iterators are all character pointers,
* then this is an inline call to @c memcmp. * then this is an inline call to @c memcmp.
*/ */
......
...@@ -67,9 +67,14 @@ ...@@ -67,9 +67,14 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup iterators
* @{
*/
// 24.4.1 Reverse iterators // 24.4.1 Reverse iterators
/** /**
* "Bidirectional and random access iterators have corresponding reverse * 'Bidirectional and random access iterators have corresponding reverse
* %iterator adaptors that iterate through the data structure in the * %iterator adaptors that iterate through the data structure in the
* opposite direction. They have the same signatures as the corresponding * opposite direction. They have the same signatures as the corresponding
* iterators. The fundamental relation between a reverse %iterator and its * iterators. The fundamental relation between a reverse %iterator and its
...@@ -80,7 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -80,7 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* *
* This mapping is dictated by the fact that while there is always a * This mapping is dictated by the fact that while there is always a
* pointer past the end of an array, there might not be a valid pointer * pointer past the end of an array, there might not be a valid pointer
* before the beginning of an array." [24.4.1]/1,2 * before the beginning of an array.' [24.4.1]/1,2
* *
* Reverse iterators can be tricky and surprising at first. Their * Reverse iterators can be tricky and surprising at first. Their
* semantics make sense, however, and the trickiness is a side effect of * semantics make sense, however, and the trickiness is a side effect of
...@@ -97,14 +102,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -97,14 +102,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
protected: protected:
_Iterator current; _Iterator current;
public: typedef iterator_traits<_Iterator> __traits_type;
typedef _Iterator iterator_type;
typedef typename iterator_traits<_Iterator>::difference_type
difference_type;
typedef typename iterator_traits<_Iterator>::reference reference;
typedef typename iterator_traits<_Iterator>::pointer pointer;
public: public:
typedef _Iterator iterator_type;
typedef typename __traits_type::difference_type difference_type;
typedef typename __traits_type::pointer pointer;
typedef typename __traits_type::reference reference;
/** /**
* The default constructor default-initializes member @p current. * The default constructor default-initializes member @p current.
* If it is a pointer, that means it is zero-initialized. * If it is a pointer, that means it is zero-initialized.
...@@ -651,6 +656,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -651,6 +656,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
typename _Container::iterator(__i)); typename _Container::iterator(__i));
} }
// @} group iterators
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
...@@ -670,15 +677,15 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) ...@@ -670,15 +677,15 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
protected: protected:
_Iterator _M_current; _Iterator _M_current;
typedef iterator_traits<_Iterator> __traits_type;
public: public:
typedef _Iterator iterator_type; typedef _Iterator iterator_type;
typedef typename iterator_traits<_Iterator>::iterator_category typedef typename __traits_type::iterator_category iterator_category;
iterator_category; typedef typename __traits_type::value_type value_type;
typedef typename iterator_traits<_Iterator>::value_type value_type; typedef typename __traits_type::difference_type difference_type;
typedef typename iterator_traits<_Iterator>::difference_type typedef typename __traits_type::reference reference;
difference_type; typedef typename __traits_type::pointer pointer;
typedef typename iterator_traits<_Iterator>::reference reference;
typedef typename iterator_traits<_Iterator>::pointer pointer;
__normal_iterator() : _M_current(_Iterator()) { } __normal_iterator() : _M_current(_Iterator()) { }
...@@ -869,6 +876,11 @@ _GLIBCXX_END_NAMESPACE ...@@ -869,6 +876,11 @@ _GLIBCXX_END_NAMESPACE
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup iterators
* @{
*/
// 24.4.3 Move iterators // 24.4.3 Move iterators
/** /**
* Class template move_iterator is an iterator adapter with the same * Class template move_iterator is an iterator adapter with the same
...@@ -884,18 +896,17 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -884,18 +896,17 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
protected: protected:
_Iterator _M_current; _Iterator _M_current;
typedef iterator_traits<_Iterator> __traits_type;
public: public:
typedef _Iterator iterator_type; typedef _Iterator iterator_type;
typedef typename iterator_traits<_Iterator>::difference_type typedef typename __traits_type::iterator_category iterator_category;
difference_type; typedef typename __traits_type::value_type value_type;
typedef typename __traits_type::difference_type difference_type;
// NB: DR 680. // NB: DR 680.
typedef _Iterator pointer; typedef _Iterator pointer;
typedef typename iterator_traits<_Iterator>::value_type value_type; typedef value_type&& reference;
typedef typename iterator_traits<_Iterator>::iterator_category
iterator_category;
typedef value_type&& reference;
public:
move_iterator() move_iterator()
: _M_current() { } : _M_current() { }
...@@ -1031,6 +1042,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1031,6 +1042,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
make_move_iterator(const _Iterator& __i) make_move_iterator(const _Iterator& __i)
{ return move_iterator<_Iterator>(__i); } { return move_iterator<_Iterator>(__i); }
// @} group iterators
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter) #define _GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter)
......
...@@ -77,15 +77,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -77,15 +77,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
//@{ //@{
/// Marking input iterators. /// Marking input iterators.
struct input_iterator_tag { }; struct input_iterator_tag { };
/// Marking output iterators. /// Marking output iterators.
struct output_iterator_tag { }; struct output_iterator_tag { };
/// Forward iterators support a superset of input iterator operations. /// Forward iterators support a superset of input iterator operations.
struct forward_iterator_tag : public input_iterator_tag { }; struct forward_iterator_tag : public input_iterator_tag { };
/// Bidirectional iterators support a superset of forward iterator /// Bidirectional iterators support a superset of forward iterator
/// operations. /// operations.
struct bidirectional_iterator_tag : public forward_iterator_tag { }; struct bidirectional_iterator_tag : public forward_iterator_tag { };
/// Random-access iterators support a superset of bidirectional iterator
/// operations. /// Random-access iterators support a superset of bidirectional
/// iterator operations.
struct random_access_iterator_tag : public bidirectional_iterator_tag { }; struct random_access_iterator_tag : public bidirectional_iterator_tag { };
...@@ -116,6 +120,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -116,6 +120,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
}; };
/** /**
* @brief Traits class for iterators.
*
* This class does nothing but define nested typedefs. The general * This class does nothing but define nested typedefs. The general
* version simply "forwards" the nested typedefs from the Iterator * version simply "forwards" the nested typedefs from the Iterator
* argument. Specialized versions for pointers and pointers-to-const * argument. Specialized versions for pointers and pointers-to-const
...@@ -131,6 +137,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -131,6 +137,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
typedef typename _Iterator::reference reference; typedef typename _Iterator::reference reference;
}; };
/// Partial specialization for pointer types.
template<typename _Tp> template<typename _Tp>
struct iterator_traits<_Tp*> struct iterator_traits<_Tp*>
{ {
...@@ -141,6 +148,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -141,6 +148,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
typedef _Tp& reference; typedef _Tp& reference;
}; };
/// Partial specialization for const pointer types.
template<typename _Tp> template<typename _Tp>
struct iterator_traits<const _Tp*> struct iterator_traits<const _Tp*>
{ {
......
...@@ -72,9 +72,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -72,9 +72,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* *
* This function tries to obtain storage for @c len adjacent Tp * This function tries to obtain storage for @c len adjacent Tp
* objects. The objects themselves are not constructed, of course. * objects. The objects themselves are not constructed, of course.
* A pair<> is returned containing "the buffer s address and * A pair<> is returned containing 'the buffer s address and
* capacity (in the units of sizeof(Tp)), or a pair of 0 values if * capacity (in the units of sizeof(Tp)), or a pair of 0 values if
* no storage can be obtained." Note that the capacity obtained * no storage can be obtained.' Note that the capacity obtained
* may be less than that requested if the memory is unavailable; * may be less than that requested if the memory is unavailable;
* you should compare len with the .second return value. * you should compare len with the .second return value.
* *
......
...@@ -36,6 +36,11 @@ ...@@ -36,6 +36,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup iterators
* @{
*/
/// Provides input iterator semantics for streams. /// Provides input iterator semantics for streams.
template<typename _Tp, typename _CharT = char, template<typename _Tp, typename _CharT = char,
typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t> typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t>
...@@ -206,6 +211,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -206,6 +211,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
{ return *this; } { return *this; }
}; };
// @} group iterators
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif #endif
...@@ -39,6 +39,11 @@ ...@@ -39,6 +39,11 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @addtogroup iterators
* @{
*/
// 24.5.3 Template class istreambuf_iterator // 24.5.3 Template class istreambuf_iterator
/// Provides input iterator semantics for streambufs. /// Provides input iterator semantics for streambufs.
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
...@@ -387,6 +392,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -387,6 +392,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return __first; return __first;
} }
// @} group iterators
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
#endif #endif
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file cassert /** @file cassert
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c assert.h, * This is the C++ version of the Standard C Library header @c assert.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cctype /** @file include/cctype
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c ctype.h, * This is the C++ version of the Standard C Library header @c ctype.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file cerrno /** @file cerrno
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c errno.h, * This is the C++ version of the Standard C Library header @c errno.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cfloat /** @file include/cfloat
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c float.h, * This is the C++ version of the Standard C Library header @c float.h,
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file ciso646 /** @file ciso646
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c iso646.h, * This is the C++ version of the Standard C Library header @c iso646.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/climits /** @file include/climits
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c limits.h, * This is the C++ version of the Standard C Library header @c limits.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file clocale /** @file clocale
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c locale.h, * This is the C++ version of the Standard C Library header @c locale.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cmath /** @file include/cmath
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c math.h, * This is the C++ version of the Standard C Library header @c math.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file csetjmp /** @file csetjmp
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c setjmp.h, * This is the C++ version of the Standard C Library header @c setjmp.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file csignal /** @file csignal
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c signal.h, * This is the C++ version of the Standard C Library header @c signal.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cstdarg /** @file include/cstdarg
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c stdarg.h, * This is the C++ version of the Standard C Library header @c stdarg.h,
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file cstdatomic /** @file cstdatomic
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c stdatomic.h, * This is the C++ version of the Standard C Library header @c stdatomic.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file cstddef /** @file cstddef
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c stddef.h, * This is the C++ version of the Standard C Library header @c stddef.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cstdio /** @file include/cstdio
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c stdio.h, * This is the C++ version of the Standard C Library header @c stdio.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cstdlib /** @file include/cstdlib
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c stdlib.h, * This is the C++ version of the Standard C Library header @c stdlib.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file cstring /** @file cstring
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c string.h, * This is the C++ version of the Standard C Library header @c string.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/ctime /** @file include/ctime
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c time.h, * This is the C++ version of the Standard C Library header @c time.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cwchar /** @file include/cwchar
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c wchar.h, * This is the C++ version of the Standard C Library header @c wchar.h,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
/** @file include/cwctype /** @file include/cwctype
* This is a Standard C++ Library file. You should @c #include this file * This is a Standard C++ Library file. You should @c \#include this file
* in your programs, rather than any of the "*.h" implementation files. * in your programs, rather than any of the "*.h" implementation files.
* *
* This is the C++ version of the Standard C Library header @c wctype.h, * This is the C++ version of the Standard C Library header @c wctype.h,
......
...@@ -94,7 +94,7 @@ namespace __gnu_parallel ...@@ -94,7 +94,7 @@ namespace __gnu_parallel
* @param __comp Comparator. * @param __comp Comparator.
* @param __num_threads Number of threads that are allowed to work on * @param __num_threads Number of threads that are allowed to work on
* this part. * this part.
* @pre @__c (__end-__begin)>=1 */ * @pre @c (__end-__begin)>=1 */
template<typename _RAIter, typename _Compare> template<typename _RAIter, typename _Compare>
typename std::iterator_traits<_RAIter>::difference_type typename std::iterator_traits<_RAIter>::difference_type
__qsb_divide(_RAIter __begin, _RAIter __end, __qsb_divide(_RAIter __begin, _RAIter __end,
......
...@@ -93,7 +93,7 @@ namespace __gnu_parallel ...@@ -93,7 +93,7 @@ namespace __gnu_parallel
__is_parallel(const _Parallelism __p) { return __p != sequential; } __is_parallel(const _Parallelism __p) { return __p != sequential; }
/** @brief Calculates the rounded-down logarithm of @__c __n for base 2. /** @brief Calculates the rounded-down logarithm of @c __n for base 2.
* @param __n Argument. * @param __n Argument.
* @return Returns 0 for any argument <1. * @return Returns 0 for any argument <1.
*/ */
...@@ -108,11 +108,11 @@ namespace __gnu_parallel ...@@ -108,11 +108,11 @@ namespace __gnu_parallel
} }
/** @brief Encode two integers into one gnu_parallel::_CASable. /** @brief Encode two integers into one gnu_parallel::_CASable.
* @param __a First integer, to be encoded in the most-significant @__c * @param __a First integer, to be encoded in the most-significant @c
* _CASable_bits/2 bits. * _CASable_bits/2 bits.
* @param __b Second integer, to be encoded in the least-significant * @param __b Second integer, to be encoded in the least-significant
* @__c _CASable_bits/2 bits. * @c _CASable_bits/2 bits.
* @return value encoding @__c __a and @__c __b. * @return value encoding @c __a and @c __b.
* @see decode2 * @see decode2
*/ */
inline _CASable inline _CASable
...@@ -124,9 +124,9 @@ namespace __gnu_parallel ...@@ -124,9 +124,9 @@ namespace __gnu_parallel
/** @brief Decode two integers from one gnu_parallel::_CASable. /** @brief Decode two integers from one gnu_parallel::_CASable.
* @param __x __gnu_parallel::_CASable to decode integers from. * @param __x __gnu_parallel::_CASable to decode integers from.
* @param __a First integer, to be decoded from the most-significant * @param __a First integer, to be decoded from the most-significant
* @__c _CASable_bits/2 bits of @__c __x. * @c _CASable_bits/2 bits of @c __x.
* @param __b Second integer, to be encoded in the least-significant * @param __b Second integer, to be encoded in the least-significant
* @__c _CASable_bits/2 bits of @__c __x. * @c _CASable_bits/2 bits of @c __x.
* @see __encode2 * @see __encode2
*/ */
inline void inline void
...@@ -422,7 +422,7 @@ namespace __gnu_parallel ...@@ -422,7 +422,7 @@ namespace __gnu_parallel
}; };
/** @brief Compute the median of three referenced elements, /** @brief Compute the median of three referenced elements,
according to @__c __comp. according to @c __comp.
* @param __a First iterator. * @param __a First iterator.
* @param __b Second iterator. * @param __b Second iterator.
* @param __c Third iterator. * @param __c Third iterator.
......
...@@ -39,12 +39,12 @@ ...@@ -39,12 +39,12 @@
namespace __gnu_parallel namespace __gnu_parallel
{ {
/** /**
* @brief Check whether @__c [__begin, @__c __end) is sorted according * @brief Check whether @c [__begin, @c __end) is sorted according
* to @__c __comp. * to @c __comp.
* @param __begin Begin iterator of sequence. * @param __begin Begin iterator of sequence.
* @param __end End iterator of sequence. * @param __end End iterator of sequence.
* @param __comp Comparator. * @param __comp Comparator.
* @return @__c true if sorted, @__c false otherwise. * @return @c true if sorted, @c false otherwise.
*/ */
template<typename _IIter, typename _Compare> template<typename _IIter, typename _Compare>
bool bool
......
...@@ -227,8 +227,8 @@ namespace __gnu_parallel ...@@ -227,8 +227,8 @@ namespace __gnu_parallel
#endif #endif
/** @brief Compare @__c *__ptr and @__c __comparand. If equal, let @__c /** @brief Compare @c *__ptr and @c __comparand. If equal, let @c
* *__ptr=__replacement and return @__c true, return @__c false otherwise. * *__ptr=__replacement and return @c true, return @c false otherwise.
* *
* Implementation is heavily platform-dependent. * Implementation is heavily platform-dependent.
* @param __ptr Pointer to 32-bit signed integer. * @param __ptr Pointer to 32-bit signed integer.
...@@ -270,8 +270,8 @@ namespace __gnu_parallel ...@@ -270,8 +270,8 @@ namespace __gnu_parallel
#endif #endif
} }
/** @brief Compare @__c *__ptr and @__c __comparand. If equal, let @__c /** @brief Compare @c *__ptr and @c __comparand. If equal, let @c
* *__ptr=__replacement and return @__c true, return @__c false otherwise. * *__ptr=__replacement and return @c true, return @c false otherwise.
* *
* Implementation is heavily platform-dependent. * Implementation is heavily platform-dependent.
* @param __ptr Pointer to 64-bit signed integer. * @param __ptr Pointer to 64-bit signed integer.
...@@ -323,8 +323,8 @@ namespace __gnu_parallel ...@@ -323,8 +323,8 @@ namespace __gnu_parallel
#endif #endif
} }
/** @brief Compare @__c *__ptr and @__c __comparand. If equal, let @__c /** @brief Compare @c *__ptr and @c __comparand. If equal, let @c
* *__ptr=__replacement and return @__c true, return @__c false otherwise. * *__ptr=__replacement and return @c true, return @c false otherwise.
* *
* Implementation is heavily platform-dependent. * Implementation is heavily platform-dependent.
* @param __ptr Pointer to signed integer. * @param __ptr Pointer to signed integer.
......
...@@ -42,7 +42,7 @@ namespace __gnu_parallel ...@@ -42,7 +42,7 @@ namespace __gnu_parallel
* @param __n Number of elements * @param __n Number of elements
* @param __num_threads Number of parts * @param __num_threads Number of parts
* @param __s Splitters * @param __s Splitters
* @returns End of __splitter sequence, i.e. @__c __s+__num_threads+1 */ * @returns End of __splitter sequence, i.e. @c __s+__num_threads+1 */
template<typename _DifferenceType, typename _OutputIterator> template<typename _DifferenceType, typename _OutputIterator>
_OutputIterator _OutputIterator
equally_split(_DifferenceType __n, _ThreadIndex __num_threads, equally_split(_DifferenceType __n, _ThreadIndex __num_threads,
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
namespace __gnu_parallel namespace __gnu_parallel
{ {
/** @brief Chose the desired algorithm by evaluating @__c __parallelism_tag. /** @brief Chose the desired algorithm by evaluating @c __parallelism_tag.
* @param __begin Begin iterator of input sequence. * @param __begin Begin iterator of input sequence.
* @param __end End iterator of input sequence. * @param __end End iterator of input sequence.
* @param __user_op A user-specified functor (comparator, predicate, * @param __user_op A user-specified functor (comparator, predicate,
......
...@@ -42,7 +42,7 @@ namespace __gnu_parallel ...@@ -42,7 +42,7 @@ namespace __gnu_parallel
* @param __os_starts Start positions worked on (oversampled). * @param __os_starts Start positions worked on (oversampled).
* @param __count_to_two Counts up to 2. * @param __count_to_two Counts up to 2.
* @param __range_length Current length of a chunk. * @param __range_length Current length of a chunk.
* @param __make_twice Whether the @__c __os_starts is allowed to be * @param __make_twice Whether the @c __os_starts is allowed to be
* grown or not * grown or not
*/ */
template<typename _IIter> template<typename _IIter>
...@@ -83,16 +83,17 @@ namespace __gnu_parallel ...@@ -83,16 +83,17 @@ namespace __gnu_parallel
* @param __begin Begin iterator of input sequence. * @param __begin Begin iterator of input sequence.
* @param __end End iterator of input sequence. * @param __end End iterator of input sequence.
* @param __starts Start iterators for the resulting parts, dimension * @param __starts Start iterators for the resulting parts, dimension
* @__c __num_parts+1. For convenience, @__c __starts @__c [__num_parts] * @c __num_parts+1. For convenience, @c __starts @c [__num_parts]
* contains the end iterator of the sequence. * contains the end iterator of the sequence.
* @param __lengths Length of the resulting parts. * @param __lengths Length of the resulting parts.
* @param __num_parts Number of parts to split the sequence into. * @param __num_parts Number of parts to split the sequence into.
* @param __f Functor to be applied to each element by traversing __it * @param __f Functor to be applied to each element by traversing __it
* @param __oversampling Oversampling factor. If 0, then the * @param __oversampling Oversampling factor. If 0, then the
* partitions will differ in at most @__f$ \sqrt{\mathrm{__end} - * partitions will differ in at most
* \mathrm{__begin}} @__f$ __elements. Otherwise, the ratio between the * \sqrt{\mathrm{__end} - \mathrm{__begin}}
* longest and the shortest part is bounded by @__f$ * __elements. Otherwise, the ratio between the
* 1/(\mathrm{__oversampling} \cdot \mathrm{num\_parts}) @__f$. * longest and the shortest part is bounded by
* 1/(\mathrm{__oversampling} \cdot \mathrm{num\_parts})
* @return Length of the whole sequence. * @return Length of the whole sequence.
*/ */
template<typename _IIter, typename _FunctorType> template<typename _IIter, typename _FunctorType>
......
...@@ -37,11 +37,11 @@ ...@@ -37,11 +37,11 @@
namespace __gnu_parallel namespace __gnu_parallel
{ {
/** @brief Merge routine being able to merge only the @__c __max_length /** @brief Merge routine being able to merge only the @c __max_length
* smallest elements. * smallest elements.
* *
* The @__c __begin iterators are advanced accordingly, they might not * The @c __begin iterators are advanced accordingly, they might not
* reach @__c __end, in contrast to the usual variant. * reach @c __end, in contrast to the usual variant.
* @param __begin1 Begin iterator of first sequence. * @param __begin1 Begin iterator of first sequence.
* @param __end1 End iterator of first sequence. * @param __end1 End iterator of first sequence.
* @param __begin2 Begin iterator of second sequence. * @param __begin2 Begin iterator of second sequence.
...@@ -83,11 +83,11 @@ namespace __gnu_parallel ...@@ -83,11 +83,11 @@ namespace __gnu_parallel
return __target; return __target;
} }
/** @brief Merge routine being able to merge only the @__c __max_length /** @brief Merge routine being able to merge only the @c __max_length
* smallest elements. * smallest elements.
* *
* The @__c __begin iterators are advanced accordingly, they might not * The @c __begin iterators are advanced accordingly, they might not
* reach @__c __end, in contrast to the usual variant. * reach @c __end, in contrast to the usual variant.
* Specially designed code should allow the compiler to generate * Specially designed code should allow the compiler to generate
* conditional moves instead of branches. * conditional moves instead of branches.
* @param __begin1 Begin iterator of first sequence. * @param __begin1 Begin iterator of first sequence.
...@@ -150,11 +150,11 @@ namespace __gnu_parallel ...@@ -150,11 +150,11 @@ namespace __gnu_parallel
return __target; return __target;
} }
/** @brief Merge routine being able to merge only the @__c __max_length /** @brief Merge routine being able to merge only the @c __max_length
* smallest elements. * smallest elements.
* *
* The @__c __begin iterators are advanced accordingly, they might not * The @c __begin iterators are advanced accordingly, they might not
* reach @__c __end, in contrast to the usual variant. * reach @c __end, in contrast to the usual variant.
* Static switch on whether to use the conditional-move variant. * Static switch on whether to use the conditional-move variant.
* @param __begin1 Begin iterator of first sequence. * @param __begin1 Begin iterator of first sequence.
* @param __end1 End iterator of first sequence. * @param __end1 End iterator of first sequence.
...@@ -202,11 +202,11 @@ namespace __gnu_parallel ...@@ -202,11 +202,11 @@ namespace __gnu_parallel
{ return __merge_advance(__begin1, __end1, __begin2, __end2, __target, { return __merge_advance(__begin1, __end1, __begin2, __end2, __target,
__max_length, __comp); } __max_length, __comp); }
/** @brief Parallel merge routine being able to merge only the @__c /** @brief Parallel merge routine being able to merge only the @c
* __max_length smallest elements. * __max_length smallest elements.
* *
* The @__c __begin iterators are advanced accordingly, they might not * The @c __begin iterators are advanced accordingly, they might not
* reach @__c __end, in contrast to the usual variant. * reach @c __end, in contrast to the usual variant.
* The functionality is projected onto parallel_multiway_merge. * The functionality is projected onto parallel_multiway_merge.
* @param __begin1 Begin iterator of first sequence. * @param __begin1 Begin iterator of first sequence.
* @param __end1 End iterator of first sequence. * @param __end1 End iterator of first sequence.
......
...@@ -108,7 +108,7 @@ namespace __gnu_parallel ...@@ -108,7 +108,7 @@ namespace __gnu_parallel
/** @brief Compare two elements referenced by guarded iterators. /** @brief Compare two elements referenced by guarded iterators.
* @param __bi1 First iterator. * @param __bi1 First iterator.
* @param __bi2 Second iterator. * @param __bi2 Second iterator.
* @return @__c true if less. */ * @return @c true if less. */
friend bool friend bool
operator<(_GuardedIterator<_RAIter, _Compare>& __bi1, operator<(_GuardedIterator<_RAIter, _Compare>& __bi1,
_GuardedIterator<_RAIter, _Compare>& __bi2) _GuardedIterator<_RAIter, _Compare>& __bi2)
...@@ -123,7 +123,7 @@ namespace __gnu_parallel ...@@ -123,7 +123,7 @@ namespace __gnu_parallel
/** @brief Compare two elements referenced by guarded iterators. /** @brief Compare two elements referenced by guarded iterators.
* @param __bi1 First iterator. * @param __bi1 First iterator.
* @param __bi2 Second iterator. * @param __bi2 Second iterator.
* @return @__c True if less equal. */ * @return @c True if less equal. */
friend bool friend bool
operator<=(_GuardedIterator<_RAIter, _Compare>& __bi1, operator<=(_GuardedIterator<_RAIter, _Compare>& __bi1,
_GuardedIterator<_RAIter, _Compare>& __bi2) _GuardedIterator<_RAIter, _Compare>& __bi2)
...@@ -178,7 +178,7 @@ namespace __gnu_parallel ...@@ -178,7 +178,7 @@ namespace __gnu_parallel
/** @brief Compare two elements referenced by unguarded iterators. /** @brief Compare two elements referenced by unguarded iterators.
* @param __bi1 First iterator. * @param __bi1 First iterator.
* @param __bi2 Second iterator. * @param __bi2 Second iterator.
* @return @__c true if less. */ * @return @c true if less. */
friend bool friend bool
operator<(_UnguardedIterator<_RAIter, _Compare>& __bi1, operator<(_UnguardedIterator<_RAIter, _Compare>& __bi1,
_UnguardedIterator<_RAIter, _Compare>& __bi2) _UnguardedIterator<_RAIter, _Compare>& __bi2)
...@@ -190,7 +190,7 @@ namespace __gnu_parallel ...@@ -190,7 +190,7 @@ namespace __gnu_parallel
/** @brief Compare two elements referenced by unguarded iterators. /** @brief Compare two elements referenced by unguarded iterators.
* @param __bi1 First iterator. * @param __bi1 First iterator.
* @param __bi2 Second iterator. * @param __bi2 Second iterator.
* @return @__c True if less equal. */ * @return @c True if less equal. */
friend bool friend bool
operator<=(_UnguardedIterator<_RAIter, _Compare>& __bi1, operator<=(_UnguardedIterator<_RAIter, _Compare>& __bi1,
_UnguardedIterator<_RAIter, _Compare>& __bi2) _UnguardedIterator<_RAIter, _Compare>& __bi2)
...@@ -1724,7 +1724,7 @@ namespace __gnu_parallel ...@@ -1724,7 +1724,7 @@ namespace __gnu_parallel
* @pre All input sequences must be sorted. * @pre All input sequences must be sorted.
* @pre Target must provide enough space to merge out length elements or * @pre Target must provide enough space to merge out length elements or
* the number of elements in all sequences, whichever is smaller. * the number of elements in all sequences, whichever is smaller.
* @pre For each @__c __i, @__c __seqs_begin[__i].second must be the end * @pre For each @c __i, @c __seqs_begin[__i].second must be the end
* marker of the sequence, but also reference the one more __sentinel * marker of the sequence, but also reference the one more __sentinel
* element. * element.
* *
......
...@@ -82,14 +82,14 @@ namespace __gnu_parallel ...@@ -82,14 +82,14 @@ namespace __gnu_parallel
/** @brief Offsets to add to the found positions. */ /** @brief Offsets to add to the found positions. */
_DifferenceType* _M_offsets; _DifferenceType* _M_offsets;
/** @brief Pieces of data to merge @__c [thread][__sequence] */ /** @brief Pieces of data to merge @c [thread][__sequence] */
std::vector<_Piece<_DifferenceType> >* _M_pieces; std::vector<_Piece<_DifferenceType> >* _M_pieces;
}; };
/** /**
* @brief Select _M_samples from a sequence. * @brief Select _M_samples from a sequence.
* @param __sd Pointer to algorithm data. _Result will be placed in * @param __sd Pointer to algorithm data. _Result will be placed in
* @__c __sd->_M_samples. * @c __sd->_M_samples.
* @param __num_samples Number of _M_samples to select. * @param __num_samples Number of _M_samples to select.
*/ */
template<typename _RAIter, typename _DifferenceTp> template<typename _RAIter, typename _DifferenceTp>
......
...@@ -45,7 +45,7 @@ namespace __gnu_parallel ...@@ -45,7 +45,7 @@ namespace __gnu_parallel
* atomic access. push_front() and pop_front() must not be called * atomic access. push_front() and pop_front() must not be called
* concurrently to each other, while pop_back() can be called * concurrently to each other, while pop_back() can be called
* concurrently at all times. * concurrently at all times.
* @__c empty(), @__c size(), and @__c top() are intentionally not provided. * @c empty(), @c size(), and @c top() are intentionally not provided.
* Calling them would not make sense in a concurrent setting. * Calling them would not make sense in a concurrent setting.
* @param _Tp Contained element type. */ * @param _Tp Contained element type. */
template<typename _Tp> template<typename _Tp>
......
...@@ -81,7 +81,7 @@ namespace __gnu_parallel ...@@ -81,7 +81,7 @@ namespace __gnu_parallel
/** @brief Constructor. /** @brief Constructor.
* @param __seed Random __seed. * @param __seed Random __seed.
* @param _M_supremum Generate integer random numbers in the * @param _M_supremum Generate integer random numbers in the
* interval @__c [0,_M_supremum). */ * interval @c [0,_M_supremum). */
_RandomNumber(uint32_t __seed, uint64_t _M_supremum = 0x100000000ULL) _RandomNumber(uint32_t __seed, uint64_t _M_supremum = 0x100000000ULL)
: _M_mt(__seed), _M_supremum(_M_supremum), : _M_mt(__seed), _M_supremum(_M_supremum),
_M_rand_sup(1ULL << std::numeric_limits<uint32_t>::digits), _M_rand_sup(1ULL << std::numeric_limits<uint32_t>::digits),
...@@ -95,7 +95,7 @@ namespace __gnu_parallel ...@@ -95,7 +95,7 @@ namespace __gnu_parallel
{ return __scale_down(_M_mt(), _M_supremum, _M_supremum_reciprocal); } { return __scale_down(_M_mt(), _M_supremum, _M_supremum_reciprocal); }
/** @brief Generate unsigned random 32-bit integer in the /** @brief Generate unsigned random 32-bit integer in the
interval @__c [0,local_supremum). */ interval @c [0,local_supremum). */
uint32_t uint32_t
operator()(uint64_t local_supremum) operator()(uint64_t local_supremum)
{ {
......
...@@ -106,7 +106,7 @@ namespace __gnu_parallel ...@@ -106,7 +106,7 @@ namespace __gnu_parallel
_DRandomShufflingGlobalData<_RAIter>* _M_sd; _DRandomShufflingGlobalData<_RAIter>* _M_sd;
}; };
/** @brief Generate a random number in @__c [0,2^__logp). /** @brief Generate a random number in @c [0,2^__logp).
* @param __logp Logarithm (basis 2) of the upper range __bound. * @param __logp Logarithm (basis 2) of the upper range __bound.
* @param __rng Random number generator to use. * @param __rng Random number generator to use.
*/ */
......
...@@ -66,7 +66,7 @@ namespace __gnu_parallel ...@@ -66,7 +66,7 @@ namespace __gnu_parallel
* Changed by owning thread only. */ * Changed by owning thread only. */
_GLIBCXX_JOB_VOLATILE _DifferenceType _M_last; _GLIBCXX_JOB_VOLATILE _DifferenceType _M_last;
/** @brief Number of elements, i.e. @__c _M_last-_M_first+1. /** @brief Number of elements, i.e. @c _M_last-_M_first+1.
* *
* Changed by owning thread only. */ * Changed by owning thread only. */
_GLIBCXX_JOB_VOLATILE _DifferenceType _M_load; _GLIBCXX_JOB_VOLATILE _DifferenceType _M_load;
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
// reasons why the executable file might be covered by the GNU General // reasons why the executable file might be covered by the GNU General
// Public License. // Public License.
/** @file profile/impl/profiler_hashtable_size.cc /** @file profile/impl/profiler_hashtable_size.h
* @brief Collection of hashtable size traces. * @brief Collection of hashtable size traces.
*/ */
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
// reasons why the executable file might be covered by the GNU General // reasons why the executable file might be covered by the GNU General
// Public License. // Public License.
/** @file profile/impl/profiler_state.cc /** @file profile/impl/profiler_state.h
* @brief Global profiler state. * @brief Global profiler state.
*/ */
......
...@@ -43,6 +43,36 @@ ...@@ -43,6 +43,36 @@
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @defgroup io I/O
*
* Nearly all of the I/O classes are parameterized on the type of
* characters they read and write. (The major exception is ios_base at
* the top of the hierarchy.) This is a change from pre-Standard
* streams, which were not templates.
*
* For ease of use and compatibility, all of the basic_* I/O-related
* classes are given typedef names for both of the builtin character
* widths (wide and narrow). The typedefs are the same as the
* pre-Standard names, for example:
*
* @code
* typedef basic_ifstream<char> ifstream;
* @endcode
*
* Because properly forward-declaring these classes can be difficult, you
* should not do it yourself. Instead, include the &lt;iosfwd&gt;
* header, which contains only declarations of all the I/O classes as
* well as the typedefs. Trying to forward-declare the typedefs
* themselves (e.g., "class ostream;") is not valid ISO C++.
*
* For more specific declarations, see
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html
*
* @{
*/
class ios_base;
template<typename _CharT, typename _Traits = char_traits<_CharT> > template<typename _CharT, typename _Traits = char_traits<_CharT> >
class basic_ios; class basic_ios;
...@@ -94,36 +124,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -94,36 +124,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// _GLIBCXX_RESOLVE_LIB_DEFECTS // _GLIBCXX_RESOLVE_LIB_DEFECTS
// Not included. (??? Apparently no LWG number?) // Not included. (??? Apparently no LWG number?)
class ios_base;
/**
* @defgroup io I/O
*
* Nearly all of the I/O classes are parameterized on the type of
* characters they read and write. (The major exception is ios_base at
* the top of the hierarchy.) This is a change from pre-Standard
* streams, which were not templates.
*
* For ease of use and compatibility, all of the basic_* I/O-related
* classes are given typedef names for both of the builtin character
* widths (wide and narrow). The typedefs are the same as the
* pre-Standard names, for example:
*
* @code
* typedef basic_ifstream<char> ifstream;
* @endcode
*
* Because properly forward-declaring these classes can be difficult, you
* should not do it yourself. Instead, include the &lt;iosfwd&gt;
* header, which contains only declarations of all the I/O classes as
* well as the typedefs. Trying to forward-declare the typedefs
* themselves (e.g., "class ostream;") is not valid ISO C++.
*
* For more specific declarations, see
* http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html
*
* @{
*/
typedef basic_ios<char> ios; ///< @isiosfwd typedef basic_ios<char> ios; ///< @isiosfwd
typedef basic_streambuf<char> streambuf; ///< @isiosfwd typedef basic_streambuf<char> streambuf; ///< @isiosfwd
typedef basic_istream<char> istream; ///< @isiosfwd typedef basic_istream<char> istream; ///< @isiosfwd
......
...@@ -203,9 +203,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -203,9 +203,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* Is this supposed to be "if the type is integral"? * Is this supposed to be "if the type is integral"?
*/ */
static const bool is_integer = false; static const bool is_integer = false;
/** True if the type uses an exact representation. "All integer types are /** True if the type uses an exact representation. 'All integer types are
exact, but not all exact types are integer. For example, rational and exact, but not all exact types are integer. For example, rational and
fixed-exponent representations are exact but not integer." fixed-exponent representations are exact but not integer.'
[18.2.1.2]/15 */ [18.2.1.2]/15 */
static const bool is_exact = false; static const bool is_exact = false;
/** For integer types, specifies the base of the representation. For /** For integer types, specifies the base of the representation. For
...@@ -229,23 +229,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -229,23 +229,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** True if the type has a representation for positive infinity. */ /** True if the type has a representation for positive infinity. */
static const bool has_infinity = false; static const bool has_infinity = false;
/** True if the type has a representation for a quiet (non-signaling) /** True if the type has a representation for a quiet (non-signaling)
"Not a Number." */ 'Not a Number.' */
static const bool has_quiet_NaN = false; static const bool has_quiet_NaN = false;
/** True if the type has a representation for a signaling /** True if the type has a representation for a signaling
"Not a Number." */ 'Not a Number.' */
static const bool has_signaling_NaN = false; static const bool has_signaling_NaN = false;
/** See std::float_denorm_style for more information. */ /** See std::float_denorm_style for more information. */
static const float_denorm_style has_denorm = denorm_absent; static const float_denorm_style has_denorm = denorm_absent;
/** "True if loss of accuracy is detected as a denormalization loss, /** 'True if loss of accuracy is detected as a denormalization loss,
rather than as an inexact result." [18.2.1.2]/42 */ rather than as an inexact result.' [18.2.1.2]/42 */
static const bool has_denorm_loss = false; static const bool has_denorm_loss = false;
/** True if-and-only-if the type adheres to the IEC 559 standard, also /** True if-and-only-if the type adheres to the IEC 559 standard, also
known as IEEE 754. (Only makes sense for floating point types.) */ known as IEEE 754. (Only makes sense for floating point types.) */
static const bool is_iec559 = false; static const bool is_iec559 = false;
/** "True if the set of values representable by the type is finite. All /** 'True if the set of values representable by the type is finite. All
built-in types are bounded, this member would be false for arbitrary built-in types are bounded, this member would be false for arbitrary
precision types." [18.2.1.2]/54 */ precision types.' [18.2.1.2]/54 */
static const bool is_bounded = false; static const bool is_bounded = false;
/** True if the type is @e modulo, that is, if it is possible to add two /** True if the type is @e modulo, that is, if it is possible to add two
positive numbers and have a result that wraps around to a third number positive numbers and have a result that wraps around to a third number
......
...@@ -46,6 +46,20 @@ ...@@ -46,6 +46,20 @@
#pragma GCC system_header #pragma GCC system_header
/**
* @defgroup memory Memory
* @ingroup utilities
*
* Components for memory allocation, deallocation, and management.
*/
/**
* @defgroup pointer_abstractions Pointer Abstractions
* @ingroup memory
*
* Smart pointers, etc.
*/
#include <bits/stl_algobase.h> #include <bits/stl_algobase.h>
#include <bits/allocator.h> #include <bits/allocator.h>
#include <bits/stl_construct.h> #include <bits/stl_construct.h>
...@@ -64,37 +78,29 @@ ...@@ -64,37 +78,29 @@
# include <ext/concurrence.h> # include <ext/concurrence.h>
# include <bits/functexcept.h> # include <bits/functexcept.h>
# include <bits/stl_function.h> // std::less # include <bits/stl_function.h> // std::less
# include <bits/unique_ptr.h>
# include <debug/debug.h>
# include <type_traits> # include <type_traits>
# include <functional> # include <functional>
# include <debug/debug.h>
# include <bits/unique_ptr.h>
# if _GLIBCXX_DEPRECATED # if _GLIBCXX_DEPRECATED
# include <backward/auto_ptr.h> # include <backward/auto_ptr.h>
# endif # endif
# if defined(_GLIBCXX_INCLUDE_AS_CXX0X) # if defined(_GLIBCXX_INCLUDE_AS_CXX0X)
# include <tr1_impl/boost_sp_counted_base.h> # include <tr1_impl/boost_sp_counted_base.h>
# include <bits/shared_ptr.h>
# else # else
# define _GLIBCXX_INCLUDE_AS_CXX0X # define _GLIBCXX_INCLUDE_AS_CXX0X
# define _GLIBCXX_BEGIN_NAMESPACE_TR1 # define _GLIBCXX_BEGIN_NAMESPACE_TR1
# define _GLIBCXX_END_NAMESPACE_TR1 # define _GLIBCXX_END_NAMESPACE_TR1
# define _GLIBCXX_TR1 # define _GLIBCXX_TR1
# include <tr1_impl/boost_sp_counted_base.h> # include <tr1_impl/boost_sp_counted_base.h>
# include <bits/shared_ptr.h>
# undef _GLIBCXX_TR1 # undef _GLIBCXX_TR1
# undef _GLIBCXX_END_NAMESPACE_TR1 # undef _GLIBCXX_END_NAMESPACE_TR1
# undef _GLIBCXX_BEGIN_NAMESPACE_TR1 # undef _GLIBCXX_BEGIN_NAMESPACE_TR1
# undef _GLIBCXX_INCLUDE_AS_CXX0X # undef _GLIBCXX_INCLUDE_AS_CXX0X
# endif # endif
# include <bits/shared_ptr.h>
#else #else
# include <backward/auto_ptr.h> # include <backward/auto_ptr.h>
#endif #endif
/**
* @defgroup memory Memory
* @ingroup utilities
*
* Components for memory allocation, deallocation, and management.
*/
#endif /* _GLIBCXX_MEMORY */ #endif /* _GLIBCXX_MEMORY */
...@@ -112,9 +112,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -112,9 +112,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @brief Copying out the string buffer. * @brief Copying out the string buffer.
* @return A copy of one of the underlying sequences. * @return A copy of one of the underlying sequences.
* *
* "If the buffer is only created in input mode, the underlying * 'If the buffer is only created in input mode, the underlying
* character sequence is equal to the input sequence; otherwise, it * character sequence is equal to the input sequence; otherwise, it
* is equal to the output sequence." [27.7.1.2]/1 * is equal to the output sequence.' [27.7.1.2]/1
*/ */
__string_type __string_type
str() const str() const
......
...@@ -341,7 +341,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -341,7 +341,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @return The previous character, if possible. * @return The previous character, if possible.
* *
* Similar to sungetc(), but @a c is pushed onto the stream instead * Similar to sungetc(), but @a c is pushed onto the stream instead
* of "the previous character". If successful, the next character * of 'the previous character.' If successful, the next character
* fetched from the input stream will be @a c. * fetched from the input stream will be @a c.
*/ */
int_type int_type
...@@ -366,8 +366,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -366,8 +366,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* *
* If a putback position is available, this function decrements the * If a putback position is available, this function decrements the
* input pointer and returns that character. Otherwise, calls and * input pointer and returns that character. Otherwise, calls and
* returns pbackfail(). The effect is to "unget" the last character * returns pbackfail(). The effect is to 'unget' the last character
* "gotten". * 'gotten.'
*/ */
int_type int_type
sungetc() sungetc()
...@@ -541,10 +541,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -541,10 +541,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @param loc A new locale. * @param loc A new locale.
* *
* Translations done during I/O which depend on the current locale * Translations done during I/O which depend on the current locale
* are changed by this call. The standard adds, "Between invocations * are changed by this call. The standard adds, 'Between invocations
* of this function a class derived from streambuf can safely cache * of this function a class derived from streambuf can safely cache
* results of calls to locale functions and to members of facets * results of calls to locale functions and to members of facets
* so obtained." * so obtained.'
* *
* @note Base class version does nothing. * @note Base class version does nothing.
*/ */
...@@ -608,18 +608,18 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -608,18 +608,18 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @return An estimate of the number of characters available in the * @return An estimate of the number of characters available in the
* input sequence, or -1. * input sequence, or -1.
* *
* "If it returns a positive value, then successive calls to * 'If it returns a positive value, then successive calls to
* @c underflow() will not return @c traits::eof() until at least that * @c underflow() will not return @c traits::eof() until at least that
* number of characters have been supplied. If @c showmanyc() * number of characters have been supplied. If @c showmanyc()
* returns -1, then calls to @c underflow() or @c uflow() will fail." * returns -1, then calls to @c underflow() or @c uflow() will fail.'
* [27.5.2.4.3]/1 * [27.5.2.4.3]/1
* *
* @note Base class version does nothing, returns zero. * @note Base class version does nothing, returns zero.
* @note The standard adds that "the intention is not only that the * @note The standard adds that 'the intention is not only that the
* calls [to underflow or uflow] will not return @c eof() but * calls [to underflow or uflow] will not return @c eof() but
* that they will return "immediately". * that they will return immediately.'
* @note The standard adds that "the morphemes of @c showmanyc are * @note The standard adds that 'the morphemes of @c showmanyc are
* "es-how-many-see", not "show-manic". * 'es-how-many-see', not 'show-manic'.'
*/ */
virtual streamsize virtual streamsize
showmanyc() { return 0; } showmanyc() { return 0; }
...@@ -646,7 +646,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -646,7 +646,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* *
* Informally, this function is called when the input buffer is * Informally, this function is called when the input buffer is
* exhausted (or does not exist, as buffering need not actually be * exhausted (or does not exist, as buffering need not actually be
* done). If a buffer exists, it is "refilled". In either case, the * done). If a buffer exists, it is 'refilled'. In either case, the
* next available character is returned, or @c traits::eof() to * next available character is returned, or @c traits::eof() to
* indicate a null pending sequence. * indicate a null pending sequence.
* *
...@@ -690,7 +690,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -690,7 +690,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/** /**
* @brief Tries to back up the input sequence. * @brief Tries to back up the input sequence.
* @param c The character to be inserted back into the sequence. * @param c The character to be inserted back into the sequence.
* @return eof() on failure, "some other value" on success * @return eof() on failure, 'some other value' on success
* @post The constraints of @c gptr(), @c eback(), and @c pptr() * @post The constraints of @c gptr(), @c eback(), and @c pptr()
* are the same as for @c underflow(). * are the same as for @c underflow().
* *
...@@ -726,7 +726,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -726,7 +726,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* *
* Informally, this function is called when the output buffer is full * Informally, this function is called when the output buffer is full
* (or does not exist, as buffering need not actually be done). If a * (or does not exist, as buffering need not actually be done). If a
* buffer exists, it is "consumed", with "some effect" on the * buffer exists, it is 'consumed', with 'some effect' on the
* controlled sequence. (Typically, the buffer is written out to the * controlled sequence. (Typically, the buffer is written out to the
* sequence verbatim.) In either case, the character @a c is also * sequence verbatim.) In either case, the character @a c is also
* written out, if @a c is not @c eof(). * written out, if @a c is not @c eof().
......
...@@ -57,7 +57,8 @@ ...@@ -57,7 +57,8 @@
namespace std namespace std
{ {
/** @addtogroup metaprogramming /**
* @addtogroup metaprogramming
* @{ * @{
*/ */
...@@ -154,7 +155,7 @@ namespace std ...@@ -154,7 +155,7 @@ namespace std
template<typename _Tp> template<typename _Tp>
struct __is_signed_helper<_Tp, true, false> struct __is_signed_helper<_Tp, true, false>
: public integral_constant<bool, _Tp(-1) < _Tp(0)> : public integral_constant<bool, static_cast<bool>(_Tp(-1) < _Tp(0))>
{ }; { };
/// is_signed /// is_signed
......
...@@ -58,6 +58,14 @@ ...@@ -58,6 +58,14 @@
#pragma GCC system_header #pragma GCC system_header
/**
* @defgroup utilities Utilities
*
* Components deemed generally useful. Includes pair, tuple,
* forward/move helpers, ratio, function object, metaprogramming and
* type traits, time, date, and memory functions.
*/
#include <bits/c++config.h> #include <bits/c++config.h>
#include <bits/stl_relops.h> #include <bits/stl_relops.h>
#include <bits/stl_pair.h> #include <bits/stl_pair.h>
...@@ -83,12 +91,4 @@ ...@@ -83,12 +91,4 @@
# include <initializer_list> # include <initializer_list>
#endif #endif
/**
* @defgroup utilities Utilities
*
* Components deemed generally useful. Includes pair, tuple,
* forward/move helpers, ratio, function object, metaprogramming and
* type traits, time, date, and memory functions.
*/
#endif /* _GLIBCXX_UTILITY */ #endif /* _GLIBCXX_UTILITY */
...@@ -57,16 +57,12 @@ namespace std ...@@ -57,16 +57,12 @@ namespace std
{ {
namespace tr1 namespace tr1
{ {
template<typename _Ptr, typename _Deleter, _Lock_policy _Lp> template<typename _Ptr, typename _Deleter, _Lock_policy _Lp>
class _Sp_counted_base_impl class _Sp_counted_base_impl
: public _Sp_counted_base<_Lp> : public _Sp_counted_base<_Lp>
{ {
public: public:
/** // Precondition: __d(__p) must not throw.
* @brief
* @pre __d(__p) must not throw.
*/
_Sp_counted_base_impl(_Ptr __p, _Deleter __d) _Sp_counted_base_impl(_Ptr __p, _Deleter __d)
: _M_ptr(__p), _M_del(__d) { } : _M_ptr(__p), _M_del(__d) { }
...@@ -346,31 +342,19 @@ namespace tr1 ...@@ -346,31 +342,19 @@ namespace tr1
struct __const_cast_tag { }; struct __const_cast_tag { };
struct __dynamic_cast_tag { }; struct __dynamic_cast_tag { };
/** // A smart pointer with reference-counted copy semantics. The
* @class __shared_ptr // object pointed to is deleted when the last shared_ptr pointing to
* // it is destroyed or reset.
* A smart pointer with reference-counted copy semantics.
* The object pointed to is deleted when the last shared_ptr pointing to
* it is destroyed or reset.
*/
template<typename _Tp, _Lock_policy _Lp> template<typename _Tp, _Lock_policy _Lp>
class __shared_ptr class __shared_ptr
{ {
public: public:
typedef _Tp element_type; typedef _Tp element_type;
/** @brief Construct an empty %__shared_ptr.
* @post use_count()==0 && get()==0
*/
__shared_ptr() __shared_ptr()
: _M_ptr(0), _M_refcount() // never throws : _M_ptr(0), _M_refcount() // never throws
{ } { }
/** @brief Construct a %__shared_ptr that owns the pointer @a __p.
* @param __p A pointer that is convertible to element_type*.
* @post use_count() == 1 && get() == __p
* @throw std::bad_alloc, in which case @c delete @a __p is called.
*/
template<typename _Tp1> template<typename _Tp1>
explicit explicit
__shared_ptr(_Tp1* __p) __shared_ptr(_Tp1* __p)
...@@ -381,19 +365,6 @@ namespace tr1 ...@@ -381,19 +365,6 @@ namespace tr1
__enable_shared_from_this_helper(_M_refcount, __p, __p); __enable_shared_from_this_helper(_M_refcount, __p, __p);
} }
//
// Requirements: _Deleter's copy constructor and destructor must
// not throw
//
// __shared_ptr will release __p by calling __d(__p)
//
/** @brief Construct a %__shared_ptr that owns the pointer @a __p
* and the deleter @a __d.
* @param __p A pointer.
* @param __d A deleter.
* @post use_count() == 1 && get() == __p
* @throw std::bad_alloc, in which case @a __d(__p) is called.
*/
template<typename _Tp1, typename _Deleter> template<typename _Tp1, typename _Deleter>
__shared_ptr(_Tp1* __p, _Deleter __d) __shared_ptr(_Tp1* __p, _Deleter __d)
: _M_ptr(__p), _M_refcount(__p, __d) : _M_ptr(__p), _M_refcount(__p, __d)
...@@ -405,24 +376,11 @@ namespace tr1 ...@@ -405,24 +376,11 @@ namespace tr1
// generated copy constructor, assignment, destructor are fine. // generated copy constructor, assignment, destructor are fine.
/** @brief If @a __r is empty, constructs an empty %__shared_ptr;
* otherwise construct a %__shared_ptr that shares ownership
* with @a __r.
* @param __r A %__shared_ptr.
* @post get() == __r.get() && use_count() == __r.use_count()
*/
template<typename _Tp1> template<typename _Tp1>
__shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r) __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r)
: _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) // never throws : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount) // never throws
{ __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>) } { __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>) }
/** @brief Constructs a %__shared_ptr that shares ownership with @a __r
* and stores a copy of the pointer stored in @a __r.
* @param __r A weak_ptr.
* @post use_count() == __r.use_count()
* @throw bad_weak_ptr when __r.expired(),
* in which case the constructor has no effect.
*/
template<typename _Tp1> template<typename _Tp1>
explicit explicit
__shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r) __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r)
...@@ -435,9 +393,7 @@ namespace tr1 ...@@ -435,9 +393,7 @@ namespace tr1
} }
#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || _GLIBCXX_DEPRECATED #if !defined(__GXX_EXPERIMENTAL_CXX0X__) || _GLIBCXX_DEPRECATED
/** // Postcondition: use_count() == 1 and __r.get() == 0
* @post use_count() == 1 and __r.get() == 0
*/
template<typename _Tp1> template<typename _Tp1>
explicit explicit
__shared_ptr(std::auto_ptr<_Tp1>& __r) __shared_ptr(std::auto_ptr<_Tp1>& __r)
...@@ -595,30 +551,30 @@ namespace tr1 ...@@ -595,30 +551,30 @@ namespace tr1
{ __a.swap(__b); } { __a.swap(__b); }
// 2.2.3.9 shared_ptr casts // 2.2.3.9 shared_ptr casts
/** @warning The seemingly equivalent /* The seemingly equivalent
* <code>shared_ptr<_Tp, _Lp>(static_cast<_Tp*>(__r.get()))</code> * shared_ptr<_Tp, _Lp>(static_cast<_Tp*>(__r.get()))
* will eventually result in undefined behaviour, * will eventually result in undefined behaviour,
* attempting to delete the same object twice. * attempting to delete the same object twice.
*/ */
template<typename _Tp, typename _Tp1, _Lock_policy _Lp> template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
inline __shared_ptr<_Tp, _Lp> inline __shared_ptr<_Tp, _Lp>
static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
{ return __shared_ptr<_Tp, _Lp>(__r, __static_cast_tag()); } { return __shared_ptr<_Tp, _Lp>(__r, __static_cast_tag()); }
/** @warning The seemingly equivalent /* The seemingly equivalent
* <code>shared_ptr<_Tp, _Lp>(const_cast<_Tp*>(__r.get()))</code> * shared_ptr<_Tp, _Lp>(const_cast<_Tp*>(__r.get()))
* will eventually result in undefined behaviour, * will eventually result in undefined behaviour,
* attempting to delete the same object twice. * attempting to delete the same object twice.
*/ */
template<typename _Tp, typename _Tp1, _Lock_policy _Lp> template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
inline __shared_ptr<_Tp, _Lp> inline __shared_ptr<_Tp, _Lp>
const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
{ return __shared_ptr<_Tp, _Lp>(__r, __const_cast_tag()); } { return __shared_ptr<_Tp, _Lp>(__r, __const_cast_tag()); }
/** @warning The seemingly equivalent /* The seemingly equivalent
* <code>shared_ptr<_Tp, _Lp>(dynamic_cast<_Tp*>(__r.get()))</code> * shared_ptr<_Tp, _Lp>(dynamic_cast<_Tp*>(__r.get()))
* will eventually result in undefined behaviour, * will eventually result in undefined behaviour,
* attempting to delete the same object twice. * attempting to delete the same object twice.
*/ */
template<typename _Tp, typename _Tp1, _Lock_policy _Lp> template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
inline __shared_ptr<_Tp, _Lp> inline __shared_ptr<_Tp, _Lp>
...@@ -825,7 +781,6 @@ namespace tr1 ...@@ -825,7 +781,6 @@ namespace tr1
}; };
/// shared_ptr
// The actual shared_ptr, with forwarding constructors and // The actual shared_ptr, with forwarding constructors and
// assignment operators. // assignment operators.
template<typename _Tp> template<typename _Tp>
...@@ -914,7 +869,6 @@ namespace tr1 ...@@ -914,7 +869,6 @@ namespace tr1
{ return shared_ptr<_Tp>(__r, __dynamic_cast_tag()); } { return shared_ptr<_Tp>(__r, __dynamic_cast_tag()); }
/// weak_ptr
// The actual weak_ptr, with forwarding constructors and // The actual weak_ptr, with forwarding constructors and
// assignment operators. // assignment operators.
template<typename _Tp> template<typename _Tp>
...@@ -971,7 +925,6 @@ namespace tr1 ...@@ -971,7 +925,6 @@ namespace tr1
} }
}; };
/// enable_shared_from_this
template<typename _Tp> template<typename _Tp>
class enable_shared_from_this class enable_shared_from_this
{ {
...@@ -1013,7 +966,6 @@ namespace tr1 ...@@ -1013,7 +966,6 @@ namespace tr1
mutable weak_ptr<_Tp> _M_weak_this; mutable weak_ptr<_Tp> _M_weak_this;
}; };
} }
} }
......
...@@ -51,6 +51,10 @@ namespace std ...@@ -51,6 +51,10 @@ namespace std
{ {
_GLIBCXX_BEGIN_NAMESPACE_TR1 _GLIBCXX_BEGIN_NAMESPACE_TR1
/**
* @brief Exception possibly thrown by @c shared_ptr.
* @ingroup exceptions
*/
class bad_weak_ptr : public std::exception class bad_weak_ptr : public std::exception
{ {
public: public:
......
...@@ -135,9 +135,9 @@ namespace regex_constants ...@@ -135,9 +135,9 @@ namespace regex_constants
* Specifies that the grammar recognized by the regular expression engine is * Specifies that the grammar recognized by the regular expression engine is
* that used by POSIX utility awk in IEEE Std 1003.1-2001. This option is * that used by POSIX utility awk in IEEE Std 1003.1-2001. This option is
* identical to syntax_option_type extended, except that C-style escape * identical to syntax_option_type extended, except that C-style escape
* sequences are supported. These sequences are, explicitly, "\\", "\a", * sequences are supported. These sequences are, explicitly, '\\', '\a',
* "\b", "\f", "\n", "\r", "\t" , "\v", "\"", "'", * '\b', '\f', '\n', '\r', '\t' , '\v', '\'', ''',
* and "\ddd" (where ddd is one, two, or three octal digits). * and '\ddd' (where ddd is one, two, or three octal digits).
*/ */
static const syntax_option_type awk = 1 << _S_awk; static const syntax_option_type awk = 1 << _S_awk;
...@@ -202,26 +202,26 @@ namespace regex_constants ...@@ -202,26 +202,26 @@ namespace regex_constants
/** /**
* The first character in the sequence [first, last) is treated as though it * The first character in the sequence [first, last) is treated as though it
* is not at the beginning of a line, so the character "^" in the regular * is not at the beginning of a line, so the character '^' in the regular
* expression shall not match [first, first). * expression shall not match [first, first).
*/ */
static const match_flag_type match_not_bol = 1 << _S_not_bol; static const match_flag_type match_not_bol = 1 << _S_not_bol;
/** /**
* The last character in the sequence [first, last) is treated as though it * The last character in the sequence [first, last) is treated as though it
* is not at the end of a line, so the character "$" in the regular * is not at the end of a line, so the character '$' in the regular
* expression shall not match [last, last). * expression shall not match [last, last).
*/ */
static const match_flag_type match_not_eol = 1 << _S_not_eol; static const match_flag_type match_not_eol = 1 << _S_not_eol;
/** /**
* The expression "\b" is not matched against the sub-sequence * The expression '\b' is not matched against the sub-sequence
* [first,first). * [first,first).
*/ */
static const match_flag_type match_not_bow = 1 << _S_not_bow; static const match_flag_type match_not_bow = 1 << _S_not_bow;
/** /**
* The expression "\b" should not be matched against the sub-sequence * The expression '\b' should not be matched against the sub-sequence
* [last,last). * [last,last).
*/ */
static const match_flag_type match_not_eow = 1 << _S_not_eow; static const match_flag_type match_not_eow = 1 << _S_not_eow;
...@@ -363,7 +363,7 @@ namespace regex_constants ...@@ -363,7 +363,7 @@ namespace regex_constants
static const error_type error_space(_S_error_space); static const error_type error_space(_S_error_space);
/** /**
* One of "*?+{" was not preceded by a valid regular expression. * One of '*?+{' was not preceded by a valid regular expression.
*/ */
static const error_type error_badrepeat(_S_error_badrepeat); static const error_type error_badrepeat(_S_error_badrepeat);
...@@ -2532,7 +2532,7 @@ namespace regex_constants ...@@ -2532,7 +2532,7 @@ namespace regex_constants
// [7.12.2] Class template regex_token_iterator // [7.12.2] Class template regex_token_iterator
/** /**
* Iterates over submatches in a range (or "splits" a text string). * Iterates over submatches in a range (or 'splits' a text string).
* *
* The purpose of this iterator is to enumerate all, or all specified, * The purpose of this iterator is to enumerate all, or all specified,
* matches of a regular expression within a text range. The dereferenced * matches of a regular expression within a text range. The dereferenced
......
...@@ -497,5 +497,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -497,5 +497,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
#undef _DEFINE_SPEC #undef _DEFINE_SPEC
// @} group metaprogramming // @} group metaprogramming
_GLIBCXX_END_NAMESPACE_TR1 _GLIBCXX_END_NAMESPACE_TR1
} }
...@@ -582,7 +582,7 @@ namespace __cxxabiv1 ...@@ -582,7 +582,7 @@ namespace __cxxabiv1
/** @namespace abi /** @namespace abi
* @brief The cross-vendor C++ Application Binary Interface. A * @brief The cross-vendor C++ Application Binary Interface. A
* namespace alias to __cxxabiv1, but user programs should use the * namespace alias to __cxxabiv1, but user programs should use the
* alias `abi'. * alias 'abi'.
* *
* A brief overview of an ABI is given in the libstdc++ FAQ, question * A brief overview of an ABI is given in the libstdc++ FAQ, question
* 5.8 (you may have a copy of the FAQ locally, or you can view the online * 5.8 (you may have a copy of the FAQ locally, or you can view the online
...@@ -594,10 +594,10 @@ namespace __cxxabiv1 ...@@ -594,10 +594,10 @@ namespace __cxxabiv1
* along with the current specification. * along with the current specification.
* *
* For users of GCC greater than or equal to 3.x, entry points are * For users of GCC greater than or equal to 3.x, entry points are
* available in <cxxabi.h>, which notes, <em>"It is not normally * available in <cxxabi.h>, which notes, <em>'It is not normally
* necessary for user programs to include this header, or use the * necessary for user programs to include this header, or use the
* entry points directly. However, this header is available should * entry points directly. However, this header is available should
* that be needed."</em> * that be needed.'</em>
*/ */
namespace abi = __cxxabiv1; namespace abi = __cxxabiv1;
......
...@@ -102,15 +102,16 @@ namespace std ...@@ -102,15 +102,16 @@ namespace std
* violates the function's %exception specification. */ * violates the function's %exception specification. */
void unexpected() __attribute__ ((__noreturn__)); void unexpected() __attribute__ ((__noreturn__));
/** [18.6.4]/1: "Returns true after completing evaluation of a /** [18.6.4]/1: 'Returns true after completing evaluation of a
* throw-expression until either completing initialization of the * throw-expression until either completing initialization of the
* exception-declaration in the matching handler or entering @c unexpected() * exception-declaration in the matching handler or entering @c unexpected()
* due to the throw; or after entering @c terminate() for any reason * due to the throw; or after entering @c terminate() for any reason
* other than an explicit call to @c terminate(). [Note: This includes * other than an explicit call to @c terminate(). [Note: This includes
* stack unwinding [15.2]. end note]" * stack unwinding [15.2]. end note]'
* *
* 2: "When @c uncaught_exception() is true, throwing an %exception can * 2: 'When @c uncaught_exception() is true, throwing an
* result in a call of @c terminate() (15.5.1)." * %exception can result in a call of @c terminate()
* (15.5.1).'
*/ */
bool uncaught_exception() throw() __attribute__ ((__pure__)); bool uncaught_exception() throw() __attribute__ ((__pure__));
......
...@@ -48,8 +48,8 @@ void test01() ...@@ -48,8 +48,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 40 } // { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 } // { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 546 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 547 }
// { dg-error "declaration of" "" { target *-*-* } 508 } // { dg-error "declaration of" "" { target *-*-* } 509 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -48,8 +48,8 @@ void test01() ...@@ -48,8 +48,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 40 } // { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 } // { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 467 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 468 }
// { dg-error "declaration of" "" { target *-*-* } 429 } // { dg-error "declaration of" "" { target *-*-* } 430 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment