diff options
26 files changed, 6644 insertions, 6302 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7ab90ba..ff2efd3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,4 +1,56 @@ -2001-07-17 Benjamin Kosnik <bkoz@redhat.com> +2001-07-17 Stephen M. Webb <stephen@bregmasoft.com>r + + All occurrences of the __value_type() and __distance_type() + functions, which were required to support the HP STL, have been + removed along with all the auxiliary forwarding functions that + were required to support their use. + + The __iterator_category() function was pretty much left alone + because there was no benefit to removing it and its use made code + just a little more readable. + + Incidences of distance() with nonstandard argument list were + replaced by calls to the standard function (only in the files + affected by the removal of the other HP functions). + + The signature of the rotate() algorithm was changed to match the + standard. + + Headers were reformatted under C++STYLE guidelines (indentation, + linebreaks, typename keyword). + + * include/bits/stl_algo.h: replaced __value_type() and + __distance_type() with iterator_traits, eliminated auxiliary + support functions required to support said function usage. + Changed nonstandard distance() call to standard call. + + * include/bits/stl_algobase.h: Same. + * include/bits/stl_heap.h: Same. + * include/bits/stl_numeric.h: Same. + * include/bits/stl_uninitialized.h: Same. + * include/bits/stl_iterator_base_types.h (__value_type()): + Removed. + (__distance_type()): Removed. + (value_type()): Gone. + (distance_type()): Done in. + (iterator_category()): Hasta la vista, baby. + + * include/bits/stl_iterator_base_funcs.h (iterator_category()): + Replaced with __iterator_category(). + * include/backward/iterator.h: moved definition of value_type(), + distance_type(), and iterator_category() out of std:: and into + here. + * testsuite/23_containers/vector_ctor.cc (test03): New testcases. + * testsuite/23_containers/vector_modifiers.cc (test03): New testcases. + * testsuite/25_algorithms/rotate.cc: New testcase. + * testsuite/25_algorithms/copy.cc: New testcase. + * testsuite/25_algorithms/sort.cc: Same. + * testsuite/25_algorithms/heap.cc: Same. + * testsuite/25_algorithms/partition.cc: Same. + * testsuite/25_algorithms/binary_search.cc: Same. + * testsuite/26_numerics/sum_diff.cc: Ditto. + +001-07-17 Benjamin Kosnik <bkoz@redhat.com> * testsuite/README: Add notes on naming test cases. * testsuite/22_locale/members.cc: Mark as xfail. diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 2a976e4..08f3f61 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -145,44 +145,7 @@ MULTICLEAN = true # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and # friends when we are called from the top level Makefile. -AM_MAKEFLAGS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ - "CFLAGS=$(CFLAGS)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ - "SHELL=$(SHELL)" \ - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ - "exec_prefix=$(exec_prefix)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "includedir=$(includedir)" \ - "prefix=$(prefix)" \ - "tooldir=$(tooldir)" \ - "AR=$(AR)" \ - "AS=$(AS)" \ - "LD=$(LD)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "NM=$(NM)" \ - "NM_FOR_BUILD=$(NM_FOR_BUILD)" \ - "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ - "DESTDIR=$(DESTDIR)" \ - "WERROR=$(WERROR)" +AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CC_FOR_TARGET=$(CC_FOR_TARGET)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "RUNTESTFLAGS=$(RUNTESTFLAGS)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "includedir=$(includedir)" "prefix=$(prefix)" "tooldir=$(tooldir)" "AR=$(AR)" "AS=$(AS)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "NM=$(NM)" "NM_FOR_BUILD=$(NM_FOR_BUILD)" "NM_FOR_TARGET=$(NM_FOR_TARGET)" "DESTDIR=$(DESTDIR)" "WERROR=$(WERROR)" ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 CONFIG_HEADER = config.h diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index c04aff7..46075a0 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -77,7 +77,6 @@ program_suffix=NONE program_transform_name=s,x,x, silent= site= -sitefile= srcdir= target=NONE verbose= @@ -192,7 +191,6 @@ Configuration: --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX @@ -363,11 +361,6 @@ EOF -site=* | --site=* | --sit=*) site="$ac_optarg" ;; - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) @@ -533,16 +526,12 @@ fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. -if test -z "$sitefile"; then - if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -else - CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then @@ -655,7 +644,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:659: checking host system type" >&5 +echo "configure:648: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -676,7 +665,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:680: checking target system type" >&5 +echo "configure:669: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -694,7 +683,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:698: checking build system type" >&5 +echo "configure:687: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -723,7 +712,7 @@ target_alias=${target_alias-$target} # be 'cp -p' if linking isn't available. #ac_cv_prog_LN_S='cp -p' echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:727: checking whether ln -s works" >&5 +echo "configure:716: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -772,7 +761,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:776: checking for a BSD compatible install" >&5 +echo "configure:765: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -825,7 +814,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:829: checking whether build environment is sane" >&5 +echo "configure:818: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -882,7 +871,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:886: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:875: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -915,12 +904,12 @@ else fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:919: checking for Cygwin environment" >&5 +echo "configure:908: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 924 "configure" +#line 913 "configure" #include "confdefs.h" int main() { @@ -931,7 +920,7 @@ int main() { return __CYGWIN__; ; return 0; } EOF -if { (eval echo configure:935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -948,19 +937,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:952: checking for mingw32 environment" >&5 +echo "configure:941: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 957 "configure" +#line 946 "configure" #include "confdefs.h" int main() { return __MINGW32__; ; return 0; } EOF -if { (eval echo configure:964: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -1012,7 +1001,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:1016: checking for working aclocal" >&5 +echo "configure:1005: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1025,7 +1014,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:1029: checking for working autoconf" >&5 +echo "configure:1018: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1038,7 +1027,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:1042: checking for working automake" >&5 +echo "configure:1031: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1051,7 +1040,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:1055: checking for working autoheader" >&5 +echo "configure:1044: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1064,7 +1053,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:1068: checking for working makeinfo" >&5 +echo "configure:1057: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1099,7 +1088,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1103: checking for $ac_word" >&5 +echo "configure:1092: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1129,7 +1118,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1133: checking for $ac_word" >&5 +echo "configure:1122: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1178,7 +1167,7 @@ fi fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1182: checking whether we are using GNU C" >&5 +echo "configure:1171: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1187,7 +1176,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1202,7 +1191,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1206: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1195: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1247,7 +1236,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1251: checking for $ac_word" >&5 +echo "configure:1240: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibcpp_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1282,7 +1271,7 @@ CXX=$glibcpp_CXX test -z "$glibcpp_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:1286: checking whether we are using GNU C++" >&5 +echo "configure:1275: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1291,7 +1280,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -1306,7 +1295,7 @@ if test $ac_cv_prog_gxx = yes; then ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1310: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1299: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1337,7 +1326,7 @@ fi # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1341: checking for $ac_word" >&5 +echo "configure:1330: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1369,7 +1358,7 @@ fi # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1373: checking for $ac_word" >&5 +echo "configure:1362: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1401,7 +1390,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1405: checking for $ac_word" >&5 +echo "configure:1394: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1433,7 +1422,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1437: checking for $ac_word" >&5 +echo "configure:1426: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1477,7 +1466,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1481: checking for a BSD compatible install" >&5 +echo "configure:1470: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1531,7 +1520,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:1535: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:1524: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -1569,7 +1558,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1573: checking for executable suffix" >&5 +echo "configure:1562: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1579,10 +1568,10 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in - *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done @@ -1699,7 +1688,7 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1703: checking for ld used by GCC" >&5 +echo "configure:1692: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1729,10 +1718,10 @@ echo "configure:1703: checking for ld used by GCC" >&5 esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1733: checking for GNU ld" >&5 +echo "configure:1722: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1736: checking for non-GNU ld" >&5 +echo "configure:1725: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1767,7 +1756,7 @@ else fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1771: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1760: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1784,7 +1773,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 -echo "configure:1788: checking for $LD option to reload object files" >&5 +echo "configure:1777: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1796,7 +1785,7 @@ reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1800: checking for BSD-compatible nm" >&5 +echo "configure:1789: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1834,7 +1823,7 @@ NM="$lt_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1838: checking how to recognise dependant libraries" >&5 +echo "configure:1827: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1998,13 +1987,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:2002: checking for object suffix" >&5 +echo "configure:1991: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:2008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1997: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -2028,7 +2017,7 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 -echo "configure:2032: checking for ${ac_tool_prefix}file" >&5 +echo "configure:2021: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2090,7 +2079,7 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 -echo "configure:2094: checking for file" >&5 +echo "configure:2083: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2161,7 +2150,7 @@ esac # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2165: checking for $ac_word" >&5 +echo "configure:2154: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2193,7 +2182,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2197: checking for $ac_word" >&5 +echo "configure:2186: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2228,7 +2217,7 @@ fi # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2232: checking for $ac_word" >&5 +echo "configure:2221: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2260,7 +2249,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2264: checking for $ac_word" >&5 +echo "configure:2253: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2327,8 +2316,8 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 2331 "configure"' > conftest.$ac_ext - if { (eval echo configure:2332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 2320 "configure"' > conftest.$ac_ext + if { (eval echo configure:2321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -2349,7 +2338,7 @@ case $host in SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:2353: checking whether the C compiler needs -belf" >&5 +echo "configure:2342: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2362,14 +2351,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <<EOF -#line 2366 "configure" +#line 2355 "configure" #include "confdefs.h" int main() { ; return 0; } EOF -if { (eval echo configure:2373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else @@ -2399,7 +2388,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:2403: checking how to run the C++ preprocessor" >&5 +echo "configure:2392: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2412,12 +2401,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext <<EOF -#line 2416 "configure" +#line 2405 "configure" #include "confdefs.h" #include <stdlib.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2410: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2552,7 +2541,7 @@ exec 5>>./config.log echo $ac_n "checking for GNU make""... $ac_c" 1>&6 -echo "configure:2556: checking for GNU make" >&5 +echo "configure:2545: checking for GNU make" >&5 if eval "test \"`echo '$''{'_cv_gnu_make_command'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2584,7 +2573,7 @@ echo "$ac_t""$_cv_gnu_make_command" 1>&6 ; if test ! -f stamp-sanity-compiler; then echo $ac_n "checking for g++ that will successfully compile libstdc++-v3""... $ac_c" 1>&6 -echo "configure:2588: checking for g++ that will successfully compile libstdc++-v3" >&5 +echo "configure:2577: checking for g++ that will successfully compile libstdc++-v3" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2594,7 +2583,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 2598 "configure" +#line 2587 "configure" #include "confdefs.h" int main() { @@ -2605,7 +2594,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:2609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* gpp_satisfactory=yes else @@ -2651,7 +2640,7 @@ esac echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2655: checking how to run the C preprocessor" >&5 +echo "configure:2644: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2666,13 +2655,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 2670 "configure" +#line 2659 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2676: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2665: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2683,13 +2672,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 2687 "configure" +#line 2676 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2682: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2700,13 +2689,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 2704 "configure" +#line 2693 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2732,7 +2721,7 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6 -echo "configure:2736: checking for cstdio to use" >&5 +echo "configure:2725: checking for cstdio to use" >&5 # Check whether --enable-cstdio or --disable-cstdio was given. if test "${enable_cstdio+set}" = set; then enableval="$enable_cstdio" @@ -2756,17 +2745,17 @@ fi # see if we are on a system with libio native (ie, linux) ac_safe=`echo "libio.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libio.h""... $ac_c" 1>&6 -echo "configure:2760: checking for libio.h" >&5 +echo "configure:2749: checking for libio.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2765 "configure" +#line 2754 "configure" #include "confdefs.h" #include <libio.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2796,9 +2785,9 @@ fi case "$target" in *-*-linux*) echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6 -echo "configure:2800: checking for glibc version >= 2.2" >&5 +echo "configure:2789: checking for glibc version >= 2.2" >&5 cat > conftest.$ac_ext <<EOF -#line 2802 "configure" +#line 2791 "configure" #include "confdefs.h" #include <features.h> @@ -2912,7 +2901,7 @@ fi echo $ac_n "checking for clocale to use""... $ac_c" 1>&6 -echo "configure:2916: checking for clocale to use" >&5 +echo "configure:2905: checking for clocale to use" >&5 # Check whether --enable-clocale or --disable-clocale was given. if test "${enable_clocale+set}" = set; then enableval="$enable_clocale" @@ -2983,16 +2972,16 @@ cross_compiling=$ac_cv_prog_cxx_cross # Check for the existence of <math.h> functions used if C99 is enabled. ac_c99_math=yes; echo $ac_n "checking for ISO C99 support in <math.h>""... $ac_c" 1>&6 -echo "configure:2987: checking for ISO C99 support in <math.h>" >&5 +echo "configure:2976: checking for ISO C99 support in <math.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 2989 "configure" +#line 2978 "configure" #include "confdefs.h" #include <math.h> int main() { fpclassify(0.0); ; return 0; } EOF -if { (eval echo configure:2996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2985: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3002,14 +2991,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3006 "configure" +#line 2995 "configure" #include "confdefs.h" #include <math.h> int main() { isfinite(0.0); ; return 0; } EOF -if { (eval echo configure:3013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3019,14 +3008,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3023 "configure" +#line 3012 "configure" #include "confdefs.h" #include <math.h> int main() { isinf(0.0); ; return 0; } EOF -if { (eval echo configure:3030: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3036,14 +3025,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3040 "configure" +#line 3029 "configure" #include "confdefs.h" #include <math.h> int main() { isnan(0.0); ; return 0; } EOF -if { (eval echo configure:3047: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3036: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3053,14 +3042,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3057 "configure" +#line 3046 "configure" #include "confdefs.h" #include <math.h> int main() { isnormal(0.0); ; return 0; } EOF -if { (eval echo configure:3064: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3070,14 +3059,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3074 "configure" +#line 3063 "configure" #include "confdefs.h" #include <math.h> int main() { signbit(0.0); ; return 0; } EOF -if { (eval echo configure:3081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3087,14 +3076,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3091 "configure" +#line 3080 "configure" #include "confdefs.h" #include <math.h> int main() { isgreater(0.0,0.0); ; return 0; } EOF -if { (eval echo configure:3098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3104,14 +3093,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3108 "configure" +#line 3097 "configure" #include "confdefs.h" #include <math.h> int main() { isgreaterequal(0.0,0.0); ; return 0; } EOF -if { (eval echo configure:3115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3121,14 +3110,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3125 "configure" +#line 3114 "configure" #include "confdefs.h" #include <math.h> int main() { isless(0.0,0.0); ; return 0; } EOF -if { (eval echo configure:3132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3138,14 +3127,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3142 "configure" +#line 3131 "configure" #include "confdefs.h" #include <math.h> int main() { islessequal(0.0,0.0); ; return 0; } EOF -if { (eval echo configure:3149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3155,14 +3144,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3159 "configure" +#line 3148 "configure" #include "confdefs.h" #include <math.h> int main() { islessgreater(0.0,0.0); ; return 0; } EOF -if { (eval echo configure:3166: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3172,14 +3161,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3176 "configure" +#line 3165 "configure" #include "confdefs.h" #include <math.h> int main() { isunordered(0.0,0.0); ; return 0; } EOF -if { (eval echo configure:3183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3193,16 +3182,16 @@ rm -f conftest* # Check for the existence in <stdio.h> of vscanf, et. al. ac_c99_stdio=yes; echo $ac_n "checking for ISO C99 support in <stdio.h>""... $ac_c" 1>&6 -echo "configure:3197: checking for ISO C99 support in <stdio.h>" >&5 +echo "configure:3186: checking for ISO C99 support in <stdio.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 3199 "configure" +#line 3188 "configure" #include "confdefs.h" #include <stdio.h> int main() { snprintf("12", 0, "%i"); ; return 0; } EOF -if { (eval echo configure:3206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3212,7 +3201,7 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3216 "configure" +#line 3205 "configure" #include "confdefs.h" #include <stdio.h> #include <stdarg.h> @@ -3223,7 +3212,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3233,7 +3222,7 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3237 "configure" +#line 3226 "configure" #include "confdefs.h" #include <stdio.h> #include <stdarg.h> @@ -3244,7 +3233,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3254,7 +3243,7 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3258 "configure" +#line 3247 "configure" #include "confdefs.h" #include <stdio.h> #include <stdarg.h> @@ -3265,7 +3254,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3275,7 +3264,7 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3279 "configure" +#line 3268 "configure" #include "confdefs.h" #include <stdio.h> #include <stdarg.h> @@ -3286,7 +3275,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:3290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3300,20 +3289,20 @@ rm -f conftest* # Check for the existence in <stdlib.h> of lldiv_t, et. al. ac_c99_stdlib=yes; echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6 -echo "configure:3304: checking for lldiv_t declaration" >&5 +echo "configure:3293: checking for lldiv_t declaration" >&5 if eval "test \"`echo '$''{'ac_c99_lldiv_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3310 "configure" +#line 3299 "configure" #include "confdefs.h" #include <stdlib.h> int main() { lldiv_t mydivt; ; return 0; } EOF -if { (eval echo configure:3317: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_c99_lldiv_t=yes else @@ -3329,16 +3318,16 @@ fi echo "$ac_t""$ac_c99_lldiv_t" 1>&6 echo $ac_n "checking for ISO C99 support in <stdlib.h>""... $ac_c" 1>&6 -echo "configure:3333: checking for ISO C99 support in <stdlib.h>" >&5 +echo "configure:3322: checking for ISO C99 support in <stdlib.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 3335 "configure" +#line 3324 "configure" #include "confdefs.h" #include <stdlib.h> int main() { char* tmp; strtof("gnu", &tmp); ; return 0; } EOF -if { (eval echo configure:3342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3348,14 +3337,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3352 "configure" +#line 3341 "configure" #include "confdefs.h" #include <stdlib.h> int main() { char* tmp; strtold("gnu", &tmp); ; return 0; } EOF -if { (eval echo configure:3359: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3365,14 +3354,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3369 "configure" +#line 3358 "configure" #include "confdefs.h" #include <stdlib.h> int main() { char* tmp; strtoll("gnu", &tmp, 10); ; return 0; } EOF -if { (eval echo configure:3376: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3382,14 +3371,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3386 "configure" +#line 3375 "configure" #include "confdefs.h" #include <stdlib.h> int main() { char* tmp; strtoull("gnu", &tmp, 10); ; return 0; } EOF -if { (eval echo configure:3393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3399,14 +3388,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3403 "configure" +#line 3392 "configure" #include "confdefs.h" #include <stdlib.h> int main() { llabs(10); ; return 0; } EOF -if { (eval echo configure:3410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3416,14 +3405,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3420 "configure" +#line 3409 "configure" #include "confdefs.h" #include <stdlib.h> int main() { lldiv(10,1); ; return 0; } EOF -if { (eval echo configure:3427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3433,14 +3422,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3437 "configure" +#line 3426 "configure" #include "confdefs.h" #include <stdlib.h> int main() { atoll("10"); ; return 0; } EOF -if { (eval echo configure:3444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3450,14 +3439,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3454 "configure" +#line 3443 "configure" #include "confdefs.h" #include <stdlib.h> int main() { _Exit(0); ; return 0; } EOF -if { (eval echo configure:3461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3450: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3475,16 +3464,16 @@ rm -f conftest* # XXX the wchar.h checks should be rolled into the general C99 bits. ac_c99_wchar=yes; echo $ac_n "checking for additional ISO C99 support in <wchar.h>""... $ac_c" 1>&6 -echo "configure:3479: checking for additional ISO C99 support in <wchar.h>" >&5 +echo "configure:3468: checking for additional ISO C99 support in <wchar.h>" >&5 cat > conftest.$ac_ext <<EOF -#line 3481 "configure" +#line 3470 "configure" #include "confdefs.h" #include <wchar.h> int main() { wcstold(L"10.0", NULL); ; return 0; } EOF -if { (eval echo configure:3488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3494,14 +3483,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3498 "configure" +#line 3487 "configure" #include "confdefs.h" #include <wchar.h> int main() { wcstoll(L"10", NULL, 10); ; return 0; } EOF -if { (eval echo configure:3505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3511,14 +3500,14 @@ else fi rm -f conftest* cat > conftest.$ac_ext <<EOF -#line 3515 "configure" +#line 3504 "configure" #include "confdefs.h" #include <wchar.h> int main() { wcstoull(L"10", NULL, 10); ; return 0; } EOF -if { (eval echo configure:3522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3530,7 +3519,7 @@ rm -f conftest* echo "$ac_t""$ac_c99_wchar" 1>&6 echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6 -echo "configure:3534: checking for enabled ISO C99 support" >&5 +echo "configure:3523: checking for enabled ISO C99 support" >&5 if test x"$ac_c99_math" = x"no" || test x"$ac_c99_stdio" = x"no" || test x"$ac_c99_stdlib" = x"no" || @@ -3577,7 +3566,7 @@ fi # Option parsed, now set things appropriately echo $ac_n "checking for enabled long long support""... $ac_c" 1>&6 -echo "configure:3581: checking for enabled long long support" >&5 +echo "configure:3570: checking for enabled long long support" >&5 if test x"$enable_long_long" = xyes; then cat >> confdefs.h <<\EOF #define _GLIBCPP_USE_LONG_LONG 1 @@ -3587,7 +3576,7 @@ EOF echo "$ac_t""$enable_long_long" 1>&6 echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6 -echo "configure:3591: checking for c header strategy to use" >&5 +echo "configure:3580: checking for c header strategy to use" >&5 # Check whether --enable-cheaders or --disable-cheaders was given. if test "${enable_cheaders+set}" = set; then enableval="$enable_cheaders" @@ -3644,7 +3633,7 @@ fi echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 -echo "configure:3648: checking for thread model used by GCC" >&5 +echo "configure:3637: checking for thread model used by GCC" >&5 target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$target_thread_file" 1>&6 @@ -3697,7 +3686,7 @@ EXTRA_CXX_FLAGS="$enable_cxx_flags" echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 -echo "configure:3701: checking for exception model to use" >&5 +echo "configure:3690: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -3712,7 +3701,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : else cat > conftest.$ac_ext << EOF -#line 3716 "configure" +#line 3705 "configure" struct S { ~S(); }; void bar(); void foo() @@ -3723,7 +3712,7 @@ void foo() EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS=-S - if { (eval echo configure:3727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:3716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then @@ -3782,17 +3771,17 @@ if test -n "$with_cross_host" || test x"$build" != x"$host"; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3786: checking for $ac_hdr" >&5 +echo "configure:3775: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 3791 "configure" +#line 3780 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3796: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3848,12 +3837,12 @@ done # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 -echo "configure:3852: checking for ld that supports -Wl,--gc-sections" >&5 +echo "configure:3841: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <<EOF -#line 3857 "configure" +#line 3846 "configure" #include "confdefs.h" int main(void) @@ -3864,7 +3853,7 @@ else } EOF -if { (eval echo configure:3868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else @@ -4143,7 +4132,7 @@ EOF fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:4147: checking for main in -lm" >&5 +echo "configure:4136: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4151,14 +4140,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF -#line 4155 "configure" +#line 4144 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:4162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4188,12 +4177,12 @@ fi for ac_func in nan hypot hypotf copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4192: checking for $ac_func" >&5 +echo "configure:4181: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4197 "configure" +#line 4186 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4216,7 +4205,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4250,12 +4239,12 @@ done for ac_func in hypotl signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4254: checking for $ac_func" >&5 +echo "configure:4243: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4259 "configure" +#line 4248 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4278,7 +4267,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4311,16 +4300,16 @@ done echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 -echo "configure:4315: checking for mbstate_t" >&5 +echo "configure:4304: checking for mbstate_t" >&5 cat > conftest.$ac_ext <<EOF -#line 4317 "configure" +#line 4306 "configure" #include "confdefs.h" #include <wchar.h> int main() { mbstate_t teststate; ; return 0; } EOF -if { (eval echo configure:4324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4313: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else @@ -4342,17 +4331,17 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4346: checking for $ac_hdr" >&5 +echo "configure:4335: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4351 "configure" +#line 4340 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4356: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4381,17 +4370,17 @@ done ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 -echo "configure:4385: checking for wctype.h" >&5 +echo "configure:4374: checking for wctype.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4390 "configure" +#line 4379 "configure" #include "confdefs.h" #include <wctype.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4419,16 +4408,16 @@ fi test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 -echo "configure:4423: checking for WCHAR_MIN and WCHAR_MAX" >&5 +echo "configure:4412: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext <<EOF -#line 4425 "configure" +#line 4414 "configure" #include "confdefs.h" #include <wchar.h> int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF -if { (eval echo configure:4432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else @@ -4441,9 +4430,9 @@ rm -f conftest* echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 -echo "configure:4445: checking for WEOF" >&5 +echo "configure:4434: checking for WEOF" >&5 cat > conftest.$ac_ext <<EOF -#line 4447 "configure" +#line 4436 "configure" #include "confdefs.h" #include <wchar.h> @@ -4452,7 +4441,7 @@ int main() { wint_t i = WEOF; ; return 0; } EOF -if { (eval echo configure:4456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else @@ -4468,12 +4457,12 @@ rm -f conftest* for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4472: checking for $ac_func" >&5 +echo "configure:4461: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4477 "configure" +#line 4466 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4496,7 +4485,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4531,12 +4520,12 @@ done wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4535: checking for $ac_func" >&5 +echo "configure:4524: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4540 "configure" +#line 4529 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4559,7 +4548,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4587,7 +4576,7 @@ done echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 -echo "configure:4591: checking for ISO C99 wchar_t support" >&5 +echo "configure:4580: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then @@ -4599,17 +4588,17 @@ echo "configure:4591: checking for ISO C99 wchar_t support" >&5 ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 -echo "configure:4603: checking for iconv.h" >&5 +echo "configure:4592: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4608 "configure" +#line 4597 "configure" #include "confdefs.h" #include <iconv.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4602: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4633,17 +4622,17 @@ fi ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 -echo "configure:4637: checking for langinfo.h" >&5 +echo "configure:4626: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4642 "configure" +#line 4631 "configure" #include "confdefs.h" #include <langinfo.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4667,7 +4656,7 @@ fi echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 -echo "configure:4671: checking for iconv in -liconv" >&5 +echo "configure:4660: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4675,7 +4664,7 @@ else ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext <<EOF -#line 4679 "configure" +#line 4668 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -4686,7 +4675,7 @@ int main() { iconv() ; return 0; } EOF -if { (eval echo configure:4690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4712,12 +4701,12 @@ fi for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4716: checking for $ac_func" >&5 +echo "configure:4705: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4721 "configure" +#line 4710 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4740,7 +4729,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4770,7 +4759,7 @@ done LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 -echo "configure:4774: checking for XPG2 wchar_t support" >&5 +echo "configure:4763: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then @@ -4781,7 +4770,7 @@ echo "configure:4774: checking for XPG2 wchar_t support" >&5 echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 -echo "configure:4785: checking for enabled wchar_t specializations" >&5 +echo "configure:4774: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF @@ -4855,17 +4844,17 @@ else do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4859: checking for $ac_hdr" >&5 +echo "configure:4848: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4864 "configure" +#line 4853 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4869: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4916,10 +4905,10 @@ cross_compiling=$ac_cv_prog_cxx_cross # Check for -ffunction-sections -fdata-sections echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6 -echo "configure:4920: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 +echo "configure:4909: checking for g++ that supports -ffunction-sections -fdata-sections" >&5 CXXFLAGS='-Werror -ffunction-sections -fdata-sections' cat > conftest.$ac_ext <<EOF -#line 4923 "configure" +#line 4912 "configure" #include "confdefs.h" int main() { @@ -4927,7 +4916,7 @@ int foo; ; return 0; } EOF -if { (eval echo configure:4931: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_fdsections=yes else @@ -4985,12 +4974,12 @@ cross_compiling=$ac_cv_prog_cc_cross # used sections, first .eh_frame and now some of the glibc sections for # iconv). Bzzzzt. Thanks for playing, maybe next time. echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 -echo "configure:4989: checking for ld that supports -Wl,--gc-sections" >&5 +echo "configure:4978: checking for ld that supports -Wl,--gc-sections" >&5 if test "$cross_compiling" = yes; then ac_sectionLDflags=yes else cat > conftest.$ac_ext <<EOF -#line 4994 "configure" +#line 4983 "configure" #include "confdefs.h" int main(void) @@ -5001,7 +4990,7 @@ else } EOF -if { (eval echo configure:5005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_sectionLDflags=yes else @@ -5037,7 +5026,7 @@ fi echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6 -echo "configure:5041: checking for __builtin_abs declaration" >&5 +echo "configure:5030: checking for __builtin_abs declaration" >&5 if test x${glibcpp_cv_func___builtin_abs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5052,14 +5041,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5056 "configure" +#line 5045 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_abs(0); ; return 0; } EOF -if { (eval echo configure:5063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_abs_use=yes else @@ -5083,21 +5072,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_abs_use" 1>&6 if test x$glibcpp_cv_func___builtin_abs_use = x"yes"; then echo $ac_n "checking for __builtin_abs linkage""... $ac_c" 1>&6 -echo "configure:5087: checking for __builtin_abs linkage" >&5 +echo "configure:5076: checking for __builtin_abs linkage" >&5 if test x${glibcpp_cv_func___builtin_abs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_abs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5094 "configure" +#line 5083 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_abs(0); ; return 0; } EOF -if { (eval echo configure:5101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_abs_link=yes else @@ -5123,7 +5112,7 @@ EOF echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6 -echo "configure:5127: checking for __builtin_fabsf declaration" >&5 +echo "configure:5116: checking for __builtin_fabsf declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5138,14 +5127,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5142 "configure" +#line 5131 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fabsf(0); ; return 0; } EOF -if { (eval echo configure:5149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_use=yes else @@ -5169,21 +5158,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_fabsf_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsf_use = x"yes"; then echo $ac_n "checking for __builtin_fabsf linkage""... $ac_c" 1>&6 -echo "configure:5173: checking for __builtin_fabsf linkage" >&5 +echo "configure:5162: checking for __builtin_fabsf linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5180 "configure" +#line 5169 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fabsf(0); ; return 0; } EOF -if { (eval echo configure:5187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsf_link=yes else @@ -5209,7 +5198,7 @@ EOF echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6 -echo "configure:5213: checking for __builtin_fabs declaration" >&5 +echo "configure:5202: checking for __builtin_fabs declaration" >&5 if test x${glibcpp_cv_func___builtin_fabs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5224,14 +5213,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5228 "configure" +#line 5217 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fabs(0); ; return 0; } EOF -if { (eval echo configure:5235: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_use=yes else @@ -5255,21 +5244,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_fabs_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabs_use = x"yes"; then echo $ac_n "checking for __builtin_fabs linkage""... $ac_c" 1>&6 -echo "configure:5259: checking for __builtin_fabs linkage" >&5 +echo "configure:5248: checking for __builtin_fabs linkage" >&5 if test x${glibcpp_cv_func___builtin_fabs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5266 "configure" +#line 5255 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fabs(0); ; return 0; } EOF -if { (eval echo configure:5273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabs_link=yes else @@ -5295,7 +5284,7 @@ EOF echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6 -echo "configure:5299: checking for __builtin_fabsl declaration" >&5 +echo "configure:5288: checking for __builtin_fabsl declaration" >&5 if test x${glibcpp_cv_func___builtin_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5310,14 +5299,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5314 "configure" +#line 5303 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fabsl(0); ; return 0; } EOF -if { (eval echo configure:5321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_use=yes else @@ -5341,21 +5330,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_fabsl_use" 1>&6 if test x$glibcpp_cv_func___builtin_fabsl_use = x"yes"; then echo $ac_n "checking for __builtin_fabsl linkage""... $ac_c" 1>&6 -echo "configure:5345: checking for __builtin_fabsl linkage" >&5 +echo "configure:5334: checking for __builtin_fabsl linkage" >&5 if test x${glibcpp_cv_func___builtin_fabsl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fabsl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5352 "configure" +#line 5341 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fabsl(0); ; return 0; } EOF -if { (eval echo configure:5359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fabsl_link=yes else @@ -5381,7 +5370,7 @@ EOF echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6 -echo "configure:5385: checking for __builtin_labs declaration" >&5 +echo "configure:5374: checking for __builtin_labs declaration" >&5 if test x${glibcpp_cv_func___builtin_labs_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5396,14 +5385,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5400 "configure" +#line 5389 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_labs(0); ; return 0; } EOF -if { (eval echo configure:5407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5396: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_labs_use=yes else @@ -5427,21 +5416,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_labs_use" 1>&6 if test x$glibcpp_cv_func___builtin_labs_use = x"yes"; then echo $ac_n "checking for __builtin_labs linkage""... $ac_c" 1>&6 -echo "configure:5431: checking for __builtin_labs linkage" >&5 +echo "configure:5420: checking for __builtin_labs linkage" >&5 if test x${glibcpp_cv_func___builtin_labs_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_labs_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5438 "configure" +#line 5427 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_labs(0); ; return 0; } EOF -if { (eval echo configure:5445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_labs_link=yes else @@ -5468,7 +5457,7 @@ EOF echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6 -echo "configure:5472: checking for __builtin_sqrtf declaration" >&5 +echo "configure:5461: checking for __builtin_sqrtf declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5483,14 +5472,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5487 "configure" +#line 5476 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sqrtf(0); ; return 0; } EOF -if { (eval echo configure:5494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_use=yes else @@ -5514,21 +5503,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_sqrtf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtf_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtf linkage""... $ac_c" 1>&6 -echo "configure:5518: checking for __builtin_sqrtf linkage" >&5 +echo "configure:5507: checking for __builtin_sqrtf linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5525 "configure" +#line 5514 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sqrtf(0); ; return 0; } EOF -if { (eval echo configure:5532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtf_link=yes else @@ -5554,7 +5543,7 @@ EOF echo $ac_n "checking for __builtin_fsqrt declaration""... $ac_c" 1>&6 -echo "configure:5558: checking for __builtin_fsqrt declaration" >&5 +echo "configure:5547: checking for __builtin_fsqrt declaration" >&5 if test x${glibcpp_cv_func___builtin_fsqrt_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5569,14 +5558,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5573 "configure" +#line 5562 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fsqrt(0); ; return 0; } EOF -if { (eval echo configure:5580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_fsqrt_use=yes else @@ -5600,21 +5589,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_fsqrt_use" 1>&6 if test x$glibcpp_cv_func___builtin_fsqrt_use = x"yes"; then echo $ac_n "checking for __builtin_fsqrt linkage""... $ac_c" 1>&6 -echo "configure:5604: checking for __builtin_fsqrt linkage" >&5 +echo "configure:5593: checking for __builtin_fsqrt linkage" >&5 if test x${glibcpp_cv_func___builtin_fsqrt_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_fsqrt_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5611 "configure" +#line 5600 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_fsqrt(0); ; return 0; } EOF -if { (eval echo configure:5618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_fsqrt_link=yes else @@ -5640,7 +5629,7 @@ EOF echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6 -echo "configure:5644: checking for __builtin_sqrtl declaration" >&5 +echo "configure:5633: checking for __builtin_sqrtl declaration" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5655,14 +5644,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5659 "configure" +#line 5648 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sqrtl(0); ; return 0; } EOF -if { (eval echo configure:5666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_use=yes else @@ -5686,21 +5675,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_sqrtl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sqrtl_use = x"yes"; then echo $ac_n "checking for __builtin_sqrtl linkage""... $ac_c" 1>&6 -echo "configure:5690: checking for __builtin_sqrtl linkage" >&5 +echo "configure:5679: checking for __builtin_sqrtl linkage" >&5 if test x${glibcpp_cv_func___builtin_sqrtl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sqrtl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5697 "configure" +#line 5686 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sqrtl(0); ; return 0; } EOF -if { (eval echo configure:5704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sqrtl_link=yes else @@ -5727,7 +5716,7 @@ EOF echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6 -echo "configure:5731: checking for __builtin_sinf declaration" >&5 +echo "configure:5720: checking for __builtin_sinf declaration" >&5 if test x${glibcpp_cv_func___builtin_sinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5742,14 +5731,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5746 "configure" +#line 5735 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sinf(0); ; return 0; } EOF -if { (eval echo configure:5753: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_use=yes else @@ -5773,21 +5762,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_sinf_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinf_use = x"yes"; then echo $ac_n "checking for __builtin_sinf linkage""... $ac_c" 1>&6 -echo "configure:5777: checking for __builtin_sinf linkage" >&5 +echo "configure:5766: checking for __builtin_sinf linkage" >&5 if test x${glibcpp_cv_func___builtin_sinf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5784 "configure" +#line 5773 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sinf(0); ; return 0; } EOF -if { (eval echo configure:5791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinf_link=yes else @@ -5813,7 +5802,7 @@ EOF echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6 -echo "configure:5817: checking for __builtin_sin declaration" >&5 +echo "configure:5806: checking for __builtin_sin declaration" >&5 if test x${glibcpp_cv_func___builtin_sin_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5828,14 +5817,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5832 "configure" +#line 5821 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sin(0); ; return 0; } EOF -if { (eval echo configure:5839: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sin_use=yes else @@ -5859,21 +5848,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_sin_use" 1>&6 if test x$glibcpp_cv_func___builtin_sin_use = x"yes"; then echo $ac_n "checking for __builtin_sin linkage""... $ac_c" 1>&6 -echo "configure:5863: checking for __builtin_sin linkage" >&5 +echo "configure:5852: checking for __builtin_sin linkage" >&5 if test x${glibcpp_cv_func___builtin_sin_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sin_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5870 "configure" +#line 5859 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sin(0); ; return 0; } EOF -if { (eval echo configure:5877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sin_link=yes else @@ -5899,7 +5888,7 @@ EOF echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6 -echo "configure:5903: checking for __builtin_sinl declaration" >&5 +echo "configure:5892: checking for __builtin_sinl declaration" >&5 if test x${glibcpp_cv_func___builtin_sinl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5914,14 +5903,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 5918 "configure" +#line 5907 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sinl(0); ; return 0; } EOF -if { (eval echo configure:5925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_use=yes else @@ -5945,21 +5934,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_sinl_use" 1>&6 if test x$glibcpp_cv_func___builtin_sinl_use = x"yes"; then echo $ac_n "checking for __builtin_sinl linkage""... $ac_c" 1>&6 -echo "configure:5949: checking for __builtin_sinl linkage" >&5 +echo "configure:5938: checking for __builtin_sinl linkage" >&5 if test x${glibcpp_cv_func___builtin_sinl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_sinl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 5956 "configure" +#line 5945 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_sinl(0); ; return 0; } EOF -if { (eval echo configure:5963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_sinl_link=yes else @@ -5986,7 +5975,7 @@ EOF echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6 -echo "configure:5990: checking for __builtin_cosf declaration" >&5 +echo "configure:5979: checking for __builtin_cosf declaration" >&5 if test x${glibcpp_cv_func___builtin_cosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6001,14 +5990,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6005 "configure" +#line 5994 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_cosf(0); ; return 0; } EOF -if { (eval echo configure:6012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_use=yes else @@ -6032,21 +6021,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_cosf_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosf_use = x"yes"; then echo $ac_n "checking for __builtin_cosf linkage""... $ac_c" 1>&6 -echo "configure:6036: checking for __builtin_cosf linkage" >&5 +echo "configure:6025: checking for __builtin_cosf linkage" >&5 if test x${glibcpp_cv_func___builtin_cosf_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosf_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6043 "configure" +#line 6032 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_cosf(0); ; return 0; } EOF -if { (eval echo configure:6050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosf_link=yes else @@ -6072,7 +6061,7 @@ EOF echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6 -echo "configure:6076: checking for __builtin_cos declaration" >&5 +echo "configure:6065: checking for __builtin_cos declaration" >&5 if test x${glibcpp_cv_func___builtin_cos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6087,14 +6076,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6091 "configure" +#line 6080 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_cos(0); ; return 0; } EOF -if { (eval echo configure:6098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cos_use=yes else @@ -6118,21 +6107,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_cos_use" 1>&6 if test x$glibcpp_cv_func___builtin_cos_use = x"yes"; then echo $ac_n "checking for __builtin_cos linkage""... $ac_c" 1>&6 -echo "configure:6122: checking for __builtin_cos linkage" >&5 +echo "configure:6111: checking for __builtin_cos linkage" >&5 if test x${glibcpp_cv_func___builtin_cos_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cos_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6129 "configure" +#line 6118 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_cos(0); ; return 0; } EOF -if { (eval echo configure:6136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cos_link=yes else @@ -6158,7 +6147,7 @@ EOF echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6 -echo "configure:6162: checking for __builtin_cosl declaration" >&5 +echo "configure:6151: checking for __builtin_cosl declaration" >&5 if test x${glibcpp_cv_func___builtin_cosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6173,14 +6162,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6177 "configure" +#line 6166 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_cosl(0); ; return 0; } EOF -if { (eval echo configure:6184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_use=yes else @@ -6204,21 +6193,21 @@ fi echo "$ac_t""$glibcpp_cv_func___builtin_cosl_use" 1>&6 if test x$glibcpp_cv_func___builtin_cosl_use = x"yes"; then echo $ac_n "checking for __builtin_cosl linkage""... $ac_c" 1>&6 -echo "configure:6208: checking for __builtin_cosl linkage" >&5 +echo "configure:6197: checking for __builtin_cosl linkage" >&5 if test x${glibcpp_cv_func___builtin_cosl_link+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func___builtin_cosl_link'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6215 "configure" +#line 6204 "configure" #include "confdefs.h" #include <math.h> int main() { __builtin_cosl(0); ; return 0; } EOF -if { (eval echo configure:6222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcpp_cv_func___builtin_cosl_link=yes else @@ -6309,7 +6298,7 @@ EOF CXXFLAGS='-fno-builtins -D_GNU_SOURCE' echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6 -echo "configure:6313: checking for sin in -lm" >&5 +echo "configure:6302: checking for sin in -lm" >&5 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6317,7 +6306,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF -#line 6321 "configure" +#line 6310 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -6328,7 +6317,7 @@ int main() { sin() ; return 0; } EOF -if { (eval echo configure:6332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6354,7 +6343,7 @@ fi echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6 -echo "configure:6358: checking for isinf declaration" >&5 +echo "configure:6347: checking for isinf declaration" >&5 if test x${glibcpp_cv_func_isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6369,7 +6358,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6373 "configure" +#line 6362 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -6380,7 +6369,7 @@ int main() { isinf(0); ; return 0; } EOF -if { (eval echo configure:6384: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinf_use=yes else @@ -6407,12 +6396,12 @@ fi for ac_func in isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6411: checking for $ac_func" >&5 +echo "configure:6400: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6416 "configure" +#line 6405 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6435,7 +6424,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6462,7 +6451,7 @@ done else echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6 -echo "configure:6466: checking for _isinf declaration" >&5 +echo "configure:6455: checking for _isinf declaration" >&5 if test x${glibcpp_cv_func__isinf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6477,7 +6466,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6481 "configure" +#line 6470 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -6488,7 +6477,7 @@ int main() { _isinf(0); ; return 0; } EOF -if { (eval echo configure:6492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinf_use=yes else @@ -6515,12 +6504,12 @@ fi for ac_func in _isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6519: checking for $ac_func" >&5 +echo "configure:6508: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6524 "configure" +#line 6513 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6543,7 +6532,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6573,7 +6562,7 @@ done echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6 -echo "configure:6577: checking for isnan declaration" >&5 +echo "configure:6566: checking for isnan declaration" >&5 if test x${glibcpp_cv_func_isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6588,7 +6577,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6592 "configure" +#line 6581 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -6599,7 +6588,7 @@ int main() { isnan(0); ; return 0; } EOF -if { (eval echo configure:6603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6592: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnan_use=yes else @@ -6626,12 +6615,12 @@ fi for ac_func in isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6630: checking for $ac_func" >&5 +echo "configure:6619: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6635 "configure" +#line 6624 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6654,7 +6643,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6681,7 +6670,7 @@ done else echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6 -echo "configure:6685: checking for _isnan declaration" >&5 +echo "configure:6674: checking for _isnan declaration" >&5 if test x${glibcpp_cv_func__isnan_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnan_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6696,7 +6685,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6700 "configure" +#line 6689 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -6707,7 +6696,7 @@ int main() { _isnan(0); ; return 0; } EOF -if { (eval echo configure:6711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnan_use=yes else @@ -6734,12 +6723,12 @@ fi for ac_func in _isnan do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6738: checking for $ac_func" >&5 +echo "configure:6727: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6743 "configure" +#line 6732 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6762,7 +6751,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6792,7 +6781,7 @@ done echo $ac_n "checking for finite declaration""... $ac_c" 1>&6 -echo "configure:6796: checking for finite declaration" >&5 +echo "configure:6785: checking for finite declaration" >&5 if test x${glibcpp_cv_func_finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6807,7 +6796,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6811 "configure" +#line 6800 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -6818,7 +6807,7 @@ int main() { finite(0); ; return 0; } EOF -if { (eval echo configure:6822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finite_use=yes else @@ -6845,12 +6834,12 @@ fi for ac_func in finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6849: checking for $ac_func" >&5 +echo "configure:6838: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6854 "configure" +#line 6843 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6873,7 +6862,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6900,7 +6889,7 @@ done else echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6 -echo "configure:6904: checking for _finite declaration" >&5 +echo "configure:6893: checking for _finite declaration" >&5 if test x${glibcpp_cv_func__finite_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finite_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6915,7 +6904,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 6919 "configure" +#line 6908 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -6926,7 +6915,7 @@ int main() { _finite(0); ; return 0; } EOF -if { (eval echo configure:6930: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finite_use=yes else @@ -6953,12 +6942,12 @@ fi for ac_func in _finite do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6957: checking for $ac_func" >&5 +echo "configure:6946: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 6962 "configure" +#line 6951 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -6981,7 +6970,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:6985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7011,7 +7000,7 @@ done echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6 -echo "configure:7015: checking for copysign declaration" >&5 +echo "configure:7004: checking for copysign declaration" >&5 if test x${glibcpp_cv_func_copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7026,14 +7015,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7030 "configure" +#line 7019 "configure" #include "confdefs.h" #include <math.h> int main() { copysign(0, 0); ; return 0; } EOF -if { (eval echo configure:7037: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7026: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysign_use=yes else @@ -7060,12 +7049,12 @@ fi for ac_func in copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7064: checking for $ac_func" >&5 +echo "configure:7053: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7069 "configure" +#line 7058 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7088,7 +7077,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7115,7 +7104,7 @@ done else echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6 -echo "configure:7119: checking for _copysign declaration" >&5 +echo "configure:7108: checking for _copysign declaration" >&5 if test x${glibcpp_cv_func__copysign_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysign_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7130,14 +7119,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7134 "configure" +#line 7123 "configure" #include "confdefs.h" #include <math.h> int main() { _copysign(0, 0); ; return 0; } EOF -if { (eval echo configure:7141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysign_use=yes else @@ -7164,12 +7153,12 @@ fi for ac_func in _copysign do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7168: checking for $ac_func" >&5 +echo "configure:7157: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7173 "configure" +#line 7162 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7192,7 +7181,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7222,7 +7211,7 @@ done echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6 -echo "configure:7226: checking for sincos declaration" >&5 +echo "configure:7215: checking for sincos declaration" >&5 if test x${glibcpp_cv_func_sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7237,14 +7226,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7241 "configure" +#line 7230 "configure" #include "confdefs.h" #include <math.h> int main() { sincos(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:7248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincos_use=yes else @@ -7271,12 +7260,12 @@ fi for ac_func in sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7275: checking for $ac_func" >&5 +echo "configure:7264: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7280 "configure" +#line 7269 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7299,7 +7288,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7326,7 +7315,7 @@ done else echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6 -echo "configure:7330: checking for _sincos declaration" >&5 +echo "configure:7319: checking for _sincos declaration" >&5 if test x${glibcpp_cv_func__sincos_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincos_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7341,14 +7330,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7345 "configure" +#line 7334 "configure" #include "confdefs.h" #include <math.h> int main() { _sincos(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:7352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7341: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincos_use=yes else @@ -7375,12 +7364,12 @@ fi for ac_func in _sincos do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7379: checking for $ac_func" >&5 +echo "configure:7368: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7384 "configure" +#line 7373 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7403,7 +7392,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7433,7 +7422,7 @@ done echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6 -echo "configure:7437: checking for fpclass declaration" >&5 +echo "configure:7426: checking for fpclass declaration" >&5 if test x${glibcpp_cv_func_fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7448,7 +7437,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7452 "configure" +#line 7441 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -7459,7 +7448,7 @@ int main() { fpclass(0); ; return 0; } EOF -if { (eval echo configure:7463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fpclass_use=yes else @@ -7486,12 +7475,12 @@ fi for ac_func in fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7490: checking for $ac_func" >&5 +echo "configure:7479: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7495 "configure" +#line 7484 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7514,7 +7503,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7541,7 +7530,7 @@ done else echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6 -echo "configure:7545: checking for _fpclass declaration" >&5 +echo "configure:7534: checking for _fpclass declaration" >&5 if test x${glibcpp_cv_func__fpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7556,7 +7545,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7560 "configure" +#line 7549 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -7567,7 +7556,7 @@ int main() { _fpclass(0); ; return 0; } EOF -if { (eval echo configure:7571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fpclass_use=yes else @@ -7594,12 +7583,12 @@ fi for ac_func in _fpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7598: checking for $ac_func" >&5 +echo "configure:7587: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7603 "configure" +#line 7592 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7622,7 +7611,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7652,7 +7641,7 @@ done echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6 -echo "configure:7656: checking for qfpclass declaration" >&5 +echo "configure:7645: checking for qfpclass declaration" >&5 if test x${glibcpp_cv_func_qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7667,7 +7656,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7671 "configure" +#line 7660 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -7678,7 +7667,7 @@ int main() { qfpclass(0); ; return 0; } EOF -if { (eval echo configure:7682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7671: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_qfpclass_use=yes else @@ -7705,12 +7694,12 @@ fi for ac_func in qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7709: checking for $ac_func" >&5 +echo "configure:7698: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7714 "configure" +#line 7703 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7733,7 +7722,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7760,7 +7749,7 @@ done else echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6 -echo "configure:7764: checking for _qfpclass declaration" >&5 +echo "configure:7753: checking for _qfpclass declaration" >&5 if test x${glibcpp_cv_func__qfpclass_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__qfpclass_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7775,7 +7764,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7779 "configure" +#line 7768 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -7786,7 +7775,7 @@ int main() { _qfpclass(0); ; return 0; } EOF -if { (eval echo configure:7790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7779: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__qfpclass_use=yes else @@ -7813,12 +7802,12 @@ fi for ac_func in _qfpclass do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7817: checking for $ac_func" >&5 +echo "configure:7806: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7822 "configure" +#line 7811 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7841,7 +7830,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7871,7 +7860,7 @@ done echo $ac_n "checking for float trig functions""... $ac_c" 1>&6 -echo "configure:7875: checking for float trig functions" >&5 +echo "configure:7864: checking for float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7885,7 +7874,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7889 "configure" +#line 7878 "configure" #include "confdefs.h" #include <math.h> int main() { @@ -7894,7 +7883,7 @@ int main() { coshf sinhf tanhf; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:7898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7887: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_trig_use=yes else @@ -7920,12 +7909,12 @@ fi coshf sinhf tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7924: checking for $ac_func" >&5 +echo "configure:7913: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 7929 "configure" +#line 7918 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -7948,7 +7937,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:7952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -7976,7 +7965,7 @@ done echo $ac_n "checking for float round functions""... $ac_c" 1>&6 -echo "configure:7980: checking for float round functions" >&5 +echo "configure:7969: checking for float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7990,14 +7979,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 7994 "configure" +#line 7983 "configure" #include "confdefs.h" #include <math.h> int main() { `for x in ceilf floorf; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:8001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7990: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_float_round_use=yes else @@ -8021,12 +8010,12 @@ fi for ac_func in ceilf floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8025: checking for $ac_func" >&5 +echo "configure:8014: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8030 "configure" +#line 8019 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8049,7 +8038,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8078,7 +8067,7 @@ done echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6 -echo "configure:8082: checking for isnanf declaration" >&5 +echo "configure:8071: checking for isnanf declaration" >&5 if test x${glibcpp_cv_func_isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8093,7 +8082,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8097 "configure" +#line 8086 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -8104,7 +8093,7 @@ int main() { isnanf(0); ; return 0; } EOF -if { (eval echo configure:8108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8097: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanf_use=yes else @@ -8131,12 +8120,12 @@ fi for ac_func in isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8135: checking for $ac_func" >&5 +echo "configure:8124: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8140 "configure" +#line 8129 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8159,7 +8148,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8186,7 +8175,7 @@ done else echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6 -echo "configure:8190: checking for _isnanf declaration" >&5 +echo "configure:8179: checking for _isnanf declaration" >&5 if test x${glibcpp_cv_func__isnanf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8201,7 +8190,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8205 "configure" +#line 8194 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -8212,7 +8201,7 @@ int main() { _isnanf(0); ; return 0; } EOF -if { (eval echo configure:8216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanf_use=yes else @@ -8239,12 +8228,12 @@ fi for ac_func in _isnanf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8243: checking for $ac_func" >&5 +echo "configure:8232: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8248 "configure" +#line 8237 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8267,7 +8256,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8297,7 +8286,7 @@ done echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6 -echo "configure:8301: checking for isinff declaration" >&5 +echo "configure:8290: checking for isinff declaration" >&5 if test x${glibcpp_cv_func_isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8312,7 +8301,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8316 "configure" +#line 8305 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -8323,7 +8312,7 @@ int main() { isinff(0); ; return 0; } EOF -if { (eval echo configure:8327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinff_use=yes else @@ -8350,12 +8339,12 @@ fi for ac_func in isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8354: checking for $ac_func" >&5 +echo "configure:8343: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8359 "configure" +#line 8348 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8378,7 +8367,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8405,7 +8394,7 @@ done else echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6 -echo "configure:8409: checking for _isinff declaration" >&5 +echo "configure:8398: checking for _isinff declaration" >&5 if test x${glibcpp_cv_func__isinff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8420,7 +8409,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8424 "configure" +#line 8413 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -8431,7 +8420,7 @@ int main() { _isinff(0); ; return 0; } EOF -if { (eval echo configure:8435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8424: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinff_use=yes else @@ -8458,12 +8447,12 @@ fi for ac_func in _isinff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8462: checking for $ac_func" >&5 +echo "configure:8451: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8467 "configure" +#line 8456 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8486,7 +8475,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8516,7 +8505,7 @@ done echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6 -echo "configure:8520: checking for fabsf declaration" >&5 +echo "configure:8509: checking for fabsf declaration" >&5 if test x${glibcpp_cv_func_fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8531,7 +8520,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8535 "configure" +#line 8524 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -8542,7 +8531,7 @@ int main() { fabsf(0); ; return 0; } EOF -if { (eval echo configure:8546: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsf_use=yes else @@ -8569,12 +8558,12 @@ fi for ac_func in fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8573: checking for $ac_func" >&5 +echo "configure:8562: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8578 "configure" +#line 8567 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8597,7 +8586,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8624,7 +8613,7 @@ done else echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6 -echo "configure:8628: checking for _fabsf declaration" >&5 +echo "configure:8617: checking for _fabsf declaration" >&5 if test x${glibcpp_cv_func__fabsf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8639,7 +8628,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8643 "configure" +#line 8632 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -8650,7 +8639,7 @@ int main() { _fabsf(0); ; return 0; } EOF -if { (eval echo configure:8654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsf_use=yes else @@ -8677,12 +8666,12 @@ fi for ac_func in _fabsf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8681: checking for $ac_func" >&5 +echo "configure:8670: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8686 "configure" +#line 8675 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8705,7 +8694,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8735,7 +8724,7 @@ done echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6 -echo "configure:8739: checking for fmodf declaration" >&5 +echo "configure:8728: checking for fmodf declaration" >&5 if test x${glibcpp_cv_func_fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8750,14 +8739,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8754 "configure" +#line 8743 "configure" #include "confdefs.h" #include <math.h> int main() { fmodf(0, 0); ; return 0; } EOF -if { (eval echo configure:8761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodf_use=yes else @@ -8784,12 +8773,12 @@ fi for ac_func in fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8788: checking for $ac_func" >&5 +echo "configure:8777: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8793 "configure" +#line 8782 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8812,7 +8801,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8839,7 +8828,7 @@ done else echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6 -echo "configure:8843: checking for _fmodf declaration" >&5 +echo "configure:8832: checking for _fmodf declaration" >&5 if test x${glibcpp_cv_func__fmodf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8854,14 +8843,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8858 "configure" +#line 8847 "configure" #include "confdefs.h" #include <math.h> int main() { _fmodf(0, 0); ; return 0; } EOF -if { (eval echo configure:8865: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8854: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodf_use=yes else @@ -8888,12 +8877,12 @@ fi for ac_func in _fmodf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8892: checking for $ac_func" >&5 +echo "configure:8881: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 8897 "configure" +#line 8886 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -8916,7 +8905,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:8920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -8946,7 +8935,7 @@ done echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6 -echo "configure:8950: checking for frexpf declaration" >&5 +echo "configure:8939: checking for frexpf declaration" >&5 if test x${glibcpp_cv_func_frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8961,14 +8950,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 8965 "configure" +#line 8954 "configure" #include "confdefs.h" #include <math.h> int main() { frexpf(0, 0); ; return 0; } EOF -if { (eval echo configure:8972: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpf_use=yes else @@ -8995,12 +8984,12 @@ fi for ac_func in frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:8999: checking for $ac_func" >&5 +echo "configure:8988: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9004 "configure" +#line 8993 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9023,7 +9012,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9050,7 +9039,7 @@ done else echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6 -echo "configure:9054: checking for _frexpf declaration" >&5 +echo "configure:9043: checking for _frexpf declaration" >&5 if test x${glibcpp_cv_func__frexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9065,14 +9054,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9069 "configure" +#line 9058 "configure" #include "confdefs.h" #include <math.h> int main() { _frexpf(0, 0); ; return 0; } EOF -if { (eval echo configure:9076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpf_use=yes else @@ -9099,12 +9088,12 @@ fi for ac_func in _frexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9103: checking for $ac_func" >&5 +echo "configure:9092: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9108 "configure" +#line 9097 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9127,7 +9116,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9157,7 +9146,7 @@ done echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6 -echo "configure:9161: checking for ldexpf declaration" >&5 +echo "configure:9150: checking for ldexpf declaration" >&5 if test x${glibcpp_cv_func_ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9172,14 +9161,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9176 "configure" +#line 9165 "configure" #include "confdefs.h" #include <math.h> int main() { ldexpf(0, 0); ; return 0; } EOF -if { (eval echo configure:9183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpf_use=yes else @@ -9206,12 +9195,12 @@ fi for ac_func in ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9210: checking for $ac_func" >&5 +echo "configure:9199: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9215 "configure" +#line 9204 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9234,7 +9223,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9261,7 +9250,7 @@ done else echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6 -echo "configure:9265: checking for _ldexpf declaration" >&5 +echo "configure:9254: checking for _ldexpf declaration" >&5 if test x${glibcpp_cv_func__ldexpf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9276,14 +9265,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9280 "configure" +#line 9269 "configure" #include "confdefs.h" #include <math.h> int main() { _ldexpf(0, 0); ; return 0; } EOF -if { (eval echo configure:9287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9276: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpf_use=yes else @@ -9310,12 +9299,12 @@ fi for ac_func in _ldexpf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9314: checking for $ac_func" >&5 +echo "configure:9303: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9319 "configure" +#line 9308 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9338,7 +9327,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9368,7 +9357,7 @@ done echo $ac_n "checking for logf declaration""... $ac_c" 1>&6 -echo "configure:9372: checking for logf declaration" >&5 +echo "configure:9361: checking for logf declaration" >&5 if test x${glibcpp_cv_func_logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9383,7 +9372,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9387 "configure" +#line 9376 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -9394,7 +9383,7 @@ int main() { logf(0); ; return 0; } EOF -if { (eval echo configure:9398: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logf_use=yes else @@ -9421,12 +9410,12 @@ fi for ac_func in logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9425: checking for $ac_func" >&5 +echo "configure:9414: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9430 "configure" +#line 9419 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9449,7 +9438,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9476,7 +9465,7 @@ done else echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6 -echo "configure:9480: checking for _logf declaration" >&5 +echo "configure:9469: checking for _logf declaration" >&5 if test x${glibcpp_cv_func__logf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9491,7 +9480,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9495 "configure" +#line 9484 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -9502,7 +9491,7 @@ int main() { _logf(0); ; return 0; } EOF -if { (eval echo configure:9506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logf_use=yes else @@ -9529,12 +9518,12 @@ fi for ac_func in _logf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9533: checking for $ac_func" >&5 +echo "configure:9522: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9538 "configure" +#line 9527 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9557,7 +9546,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9587,7 +9576,7 @@ done echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6 -echo "configure:9591: checking for log10f declaration" >&5 +echo "configure:9580: checking for log10f declaration" >&5 if test x${glibcpp_cv_func_log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9602,7 +9591,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9606 "configure" +#line 9595 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -9613,7 +9602,7 @@ int main() { log10f(0); ; return 0; } EOF -if { (eval echo configure:9617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10f_use=yes else @@ -9640,12 +9629,12 @@ fi for ac_func in log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9644: checking for $ac_func" >&5 +echo "configure:9633: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9649 "configure" +#line 9638 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9668,7 +9657,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9695,7 +9684,7 @@ done else echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6 -echo "configure:9699: checking for _log10f declaration" >&5 +echo "configure:9688: checking for _log10f declaration" >&5 if test x${glibcpp_cv_func__log10f_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10f_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9710,7 +9699,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9714 "configure" +#line 9703 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -9721,7 +9710,7 @@ int main() { _log10f(0); ; return 0; } EOF -if { (eval echo configure:9725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10f_use=yes else @@ -9748,12 +9737,12 @@ fi for ac_func in _log10f do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9752: checking for $ac_func" >&5 +echo "configure:9741: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9757 "configure" +#line 9746 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9776,7 +9765,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9806,7 +9795,7 @@ done echo $ac_n "checking for modff declaration""... $ac_c" 1>&6 -echo "configure:9810: checking for modff declaration" >&5 +echo "configure:9799: checking for modff declaration" >&5 if test x${glibcpp_cv_func_modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9821,14 +9810,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9825 "configure" +#line 9814 "configure" #include "confdefs.h" #include <math.h> int main() { modff(0, 0); ; return 0; } EOF -if { (eval echo configure:9832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9821: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modff_use=yes else @@ -9855,12 +9844,12 @@ fi for ac_func in modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9859: checking for $ac_func" >&5 +echo "configure:9848: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9864 "configure" +#line 9853 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9883,7 +9872,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -9910,7 +9899,7 @@ done else echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6 -echo "configure:9914: checking for _modff declaration" >&5 +echo "configure:9903: checking for _modff declaration" >&5 if test x${glibcpp_cv_func__modff_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modff_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9925,14 +9914,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 9929 "configure" +#line 9918 "configure" #include "confdefs.h" #include <math.h> int main() { _modff(0, 0); ; return 0; } EOF -if { (eval echo configure:9936: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modff_use=yes else @@ -9959,12 +9948,12 @@ fi for ac_func in _modff do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:9963: checking for $ac_func" >&5 +echo "configure:9952: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 9968 "configure" +#line 9957 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -9987,7 +9976,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:9991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10017,7 +10006,7 @@ done echo $ac_n "checking for powf declaration""... $ac_c" 1>&6 -echo "configure:10021: checking for powf declaration" >&5 +echo "configure:10010: checking for powf declaration" >&5 if test x${glibcpp_cv_func_powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10032,14 +10021,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10036 "configure" +#line 10025 "configure" #include "confdefs.h" #include <math.h> int main() { powf(0, 0); ; return 0; } EOF -if { (eval echo configure:10043: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10032: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powf_use=yes else @@ -10066,12 +10055,12 @@ fi for ac_func in powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10070: checking for $ac_func" >&5 +echo "configure:10059: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10075 "configure" +#line 10064 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10094,7 +10083,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10121,7 +10110,7 @@ done else echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6 -echo "configure:10125: checking for _powf declaration" >&5 +echo "configure:10114: checking for _powf declaration" >&5 if test x${glibcpp_cv_func__powf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10136,14 +10125,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10140 "configure" +#line 10129 "configure" #include "confdefs.h" #include <math.h> int main() { _powf(0, 0); ; return 0; } EOF -if { (eval echo configure:10147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powf_use=yes else @@ -10170,12 +10159,12 @@ fi for ac_func in _powf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10174: checking for $ac_func" >&5 +echo "configure:10163: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10179 "configure" +#line 10168 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10198,7 +10187,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10228,7 +10217,7 @@ done echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6 -echo "configure:10232: checking for sqrtf declaration" >&5 +echo "configure:10221: checking for sqrtf declaration" >&5 if test x${glibcpp_cv_func_sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10243,7 +10232,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10247 "configure" +#line 10236 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -10254,7 +10243,7 @@ int main() { sqrtf(0); ; return 0; } EOF -if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtf_use=yes else @@ -10281,12 +10270,12 @@ fi for ac_func in sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10285: checking for $ac_func" >&5 +echo "configure:10274: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10290 "configure" +#line 10279 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10309,7 +10298,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10336,7 +10325,7 @@ done else echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6 -echo "configure:10340: checking for _sqrtf declaration" >&5 +echo "configure:10329: checking for _sqrtf declaration" >&5 if test x${glibcpp_cv_func__sqrtf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10351,7 +10340,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10355 "configure" +#line 10344 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -10362,7 +10351,7 @@ int main() { _sqrtf(0); ; return 0; } EOF -if { (eval echo configure:10366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtf_use=yes else @@ -10389,12 +10378,12 @@ fi for ac_func in _sqrtf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10393: checking for $ac_func" >&5 +echo "configure:10382: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10398 "configure" +#line 10387 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10417,7 +10406,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10447,7 +10436,7 @@ done echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6 -echo "configure:10451: checking for sincosf declaration" >&5 +echo "configure:10440: checking for sincosf declaration" >&5 if test x${glibcpp_cv_func_sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10462,14 +10451,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10466 "configure" +#line 10455 "configure" #include "confdefs.h" #include <math.h> int main() { sincosf(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:10473: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosf_use=yes else @@ -10496,12 +10485,12 @@ fi for ac_func in sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10500: checking for $ac_func" >&5 +echo "configure:10489: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10505 "configure" +#line 10494 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10524,7 +10513,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10551,7 +10540,7 @@ done else echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6 -echo "configure:10555: checking for _sincosf declaration" >&5 +echo "configure:10544: checking for _sincosf declaration" >&5 if test x${glibcpp_cv_func__sincosf_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosf_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10566,14 +10555,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10570 "configure" +#line 10559 "configure" #include "confdefs.h" #include <math.h> int main() { _sincosf(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:10577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosf_use=yes else @@ -10600,12 +10589,12 @@ fi for ac_func in _sincosf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10604: checking for $ac_func" >&5 +echo "configure:10593: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10609 "configure" +#line 10598 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10628,7 +10617,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10658,7 +10647,7 @@ done echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6 -echo "configure:10662: checking for finitef declaration" >&5 +echo "configure:10651: checking for finitef declaration" >&5 if test x${glibcpp_cv_func_finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10673,7 +10662,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10677 "configure" +#line 10666 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -10684,7 +10673,7 @@ int main() { finitef(0); ; return 0; } EOF -if { (eval echo configure:10688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitef_use=yes else @@ -10711,12 +10700,12 @@ fi for ac_func in finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10715: checking for $ac_func" >&5 +echo "configure:10704: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10720 "configure" +#line 10709 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10739,7 +10728,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10766,7 +10755,7 @@ done else echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6 -echo "configure:10770: checking for _finitef declaration" >&5 +echo "configure:10759: checking for _finitef declaration" >&5 if test x${glibcpp_cv_func__finitef_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitef_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10781,7 +10770,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10785 "configure" +#line 10774 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -10792,7 +10781,7 @@ int main() { _finitef(0); ; return 0; } EOF -if { (eval echo configure:10796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitef_use=yes else @@ -10819,12 +10808,12 @@ fi for ac_func in _finitef do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10823: checking for $ac_func" >&5 +echo "configure:10812: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10828 "configure" +#line 10817 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10847,7 +10836,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10877,7 +10866,7 @@ done echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6 -echo "configure:10881: checking for long double trig functions" >&5 +echo "configure:10870: checking for long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10891,7 +10880,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 10895 "configure" +#line 10884 "configure" #include "confdefs.h" #include <math.h> int main() { @@ -10900,7 +10889,7 @@ int main() { coshl sinhl tanhl; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:10904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_trig_use=yes else @@ -10926,12 +10915,12 @@ fi coshl sinhl tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10930: checking for $ac_func" >&5 +echo "configure:10919: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 10935 "configure" +#line 10924 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -10954,7 +10943,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:10958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10982,7 +10971,7 @@ done echo $ac_n "checking for long double round functions""... $ac_c" 1>&6 -echo "configure:10986: checking for long double round functions" >&5 +echo "configure:10975: checking for long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func_long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10996,14 +10985,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11000 "configure" +#line 10989 "configure" #include "confdefs.h" #include <math.h> int main() { `for x in ceill floorl; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:11007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:10996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_long_double_round_use=yes else @@ -11027,12 +11016,12 @@ fi for ac_func in ceill floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11031: checking for $ac_func" >&5 +echo "configure:11020: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11036 "configure" +#line 11025 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11055,7 +11044,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11084,7 +11073,7 @@ done echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6 -echo "configure:11088: checking for isnanl declaration" >&5 +echo "configure:11077: checking for isnanl declaration" >&5 if test x${glibcpp_cv_func_isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11099,7 +11088,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11103 "configure" +#line 11092 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -11110,7 +11099,7 @@ int main() { isnanl(0); ; return 0; } EOF -if { (eval echo configure:11114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11103: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isnanl_use=yes else @@ -11137,12 +11126,12 @@ fi for ac_func in isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11141: checking for $ac_func" >&5 +echo "configure:11130: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11146 "configure" +#line 11135 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11165,7 +11154,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11192,7 +11181,7 @@ done else echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6 -echo "configure:11196: checking for _isnanl declaration" >&5 +echo "configure:11185: checking for _isnanl declaration" >&5 if test x${glibcpp_cv_func__isnanl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isnanl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11207,7 +11196,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11211 "configure" +#line 11200 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -11218,7 +11207,7 @@ int main() { _isnanl(0); ; return 0; } EOF -if { (eval echo configure:11222: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11211: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isnanl_use=yes else @@ -11245,12 +11234,12 @@ fi for ac_func in _isnanl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11249: checking for $ac_func" >&5 +echo "configure:11238: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11254 "configure" +#line 11243 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11273,7 +11262,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11303,7 +11292,7 @@ done echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6 -echo "configure:11307: checking for isinfl declaration" >&5 +echo "configure:11296: checking for isinfl declaration" >&5 if test x${glibcpp_cv_func_isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11318,7 +11307,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11322 "configure" +#line 11311 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -11329,7 +11318,7 @@ int main() { isinfl(0); ; return 0; } EOF -if { (eval echo configure:11333: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_isinfl_use=yes else @@ -11356,12 +11345,12 @@ fi for ac_func in isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11360: checking for $ac_func" >&5 +echo "configure:11349: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11365 "configure" +#line 11354 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11384,7 +11373,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11411,7 +11400,7 @@ done else echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6 -echo "configure:11415: checking for _isinfl declaration" >&5 +echo "configure:11404: checking for _isinfl declaration" >&5 if test x${glibcpp_cv_func__isinfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__isinfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11426,7 +11415,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11430 "configure" +#line 11419 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -11437,7 +11426,7 @@ int main() { _isinfl(0); ; return 0; } EOF -if { (eval echo configure:11441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__isinfl_use=yes else @@ -11464,12 +11453,12 @@ fi for ac_func in _isinfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11468: checking for $ac_func" >&5 +echo "configure:11457: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11473 "configure" +#line 11462 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11492,7 +11481,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11522,7 +11511,7 @@ done echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6 -echo "configure:11526: checking for copysignl declaration" >&5 +echo "configure:11515: checking for copysignl declaration" >&5 if test x${glibcpp_cv_func_copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11537,14 +11526,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11541 "configure" +#line 11530 "configure" #include "confdefs.h" #include <math.h> int main() { copysignl(0, 0); ; return 0; } EOF -if { (eval echo configure:11548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_copysignl_use=yes else @@ -11571,12 +11560,12 @@ fi for ac_func in copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11575: checking for $ac_func" >&5 +echo "configure:11564: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11580 "configure" +#line 11569 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11599,7 +11588,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11626,7 +11615,7 @@ done else echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6 -echo "configure:11630: checking for _copysignl declaration" >&5 +echo "configure:11619: checking for _copysignl declaration" >&5 if test x${glibcpp_cv_func__copysignl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__copysignl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11641,14 +11630,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11645 "configure" +#line 11634 "configure" #include "confdefs.h" #include <math.h> int main() { _copysignl(0, 0); ; return 0; } EOF -if { (eval echo configure:11652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11641: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__copysignl_use=yes else @@ -11675,12 +11664,12 @@ fi for ac_func in _copysignl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11679: checking for $ac_func" >&5 +echo "configure:11668: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11684 "configure" +#line 11673 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11703,7 +11692,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11733,7 +11722,7 @@ done echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6 -echo "configure:11737: checking for atan2l declaration" >&5 +echo "configure:11726: checking for atan2l declaration" >&5 if test x${glibcpp_cv_func_atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11748,14 +11737,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11752 "configure" +#line 11741 "configure" #include "confdefs.h" #include <math.h> int main() { atan2l(0, 0); ; return 0; } EOF -if { (eval echo configure:11759: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_atan2l_use=yes else @@ -11782,12 +11771,12 @@ fi for ac_func in atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11786: checking for $ac_func" >&5 +echo "configure:11775: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11791 "configure" +#line 11780 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11810,7 +11799,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11837,7 +11826,7 @@ done else echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6 -echo "configure:11841: checking for _atan2l declaration" >&5 +echo "configure:11830: checking for _atan2l declaration" >&5 if test x${glibcpp_cv_func__atan2l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__atan2l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11852,14 +11841,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11856 "configure" +#line 11845 "configure" #include "confdefs.h" #include <math.h> int main() { _atan2l(0, 0); ; return 0; } EOF -if { (eval echo configure:11863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11852: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__atan2l_use=yes else @@ -11886,12 +11875,12 @@ fi for ac_func in _atan2l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11890: checking for $ac_func" >&5 +echo "configure:11879: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 11895 "configure" +#line 11884 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -11914,7 +11903,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:11918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11944,7 +11933,7 @@ done echo $ac_n "checking for expl declaration""... $ac_c" 1>&6 -echo "configure:11948: checking for expl declaration" >&5 +echo "configure:11937: checking for expl declaration" >&5 if test x${glibcpp_cv_func_expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11959,7 +11948,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 11963 "configure" +#line 11952 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -11970,7 +11959,7 @@ int main() { expl(0); ; return 0; } EOF -if { (eval echo configure:11974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11963: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_expl_use=yes else @@ -11997,12 +11986,12 @@ fi for ac_func in expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12001: checking for $ac_func" >&5 +echo "configure:11990: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12006 "configure" +#line 11995 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12025,7 +12014,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12052,7 +12041,7 @@ done else echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6 -echo "configure:12056: checking for _expl declaration" >&5 +echo "configure:12045: checking for _expl declaration" >&5 if test x${glibcpp_cv_func__expl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__expl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12067,7 +12056,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12071 "configure" +#line 12060 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -12078,7 +12067,7 @@ int main() { _expl(0); ; return 0; } EOF -if { (eval echo configure:12082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__expl_use=yes else @@ -12105,12 +12094,12 @@ fi for ac_func in _expl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12109: checking for $ac_func" >&5 +echo "configure:12098: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12114 "configure" +#line 12103 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12133,7 +12122,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12163,7 +12152,7 @@ done echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6 -echo "configure:12167: checking for fabsl declaration" >&5 +echo "configure:12156: checking for fabsl declaration" >&5 if test x${glibcpp_cv_func_fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12178,7 +12167,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12182 "configure" +#line 12171 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -12189,7 +12178,7 @@ int main() { fabsl(0); ; return 0; } EOF -if { (eval echo configure:12193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fabsl_use=yes else @@ -12216,12 +12205,12 @@ fi for ac_func in fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12220: checking for $ac_func" >&5 +echo "configure:12209: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12225 "configure" +#line 12214 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12244,7 +12233,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12271,7 +12260,7 @@ done else echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6 -echo "configure:12275: checking for _fabsl declaration" >&5 +echo "configure:12264: checking for _fabsl declaration" >&5 if test x${glibcpp_cv_func__fabsl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fabsl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12286,7 +12275,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12290 "configure" +#line 12279 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -12297,7 +12286,7 @@ int main() { _fabsl(0); ; return 0; } EOF -if { (eval echo configure:12301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fabsl_use=yes else @@ -12324,12 +12313,12 @@ fi for ac_func in _fabsl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12328: checking for $ac_func" >&5 +echo "configure:12317: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12333 "configure" +#line 12322 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12352,7 +12341,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12382,7 +12371,7 @@ done echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6 -echo "configure:12386: checking for fmodl declaration" >&5 +echo "configure:12375: checking for fmodl declaration" >&5 if test x${glibcpp_cv_func_fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12397,14 +12386,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12401 "configure" +#line 12390 "configure" #include "confdefs.h" #include <math.h> int main() { fmodl(0, 0); ; return 0; } EOF -if { (eval echo configure:12408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_fmodl_use=yes else @@ -12431,12 +12420,12 @@ fi for ac_func in fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12435: checking for $ac_func" >&5 +echo "configure:12424: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12440 "configure" +#line 12429 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12459,7 +12448,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12486,7 +12475,7 @@ done else echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6 -echo "configure:12490: checking for _fmodl declaration" >&5 +echo "configure:12479: checking for _fmodl declaration" >&5 if test x${glibcpp_cv_func__fmodl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__fmodl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12501,14 +12490,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12505 "configure" +#line 12494 "configure" #include "confdefs.h" #include <math.h> int main() { _fmodl(0, 0); ; return 0; } EOF -if { (eval echo configure:12512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12501: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__fmodl_use=yes else @@ -12535,12 +12524,12 @@ fi for ac_func in _fmodl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12539: checking for $ac_func" >&5 +echo "configure:12528: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12544 "configure" +#line 12533 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12563,7 +12552,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12593,7 +12582,7 @@ done echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6 -echo "configure:12597: checking for frexpl declaration" >&5 +echo "configure:12586: checking for frexpl declaration" >&5 if test x${glibcpp_cv_func_frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12608,14 +12597,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12612 "configure" +#line 12601 "configure" #include "confdefs.h" #include <math.h> int main() { frexpl(0, 0); ; return 0; } EOF -if { (eval echo configure:12619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_frexpl_use=yes else @@ -12642,12 +12631,12 @@ fi for ac_func in frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12646: checking for $ac_func" >&5 +echo "configure:12635: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12651 "configure" +#line 12640 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12670,7 +12659,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12697,7 +12686,7 @@ done else echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6 -echo "configure:12701: checking for _frexpl declaration" >&5 +echo "configure:12690: checking for _frexpl declaration" >&5 if test x${glibcpp_cv_func__frexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__frexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12712,14 +12701,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12716 "configure" +#line 12705 "configure" #include "confdefs.h" #include <math.h> int main() { _frexpl(0, 0); ; return 0; } EOF -if { (eval echo configure:12723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__frexpl_use=yes else @@ -12746,12 +12735,12 @@ fi for ac_func in _frexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12750: checking for $ac_func" >&5 +echo "configure:12739: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12755 "configure" +#line 12744 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12774,7 +12763,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12804,7 +12793,7 @@ done echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6 -echo "configure:12808: checking for ldexpl declaration" >&5 +echo "configure:12797: checking for ldexpl declaration" >&5 if test x${glibcpp_cv_func_ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12819,14 +12808,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12823 "configure" +#line 12812 "configure" #include "confdefs.h" #include <math.h> int main() { ldexpl(0, 0); ; return 0; } EOF -if { (eval echo configure:12830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_ldexpl_use=yes else @@ -12853,12 +12842,12 @@ fi for ac_func in ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12857: checking for $ac_func" >&5 +echo "configure:12846: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12862 "configure" +#line 12851 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12881,7 +12870,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -12908,7 +12897,7 @@ done else echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6 -echo "configure:12912: checking for _ldexpl declaration" >&5 +echo "configure:12901: checking for _ldexpl declaration" >&5 if test x${glibcpp_cv_func__ldexpl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__ldexpl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -12923,14 +12912,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 12927 "configure" +#line 12916 "configure" #include "confdefs.h" #include <math.h> int main() { _ldexpl(0, 0); ; return 0; } EOF -if { (eval echo configure:12934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:12923: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__ldexpl_use=yes else @@ -12957,12 +12946,12 @@ fi for ac_func in _ldexpl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:12961: checking for $ac_func" >&5 +echo "configure:12950: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 12966 "configure" +#line 12955 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -12985,7 +12974,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:12989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13015,7 +13004,7 @@ done echo $ac_n "checking for logl declaration""... $ac_c" 1>&6 -echo "configure:13019: checking for logl declaration" >&5 +echo "configure:13008: checking for logl declaration" >&5 if test x${glibcpp_cv_func_logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13030,7 +13019,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13034 "configure" +#line 13023 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -13041,7 +13030,7 @@ int main() { logl(0); ; return 0; } EOF -if { (eval echo configure:13045: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_logl_use=yes else @@ -13068,12 +13057,12 @@ fi for ac_func in logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13072: checking for $ac_func" >&5 +echo "configure:13061: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13077 "configure" +#line 13066 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13096,7 +13085,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13123,7 +13112,7 @@ done else echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6 -echo "configure:13127: checking for _logl declaration" >&5 +echo "configure:13116: checking for _logl declaration" >&5 if test x${glibcpp_cv_func__logl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__logl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13138,7 +13127,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13142 "configure" +#line 13131 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -13149,7 +13138,7 @@ int main() { _logl(0); ; return 0; } EOF -if { (eval echo configure:13153: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__logl_use=yes else @@ -13176,12 +13165,12 @@ fi for ac_func in _logl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13180: checking for $ac_func" >&5 +echo "configure:13169: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13185 "configure" +#line 13174 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13204,7 +13193,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13234,7 +13223,7 @@ done echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6 -echo "configure:13238: checking for log10l declaration" >&5 +echo "configure:13227: checking for log10l declaration" >&5 if test x${glibcpp_cv_func_log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13249,7 +13238,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13253 "configure" +#line 13242 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -13260,7 +13249,7 @@ int main() { log10l(0); ; return 0; } EOF -if { (eval echo configure:13264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_log10l_use=yes else @@ -13287,12 +13276,12 @@ fi for ac_func in log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13291: checking for $ac_func" >&5 +echo "configure:13280: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13296 "configure" +#line 13285 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13315,7 +13304,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13342,7 +13331,7 @@ done else echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6 -echo "configure:13346: checking for _log10l declaration" >&5 +echo "configure:13335: checking for _log10l declaration" >&5 if test x${glibcpp_cv_func__log10l_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__log10l_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13357,7 +13346,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13361 "configure" +#line 13350 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -13368,7 +13357,7 @@ int main() { _log10l(0); ; return 0; } EOF -if { (eval echo configure:13372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__log10l_use=yes else @@ -13395,12 +13384,12 @@ fi for ac_func in _log10l do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13399: checking for $ac_func" >&5 +echo "configure:13388: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13404 "configure" +#line 13393 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13423,7 +13412,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13453,7 +13442,7 @@ done echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6 -echo "configure:13457: checking for modfl declaration" >&5 +echo "configure:13446: checking for modfl declaration" >&5 if test x${glibcpp_cv_func_modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13468,14 +13457,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13472 "configure" +#line 13461 "configure" #include "confdefs.h" #include <math.h> int main() { modfl(0, 0); ; return 0; } EOF -if { (eval echo configure:13479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13468: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_modfl_use=yes else @@ -13502,12 +13491,12 @@ fi for ac_func in modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13506: checking for $ac_func" >&5 +echo "configure:13495: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13511 "configure" +#line 13500 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13530,7 +13519,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13557,7 +13546,7 @@ done else echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6 -echo "configure:13561: checking for _modfl declaration" >&5 +echo "configure:13550: checking for _modfl declaration" >&5 if test x${glibcpp_cv_func__modfl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__modfl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13572,14 +13561,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13576 "configure" +#line 13565 "configure" #include "confdefs.h" #include <math.h> int main() { _modfl(0, 0); ; return 0; } EOF -if { (eval echo configure:13583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13572: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__modfl_use=yes else @@ -13606,12 +13595,12 @@ fi for ac_func in _modfl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13610: checking for $ac_func" >&5 +echo "configure:13599: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13615 "configure" +#line 13604 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13634,7 +13623,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13664,7 +13653,7 @@ done echo $ac_n "checking for powl declaration""... $ac_c" 1>&6 -echo "configure:13668: checking for powl declaration" >&5 +echo "configure:13657: checking for powl declaration" >&5 if test x${glibcpp_cv_func_powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13679,14 +13668,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13683 "configure" +#line 13672 "configure" #include "confdefs.h" #include <math.h> int main() { powl(0, 0); ; return 0; } EOF -if { (eval echo configure:13690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_powl_use=yes else @@ -13713,12 +13702,12 @@ fi for ac_func in powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13717: checking for $ac_func" >&5 +echo "configure:13706: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13722 "configure" +#line 13711 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13741,7 +13730,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13768,7 +13757,7 @@ done else echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6 -echo "configure:13772: checking for _powl declaration" >&5 +echo "configure:13761: checking for _powl declaration" >&5 if test x${glibcpp_cv_func__powl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__powl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13783,14 +13772,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13787 "configure" +#line 13776 "configure" #include "confdefs.h" #include <math.h> int main() { _powl(0, 0); ; return 0; } EOF -if { (eval echo configure:13794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__powl_use=yes else @@ -13817,12 +13806,12 @@ fi for ac_func in _powl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13821: checking for $ac_func" >&5 +echo "configure:13810: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13826 "configure" +#line 13815 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13845,7 +13834,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13875,7 +13864,7 @@ done echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6 -echo "configure:13879: checking for sqrtl declaration" >&5 +echo "configure:13868: checking for sqrtl declaration" >&5 if test x${glibcpp_cv_func_sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13890,7 +13879,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 13894 "configure" +#line 13883 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -13901,7 +13890,7 @@ int main() { sqrtl(0); ; return 0; } EOF -if { (eval echo configure:13905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sqrtl_use=yes else @@ -13928,12 +13917,12 @@ fi for ac_func in sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:13932: checking for $ac_func" >&5 +echo "configure:13921: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 13937 "configure" +#line 13926 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -13956,7 +13945,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:13960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -13983,7 +13972,7 @@ done else echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6 -echo "configure:13987: checking for _sqrtl declaration" >&5 +echo "configure:13976: checking for _sqrtl declaration" >&5 if test x${glibcpp_cv_func__sqrtl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sqrtl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13998,7 +13987,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14002 "configure" +#line 13991 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -14009,7 +13998,7 @@ int main() { _sqrtl(0); ; return 0; } EOF -if { (eval echo configure:14013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sqrtl_use=yes else @@ -14036,12 +14025,12 @@ fi for ac_func in _sqrtl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14040: checking for $ac_func" >&5 +echo "configure:14029: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14045 "configure" +#line 14034 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14064,7 +14053,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14094,7 +14083,7 @@ done echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6 -echo "configure:14098: checking for sincosl declaration" >&5 +echo "configure:14087: checking for sincosl declaration" >&5 if test x${glibcpp_cv_func_sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14109,14 +14098,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14113 "configure" +#line 14102 "configure" #include "confdefs.h" #include <math.h> int main() { sincosl(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:14120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_sincosl_use=yes else @@ -14143,12 +14132,12 @@ fi for ac_func in sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14147: checking for $ac_func" >&5 +echo "configure:14136: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14152 "configure" +#line 14141 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14171,7 +14160,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14198,7 +14187,7 @@ done else echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6 -echo "configure:14202: checking for _sincosl declaration" >&5 +echo "configure:14191: checking for _sincosl declaration" >&5 if test x${glibcpp_cv_func__sincosl_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__sincosl_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14213,14 +14202,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14217 "configure" +#line 14206 "configure" #include "confdefs.h" #include <math.h> int main() { _sincosl(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:14224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__sincosl_use=yes else @@ -14247,12 +14236,12 @@ fi for ac_func in _sincosl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14251: checking for $ac_func" >&5 +echo "configure:14240: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14256 "configure" +#line 14245 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14275,7 +14264,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14305,7 +14294,7 @@ done echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6 -echo "configure:14309: checking for finitel declaration" >&5 +echo "configure:14298: checking for finitel declaration" >&5 if test x${glibcpp_cv_func_finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14320,7 +14309,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14324 "configure" +#line 14313 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -14331,7 +14320,7 @@ int main() { finitel(0); ; return 0; } EOF -if { (eval echo configure:14335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_finitel_use=yes else @@ -14358,12 +14347,12 @@ fi for ac_func in finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14362: checking for $ac_func" >&5 +echo "configure:14351: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14367 "configure" +#line 14356 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14386,7 +14375,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14413,7 +14402,7 @@ done else echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6 -echo "configure:14417: checking for _finitel declaration" >&5 +echo "configure:14406: checking for _finitel declaration" >&5 if test x${glibcpp_cv_func__finitel_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func__finitel_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14428,7 +14417,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14432 "configure" +#line 14421 "configure" #include "confdefs.h" #include <math.h> #ifdef HAVE_IEEEFP_H @@ -14439,7 +14428,7 @@ int main() { _finitel(0); ; return 0; } EOF -if { (eval echo configure:14443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__finitel_use=yes else @@ -14466,12 +14455,12 @@ fi for ac_func in _finitel do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14470: checking for $ac_func" >&5 +echo "configure:14459: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14475 "configure" +#line 14464 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14494,7 +14483,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14525,7 +14514,7 @@ done echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6 -echo "configure:14529: checking for _float trig functions" >&5 +echo "configure:14518: checking for _float trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14539,7 +14528,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14543 "configure" +#line 14532 "configure" #include "confdefs.h" #include <math.h> int main() { @@ -14548,7 +14537,7 @@ int main() { _coshf _sinhf _tanhf; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:14552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_trig_use=yes else @@ -14574,12 +14563,12 @@ fi _coshf _sinhf _tanhf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14578: checking for $ac_func" >&5 +echo "configure:14567: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14583 "configure" +#line 14572 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14602,7 +14591,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14630,7 +14619,7 @@ done echo $ac_n "checking for _float round functions""... $ac_c" 1>&6 -echo "configure:14634: checking for _float round functions" >&5 +echo "configure:14623: checking for _float round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__float_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14644,14 +14633,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14648 "configure" +#line 14637 "configure" #include "confdefs.h" #include <math.h> int main() { `for x in _ceilf _floorf; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:14655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__float_round_use=yes else @@ -14675,12 +14664,12 @@ fi for ac_func in _ceilf _floorf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14679: checking for $ac_func" >&5 +echo "configure:14668: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14684 "configure" +#line 14673 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14703,7 +14692,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14732,7 +14721,7 @@ done echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6 -echo "configure:14736: checking for _long double trig functions" >&5 +echo "configure:14725: checking for _long double trig functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_trig_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14746,7 +14735,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14750 "configure" +#line 14739 "configure" #include "confdefs.h" #include <math.h> int main() { @@ -14755,7 +14744,7 @@ int main() { _coshl _sinhl _tanhl; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:14759: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_trig_use=yes else @@ -14781,12 +14770,12 @@ fi _coshl _sinhl _tanhl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14785: checking for $ac_func" >&5 +echo "configure:14774: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14790 "configure" +#line 14779 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14809,7 +14798,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14813: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14837,7 +14826,7 @@ done echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6 -echo "configure:14841: checking for _long double round functions" >&5 +echo "configure:14830: checking for _long double round functions" >&5 if eval "test \"`echo '$''{'glibcpp_cv_func__long_double_round_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14851,14 +14840,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 14855 "configure" +#line 14844 "configure" #include "confdefs.h" #include <math.h> int main() { `for x in _ceill _floorl; do echo "$x (0);"; done` ; return 0; } EOF -if { (eval echo configure:14862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func__long_double_round_use=yes else @@ -14882,12 +14871,12 @@ fi for ac_func in _ceill _floorl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14886: checking for $ac_func" >&5 +echo "configure:14875: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14891 "configure" +#line 14880 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -14910,7 +14899,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:14914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -14942,7 +14931,7 @@ done echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:14946: checking for main in -lm" >&5 +echo "configure:14935: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -14950,14 +14939,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <<EOF -#line 14954 "configure" +#line 14943 "configure" #include "confdefs.h" int main() { main() ; return 0; } EOF -if { (eval echo configure:14961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -14987,12 +14976,12 @@ fi for ac_func in nan hypot hypotf copysignf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:14991: checking for $ac_func" >&5 +echo "configure:14980: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 14996 "configure" +#line 14985 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15015,7 +15004,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15049,12 +15038,12 @@ done for ac_func in hypotl signbitl do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15053: checking for $ac_func" >&5 +echo "configure:15042: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15058 "configure" +#line 15047 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15077,7 +15066,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15110,16 +15099,16 @@ done echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 -echo "configure:15114: checking for mbstate_t" >&5 +echo "configure:15103: checking for mbstate_t" >&5 cat > conftest.$ac_ext <<EOF -#line 15116 "configure" +#line 15105 "configure" #include "confdefs.h" #include <wchar.h> int main() { mbstate_t teststate; ; return 0; } EOF -if { (eval echo configure:15123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_mbstate_t=yes else @@ -15141,17 +15130,17 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:15145: checking for $ac_hdr" >&5 +echo "configure:15134: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15150 "configure" +#line 15139 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15155: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15180,17 +15169,17 @@ done ac_safe=`echo "wctype.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 -echo "configure:15184: checking for wctype.h" >&5 +echo "configure:15173: checking for wctype.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15189 "configure" +#line 15178 "configure" #include "confdefs.h" #include <wctype.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15194: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15183: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15218,16 +15207,16 @@ fi test x"$enable_c_mbchar" != xno; then echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 -echo "configure:15222: checking for WCHAR_MIN and WCHAR_MAX" >&5 +echo "configure:15211: checking for WCHAR_MIN and WCHAR_MAX" >&5 cat > conftest.$ac_ext <<EOF -#line 15224 "configure" +#line 15213 "configure" #include "confdefs.h" #include <wchar.h> int main() { int i = WCHAR_MIN; int j = WCHAR_MAX; ; return 0; } EOF -if { (eval echo configure:15231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_wchar_minmax=yes else @@ -15240,9 +15229,9 @@ rm -f conftest* echo "$ac_t""$has_wchar_minmax" 1>&6 echo $ac_n "checking for WEOF""... $ac_c" 1>&6 -echo "configure:15244: checking for WEOF" >&5 +echo "configure:15233: checking for WEOF" >&5 cat > conftest.$ac_ext <<EOF -#line 15246 "configure" +#line 15235 "configure" #include "confdefs.h" #include <wchar.h> @@ -15251,7 +15240,7 @@ int main() { wint_t i = WEOF; ; return 0; } EOF -if { (eval echo configure:15255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* has_weof=yes else @@ -15267,12 +15256,12 @@ rm -f conftest* for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15271: checking for $ac_func" >&5 +echo "configure:15260: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15276 "configure" +#line 15265 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15295,7 +15284,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15330,12 +15319,12 @@ done wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15334: checking for $ac_func" >&5 +echo "configure:15323: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15339 "configure" +#line 15328 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15358,7 +15347,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15386,7 +15375,7 @@ done echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 -echo "configure:15390: checking for ISO C99 wchar_t support" >&5 +echo "configure:15379: checking for ISO C99 wchar_t support" >&5 if test x"$has_weof" = xyes && test x"$has_wchar_minmax" = xyes && test x"$ac_wfuncs" = xyes; then @@ -15398,17 +15387,17 @@ echo "configure:15390: checking for ISO C99 wchar_t support" >&5 ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 -echo "configure:15402: checking for iconv.h" >&5 +echo "configure:15391: checking for iconv.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15407 "configure" +#line 15396 "configure" #include "confdefs.h" #include <iconv.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15432,17 +15421,17 @@ fi ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 -echo "configure:15436: checking for langinfo.h" >&5 +echo "configure:15425: checking for langinfo.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15441 "configure" +#line 15430 "configure" #include "confdefs.h" #include <langinfo.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15466,7 +15455,7 @@ fi echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 -echo "configure:15470: checking for iconv in -liconv" >&5 +echo "configure:15459: checking for iconv in -liconv" >&5 ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -15474,7 +15463,7 @@ else ac_save_LIBS="$LIBS" LIBS="-liconv $LIBS" cat > conftest.$ac_ext <<EOF -#line 15478 "configure" +#line 15467 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 @@ -15485,7 +15474,7 @@ int main() { iconv() ; return 0; } EOF -if { (eval echo configure:15489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15511,12 +15500,12 @@ fi for ac_func in iconv_open iconv_close iconv nl_langinfo do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15515: checking for $ac_func" >&5 +echo "configure:15504: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15520 "configure" +#line 15509 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15539,7 +15528,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15569,7 +15558,7 @@ done LIBS="$ac_save_LIBS" echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 -echo "configure:15573: checking for XPG2 wchar_t support" >&5 +echo "configure:15562: checking for XPG2 wchar_t support" >&5 if test x"$ac_has_iconv_h" = xyes && test x"$ac_has_langinfo_h" = xyes && test x"$ac_XPG2funcs" = xyes; then @@ -15580,7 +15569,7 @@ echo "configure:15573: checking for XPG2 wchar_t support" >&5 echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 -echo "configure:15584: checking for enabled wchar_t specializations" >&5 +echo "configure:15573: checking for enabled wchar_t specializations" >&5 if test x"$ac_isoC99_wchar_t" = xyes && test x"$ac_XPG2_wchar_t" = xyes; then cat >> confdefs.h <<\EOF @@ -15602,7 +15591,7 @@ EOF echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6 -echo "configure:15606: checking for strtold declaration" >&5 +echo "configure:15595: checking for strtold declaration" >&5 if test x${glibcpp_cv_func_strtold_use+set} != xset; then if eval "test \"`echo '$''{'glibcpp_cv_func_strtold_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -15617,14 +15606,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 15621 "configure" +#line 15610 "configure" #include "confdefs.h" #include <stdlib.h> int main() { strtold(0, 0); ; return 0; } EOF -if { (eval echo configure:15628: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcpp_cv_func_strtold_use=yes else @@ -15650,12 +15639,12 @@ fi for ac_func in strtold do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15654: checking for $ac_func" >&5 +echo "configure:15643: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15659 "configure" +#line 15648 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15678,7 +15667,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15707,12 +15696,12 @@ done for ac_func in drand48 do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15711: checking for $ac_func" >&5 +echo "configure:15700: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15716 "configure" +#line 15705 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15735,7 +15724,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15764,7 +15753,7 @@ done cat > conftest.$ac_ext <<EOF -#line 15768 "configure" +#line 15757 "configure" #include "confdefs.h" #include <setjmp.h> @@ -15773,7 +15762,7 @@ int main() { sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1); ; return 0; } EOF -if { (eval echo configure:15777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SIGSETJMP 1 @@ -15789,17 +15778,17 @@ rm -f conftest* do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:15793: checking for $ac_hdr" >&5 +echo "configure:15782: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15798 "configure" +#line 15787 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:15803: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:15792: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -15828,12 +15817,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15832: checking for $ac_func" >&5 +echo "configure:15821: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 15837 "configure" +#line 15826 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -15856,7 +15845,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:15860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15881,7 +15870,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:15885: checking for working mmap" >&5 +echo "configure:15874: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15889,7 +15878,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <<EOF -#line 15893 "configure" +#line 15882 "configure" #include "confdefs.h" /* Thanks to Mike Haertel and Jim Avera for this test. @@ -16029,7 +16018,7 @@ main() } EOF -if { (eval echo configure:16033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:16022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -16121,17 +16110,17 @@ rm -f confcache ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for locale.h""... $ac_c" 1>&6 -echo "configure:16125: checking for locale.h" >&5 +echo "configure:16114: checking for locale.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 16130 "configure" +#line 16119 "configure" #include "confdefs.h" #include <locale.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16149,19 +16138,19 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:16153: checking for LC_MESSAGES" >&5 +echo "configure:16142: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 16158 "configure" +#line 16147 "configure" #include "confdefs.h" #include <locale.h> int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:16165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_val_LC_MESSAGES=yes else @@ -16214,13 +16203,13 @@ esac glibcpp_prefixdir=${prefix} echo $ac_n "checking for interface version number""... $ac_c" 1>&6 -echo "configure:16218: checking for interface version number" >&5 +echo "configure:16207: checking for interface version number" >&5 libstdcxx_interface=$INTERFACE echo "$ac_t""$libstdcxx_interface" 1>&6 # Process the option --with-gxx-include-dir=<path to include-files directory> echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 -echo "configure:16224: checking for --with-gxx-include-dir" >&5 +echo "configure:16213: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" @@ -16244,7 +16233,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6 # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 -echo "configure:16248: checking for --enable-version-specific-runtime-libs" >&5 +echo "configure:16237: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" @@ -16285,7 +16274,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then fi echo $ac_n "checking for install location""... $ac_c" 1>&6 -echo "configure:16289: checking for install location" >&5 +echo "configure:16278: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index c145b78..339607a 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -131,254 +131,43 @@ glibcpp_builddir = @glibcpp_builddir@ bits_srcdir = ${glibcpp_srcdir}/include/bits bits_builddir = ./bits -bits_headers = \ - ${bits_srcdir}/basic_file.h \ - ${bits_srcdir}/basic_ios.h \ - ${bits_srcdir}/basic_ios.tcc \ - ${bits_srcdir}/basic_string.h \ - ${bits_srcdir}/basic_string.tcc \ - ${bits_srcdir}/boost_concept_check.h \ - ${bits_srcdir}/char_traits.h \ - ${bits_srcdir}/codecvt.h \ - ${bits_srcdir}/concept_check.h \ - ${bits_srcdir}/cpp_type_traits.h \ - ${bits_srcdir}/fpos.h \ - ${bits_srcdir}/fstream.tcc \ - ${bits_srcdir}/functexcept.h \ - ${bits_srcdir}/generic_shadow.h \ - ${bits_srcdir}/gslice.h \ - ${bits_srcdir}/gslice_array.h \ - ${bits_srcdir}/indirect_array.h \ - ${bits_srcdir}/ios_base.h \ - ${bits_srcdir}/istream.tcc \ - ${bits_srcdir}/locale_facets.h \ - ${bits_srcdir}/locale_facets.tcc \ - ${bits_srcdir}/localefwd.h \ - ${bits_srcdir}/mask_array.h \ - ${bits_srcdir}/ostream.tcc \ - ${bits_srcdir}/pthread_allocimpl.h \ - ${bits_srcdir}/stream_iterator.h \ - ${bits_srcdir}/streambuf_iterator.h \ - ${bits_srcdir}/slice.h \ - ${bits_srcdir}/slice_array.h \ - ${bits_srcdir}/sstream.tcc \ - ${bits_srcdir}/std_algorithm.h \ - ${bits_srcdir}/std_bitset.h \ - ${bits_srcdir}/std_complex.h \ - ${bits_srcdir}/std_deque.h \ - ${bits_srcdir}/std_fstream.h \ - ${bits_srcdir}/std_functional.h \ - ${bits_srcdir}/std_iomanip.h \ - ${bits_srcdir}/std_ios.h \ - ${bits_srcdir}/std_iosfwd.h \ - ${bits_srcdir}/std_iostream.h \ - ${bits_srcdir}/std_istream.h \ - ${bits_srcdir}/std_iterator.h \ - ${bits_srcdir}/std_list.h \ - ${bits_srcdir}/std_locale.h \ - ${bits_srcdir}/std_map.h \ - ${bits_srcdir}/std_memory.h \ - ${bits_srcdir}/std_numeric.h \ - ${bits_srcdir}/std_ostream.h \ - ${bits_srcdir}/std_queue.h \ - ${bits_srcdir}/std_set.h \ - ${bits_srcdir}/std_sstream.h \ - ${bits_srcdir}/std_stack.h \ - ${bits_srcdir}/std_stdexcept.h \ - ${bits_srcdir}/std_streambuf.h \ - ${bits_srcdir}/std_string.h \ - ${bits_srcdir}/std_utility.h \ - ${bits_srcdir}/std_valarray.h \ - ${bits_srcdir}/std_vector.h \ - ${bits_srcdir}/stl_algo.h \ - ${bits_srcdir}/stl_algobase.h \ - ${bits_srcdir}/stl_alloc.h \ - ${bits_srcdir}/stl_bvector.h \ - ${bits_srcdir}/stl_construct.h \ - ${bits_srcdir}/stl_deque.h \ - ${bits_srcdir}/stl_function.h \ - ${bits_srcdir}/stl_heap.h \ - ${bits_srcdir}/stl_iterator.h \ - ${bits_srcdir}/stl_iterator_base_funcs.h \ - ${bits_srcdir}/stl_iterator_base_types.h \ - ${bits_srcdir}/stl_list.h \ - ${bits_srcdir}/stl_map.h \ - ${bits_srcdir}/stl_multimap.h \ - ${bits_srcdir}/stl_multiset.h \ - ${bits_srcdir}/stl_numeric.h \ - ${bits_srcdir}/stl_pair.h \ - ${bits_srcdir}/stl_pthread_alloc.h \ - ${bits_srcdir}/stl_queue.h \ - ${bits_srcdir}/stl_raw_storage_iter.h \ - ${bits_srcdir}/stl_relops.h \ - ${bits_srcdir}/stl_set.h \ - ${bits_srcdir}/stl_stack.h \ - ${bits_srcdir}/stl_tempbuf.h \ - ${bits_srcdir}/stl_threads.h \ - ${bits_srcdir}/stl_tree.h \ - ${bits_srcdir}/stl_uninitialized.h \ - ${bits_srcdir}/stl_vector.h \ - ${bits_srcdir}/streambuf.tcc \ - ${bits_srcdir}/stringfwd.h \ - ${bits_srcdir}/type_traits.h \ - ${bits_srcdir}/valarray_array.h \ - ${bits_srcdir}/valarray_array.tcc \ - ${bits_srcdir}/valarray_meta.h +bits_headers = ${bits_srcdir}/basic_file.h ${bits_srcdir}/basic_ios.h ${bits_srcdir}/basic_ios.tcc ${bits_srcdir}/basic_string.h ${bits_srcdir}/basic_string.tcc ${bits_srcdir}/boost_concept_check.h ${bits_srcdir}/char_traits.h ${bits_srcdir}/codecvt.h ${bits_srcdir}/concept_check.h ${bits_srcdir}/cpp_type_traits.h ${bits_srcdir}/fpos.h ${bits_srcdir}/fstream.tcc ${bits_srcdir}/functexcept.h ${bits_srcdir}/generic_shadow.h ${bits_srcdir}/gslice.h ${bits_srcdir}/gslice_array.h ${bits_srcdir}/indirect_array.h ${bits_srcdir}/ios_base.h ${bits_srcdir}/istream.tcc ${bits_srcdir}/locale_facets.h ${bits_srcdir}/locale_facets.tcc ${bits_srcdir}/localefwd.h ${bits_srcdir}/mask_array.h ${bits_srcdir}/ostream.tcc ${bits_srcdir}/pthread_allocimpl.h ${bits_srcdir}/stream_iterator.h ${bits_srcdir}/streambuf_iterator.h ${bits_srcdir}/slice.h ${bits_srcdir}/slice_array.h ${bits_srcdir}/sstream.tcc ${bits_srcdir}/std_algorithm.h ${bits_srcdir}/std_bitset.h ${bits_srcdir}/std_complex.h ${bits_srcdir}/std_deque.h ${bits_srcdir}/std_fstream.h ${bits_srcdir}/std_functional.h ${bits_srcdir}/std_iomanip.h ${bits_srcdir}/std_ios.h ${bits_srcdir}/std_iosfwd.h ${bits_srcdir}/std_iostream.h ${bits_srcdir}/std_istream.h ${bits_srcdir}/std_iterator.h ${bits_srcdir}/std_list.h ${bits_srcdir}/std_locale.h ${bits_srcdir}/std_map.h ${bits_srcdir}/std_memory.h ${bits_srcdir}/std_numeric.h ${bits_srcdir}/std_ostream.h ${bits_srcdir}/std_queue.h ${bits_srcdir}/std_set.h ${bits_srcdir}/std_sstream.h ${bits_srcdir}/std_stack.h ${bits_srcdir}/std_stdexcept.h ${bits_srcdir}/std_streambuf.h ${bits_srcdir}/std_string.h ${bits_srcdir}/std_utility.h ${bits_srcdir}/std_valarray.h ${bits_srcdir}/std_vector.h ${bits_srcdir}/stl_algo.h ${bits_srcdir}/stl_algobase.h ${bits_srcdir}/stl_alloc.h ${bits_srcdir}/stl_bvector.h ${bits_srcdir}/stl_construct.h ${bits_srcdir}/stl_deque.h ${bits_srcdir}/stl_function.h ${bits_srcdir}/stl_heap.h ${bits_srcdir}/stl_iterator.h ${bits_srcdir}/stl_iterator_base_funcs.h ${bits_srcdir}/stl_iterator_base_types.h ${bits_srcdir}/stl_list.h ${bits_srcdir}/stl_map.h ${bits_srcdir}/stl_multimap.h ${bits_srcdir}/stl_multiset.h ${bits_srcdir}/stl_numeric.h ${bits_srcdir}/stl_pair.h ${bits_srcdir}/stl_pthread_alloc.h ${bits_srcdir}/stl_queue.h ${bits_srcdir}/stl_raw_storage_iter.h ${bits_srcdir}/stl_relops.h ${bits_srcdir}/stl_set.h ${bits_srcdir}/stl_stack.h ${bits_srcdir}/stl_tempbuf.h ${bits_srcdir}/stl_threads.h ${bits_srcdir}/stl_tree.h ${bits_srcdir}/stl_uninitialized.h ${bits_srcdir}/stl_vector.h ${bits_srcdir}/streambuf.tcc ${bits_srcdir}/stringfwd.h ${bits_srcdir}/type_traits.h ${bits_srcdir}/valarray_array.h ${bits_srcdir}/valarray_array.tcc ${bits_srcdir}/valarray_meta.h backward_srcdir = ${glibcpp_srcdir}/include/backward backward_builddir = ./backward -backward_headers = \ - ${backward_srcdir}/complex.h \ - ${backward_srcdir}/iomanip.h \ - ${backward_srcdir}/istream.h \ - ${backward_srcdir}/ostream.h \ - ${backward_srcdir}/stream.h \ - ${backward_srcdir}/streambuf.h \ - ${backward_srcdir}/algo.h \ - ${backward_srcdir}/algobase.h \ - ${backward_srcdir}/alloc.h \ - ${backward_srcdir}/bvector.h \ - ${backward_srcdir}/defalloc.h \ - ${backward_srcdir}/deque.h \ - ${backward_srcdir}/function.h \ - ${backward_srcdir}/hash_map.h \ - ${backward_srcdir}/hash_set.h \ - ${backward_srcdir}/hashtable.h \ - ${backward_srcdir}/heap.h \ - ${backward_srcdir}/iostream.h \ - ${backward_srcdir}/iterator.h \ - ${backward_srcdir}/list.h \ - ${backward_srcdir}/map.h \ - ${backward_srcdir}/multimap.h \ - ${backward_srcdir}/new.h \ - ${backward_srcdir}/multiset.h \ - ${backward_srcdir}/pair.h \ - ${backward_srcdir}/queue.h \ - ${backward_srcdir}/rope.h \ - ${backward_srcdir}/set.h \ - ${backward_srcdir}/slist.h \ - ${backward_srcdir}/stack.h \ - ${backward_srcdir}/tempbuf.h \ - ${backward_srcdir}/tree.h \ - ${backward_srcdir}/vector.h \ - ${backward_srcdir}/fstream.h \ - ${backward_srcdir}/strstream.h \ - ${backward_srcdir}/strstream \ - ${backward_srcdir}/backward_warning.h +backward_headers = ${backward_srcdir}/complex.h ${backward_srcdir}/iomanip.h ${backward_srcdir}/istream.h ${backward_srcdir}/ostream.h ${backward_srcdir}/stream.h ${backward_srcdir}/streambuf.h ${backward_srcdir}/algo.h ${backward_srcdir}/algobase.h ${backward_srcdir}/alloc.h ${backward_srcdir}/bvector.h ${backward_srcdir}/defalloc.h ${backward_srcdir}/deque.h ${backward_srcdir}/function.h ${backward_srcdir}/hash_map.h ${backward_srcdir}/hash_set.h ${backward_srcdir}/hashtable.h ${backward_srcdir}/heap.h ${backward_srcdir}/iostream.h ${backward_srcdir}/iterator.h ${backward_srcdir}/list.h ${backward_srcdir}/map.h ${backward_srcdir}/multimap.h ${backward_srcdir}/new.h ${backward_srcdir}/multiset.h ${backward_srcdir}/pair.h ${backward_srcdir}/queue.h ${backward_srcdir}/rope.h ${backward_srcdir}/set.h ${backward_srcdir}/slist.h ${backward_srcdir}/stack.h ${backward_srcdir}/tempbuf.h ${backward_srcdir}/tree.h ${backward_srcdir}/vector.h ${backward_srcdir}/fstream.h ${backward_srcdir}/strstream.h ${backward_srcdir}/strstream ${backward_srcdir}/backward_warning.h ext_srcdir = ${glibcpp_srcdir}/include/ext ext_builddir = ./ext -ext_headers = \ - ${ext_srcdir}/rope \ - ${ext_srcdir}/ropeimpl.h \ - ${ext_srcdir}/stl_rope.h \ - ${ext_srcdir}/slist \ - ${ext_srcdir}/hash_map \ - ${ext_srcdir}/hash_set \ - ${ext_srcdir}/stl_hashtable.h \ - ${ext_srcdir}/stl_hash_fun.h +ext_headers = ${ext_srcdir}/rope ${ext_srcdir}/ropeimpl.h ${ext_srcdir}/stl_rope.h ${ext_srcdir}/slist ${ext_srcdir}/hash_map ${ext_srcdir}/hash_set ${ext_srcdir}/stl_hashtable.h ${ext_srcdir}/stl_hash_fun.h # This is the common subset of files that all three "C" header models use. c_base_srcdir = @C_INCLUDE_DIR@/bits c_base_builddir = ./bits -c_base_headers = \ - ${c_base_srcdir}/std_cassert.h \ - ${c_base_srcdir}/std_cctype.h \ - ${c_base_srcdir}/std_cerrno.h \ - ${c_base_srcdir}/std_cfloat.h \ - ${c_base_srcdir}/std_climits.h \ - ${c_base_srcdir}/std_clocale.h \ - ${c_base_srcdir}/std_cmath.h \ - ${c_base_srcdir}/std_csetjmp.h \ - ${c_base_srcdir}/std_csignal.h \ - ${c_base_srcdir}/std_cstdarg.h \ - ${c_base_srcdir}/std_cstddef.h \ - ${c_base_srcdir}/std_cstdio.h \ - ${c_base_srcdir}/std_cstdlib.h \ - ${c_base_srcdir}/std_cstring.h \ - ${c_base_srcdir}/std_ctime.h \ - ${c_base_srcdir}/std_cwchar.h \ - ${c_base_srcdir}/std_cwctype.h \ - ${c_base_srcdir}/cmath.tcc +c_base_headers = ${c_base_srcdir}/std_cassert.h ${c_base_srcdir}/std_cctype.h ${c_base_srcdir}/std_cerrno.h ${c_base_srcdir}/std_cfloat.h ${c_base_srcdir}/std_climits.h ${c_base_srcdir}/std_clocale.h ${c_base_srcdir}/std_cmath.h ${c_base_srcdir}/std_csetjmp.h ${c_base_srcdir}/std_csignal.h ${c_base_srcdir}/std_cstdarg.h ${c_base_srcdir}/std_cstddef.h ${c_base_srcdir}/std_cstdio.h ${c_base_srcdir}/std_cstdlib.h ${c_base_srcdir}/std_cstring.h ${c_base_srcdir}/std_ctime.h ${c_base_srcdir}/std_cwchar.h ${c_base_srcdir}/std_cwctype.h ${c_base_srcdir}/cmath.tcc std_srcdir = ${glibcpp_srcdir}/include/std std_builddir = ./ -std_headers = \ - ${std_srcdir}/algorithm \ - ${std_srcdir}/bitset \ - ${std_srcdir}/complex \ - ${std_srcdir}/deque \ - ${std_srcdir}/fstream \ - ${std_srcdir}/functional \ - ${std_srcdir}/iomanip \ - ${std_srcdir}/ios \ - ${std_srcdir}/iosfwd \ - ${std_srcdir}/iostream \ - ${std_srcdir}/istream \ - ${std_srcdir}/iterator \ - ${std_srcdir}/limits \ - ${std_srcdir}/list \ - ${std_srcdir}/locale \ - ${std_srcdir}/map \ - ${std_srcdir}/memory \ - ${std_srcdir}/numeric \ - ${std_srcdir}/ostream \ - ${std_srcdir}/queue \ - ${std_srcdir}/set \ - ${std_srcdir}/sstream \ - ${std_srcdir}/stack \ - ${std_srcdir}/stdexcept \ - ${std_srcdir}/streambuf \ - ${std_srcdir}/string \ - ${std_srcdir}/utility \ - ${std_srcdir}/valarray \ - ${std_srcdir}/vector \ - ${std_srcdir}/cassert \ - ${std_srcdir}/cctype \ - ${std_srcdir}/cerrno \ - ${std_srcdir}/cfloat \ - ${std_srcdir}/climits \ - ${std_srcdir}/clocale \ - ${std_srcdir}/ciso646 \ - ${std_srcdir}/cmath \ - ${std_srcdir}/csetjmp \ - ${std_srcdir}/csignal \ - ${std_srcdir}/cstdarg \ - ${std_srcdir}/cstddef \ - ${std_srcdir}/cstdio \ - ${std_srcdir}/cstdlib \ - ${std_srcdir}/cstring \ - ${std_srcdir}/ctime \ - ${std_srcdir}/cwchar \ - ${std_srcdir}/cwctype +std_headers = ${std_srcdir}/algorithm ${std_srcdir}/bitset ${std_srcdir}/complex ${std_srcdir}/deque ${std_srcdir}/fstream ${std_srcdir}/functional ${std_srcdir}/iomanip ${std_srcdir}/ios ${std_srcdir}/iosfwd ${std_srcdir}/iostream ${std_srcdir}/istream ${std_srcdir}/iterator ${std_srcdir}/limits ${std_srcdir}/list ${std_srcdir}/locale ${std_srcdir}/map ${std_srcdir}/memory ${std_srcdir}/numeric ${std_srcdir}/ostream ${std_srcdir}/queue ${std_srcdir}/set ${std_srcdir}/sstream ${std_srcdir}/stack ${std_srcdir}/stdexcept ${std_srcdir}/streambuf ${std_srcdir}/string ${std_srcdir}/utility ${std_srcdir}/valarray ${std_srcdir}/vector ${std_srcdir}/cassert ${std_srcdir}/cctype ${std_srcdir}/cerrno ${std_srcdir}/cfloat ${std_srcdir}/climits ${std_srcdir}/clocale ${std_srcdir}/ciso646 ${std_srcdir}/cmath ${std_srcdir}/csetjmp ${std_srcdir}/csignal ${std_srcdir}/cstdarg ${std_srcdir}/cstddef ${std_srcdir}/cstdio ${std_srcdir}/cstdlib ${std_srcdir}/cstring ${std_srcdir}/ctime ${std_srcdir}/cwchar ${std_srcdir}/cwctype target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@ target_builddir = ./${target_alias}/bits -target_headers = \ - ${target_srcdir}/ctype_base.h \ - ${target_srcdir}/ctype_inline.h \ - ${target_srcdir}/ctype_noninline.h \ - ${target_srcdir}/os_defines.h \ - ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h +target_headers = ${target_srcdir}/ctype_base.h ${target_srcdir}/ctype_inline.h ${target_srcdir}/ctype_noninline.h ${target_srcdir}/os_defines.h ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h thread_builddir = ./${target_alias}/bits -thread_headers = \ - ${thread_builddir}/gthr.h \ - ${thread_builddir}/gthr-single.h \ - ${thread_builddir}/gthr-default.h +thread_headers = ${thread_builddir}/gthr.h ${thread_builddir}/gthr-single.h ${thread_builddir}/gthr-default.h # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. # XXX stamp-c_compatibility -allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \ - stamp-target stamp-thread stamp-file_model stamp-io stamp-locale +allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext stamp-target stamp-thread stamp-file_model stamp-io stamp-locale # By adding these files here, automake will remove them for 'make clean' diff --git a/libstdc++-v3/include/backward/iterator.h b/libstdc++-v3/include/backward/iterator.h index 8cb2878..d213c1d 100644 --- a/libstdc++-v3/include/backward/iterator.h +++ b/libstdc++-v3/include/backward/iterator.h @@ -54,9 +54,20 @@ using std::random_access_iterator; using std::iterator_traits; -using std::iterator_category; -using std::distance_type; -using std::value_type; +template <class _Iter> + inline typename iterator_traits<_Iter>::iterator_category + iterator_category(const _Iter& __i) + { return __iterator_category(__i); } + +template <class _Iter> + inline typename iterator_traits<_Iter>::difference_type* + distance_type(const _Iter&) + { return static_cast<typename iterator_traits<_Iter>::difference_type*>(0); } + +template<class _Iter> + inline typename iterator_traits<_Iter>::value_type* + value_type(const _Iter& __i) + { return static_cast<typename iterator_traits<_Iter>::value_type*>(0); } using std::distance; using std::advance; diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index 8498ca5..353e421 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -67,3601 +67,3535 @@ namespace std { -// __median (an extension, not present in the C++ standard). + // __median (an extension, not present in the C++ standard). + + template<typename _Tp> + inline const _Tp& + __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) + { + // concept requirements + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + if (__a < __b) + if (__b < __c) + return __b; + else if (__a < __c) + return __c; + else + return __a; + else if (__a < __c) + return __a; + else if (__b < __c) + return __c; + else + return __b; + } + + template<typename _Tp, typename _Compare> + inline const _Tp& + __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_BinaryFunctionConcept<_Compare, bool, _Tp, _Tp>); + if (__comp(__a, __b)) + if (__comp(__b, __c)) + return __b; + else if (__comp(__a, __c)) + return __c; + else + return __a; + else if (__comp(__a, __c)) + return __a; + else if (__comp(__b, __c)) + return __c; + else + return __b; + } + + // for_each. Apply a function to every element of a range. + template<typename _InputIter, typename _Function> + _Function + for_each(_InputIter __first, _InputIter __last, _Function __f) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + for ( ; __first != __last; ++__first) + __f(*__first); + return __f; + } + + // find and find_if. + + template<typename _InputIter, typename _Tp> + inline _InputIter + find(_InputIter __first, _InputIter __last, + const _Tp& __val, + input_iterator_tag) + { + while (__first != __last && !(*__first == __val)) + ++__first; + return __first; + } -template <class _Tp> -inline const _Tp& __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) -{ - // concept requirements - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - if (__a < __b) - if (__b < __c) - return __b; - else if (__a < __c) - return __c; - else - return __a; - else if (__a < __c) - return __a; - else if (__b < __c) - return __c; - else - return __b; -} - -template <class _Tp, class _Compare> -inline const _Tp& -__median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_BinaryFunctionConcept<_Compare, bool, _Tp, _Tp>); - if (__comp(__a, __b)) - if (__comp(__b, __c)) - return __b; - else if (__comp(__a, __c)) - return __c; - else - return __a; - else if (__comp(__a, __c)) - return __a; - else if (__comp(__b, __c)) - return __c; - else - return __b; -} - -// for_each. Apply a function to every element of a range. -template <class _InputIter, class _Function> -_Function for_each(_InputIter __first, _InputIter __last, _Function __f) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - for ( ; __first != __last; ++__first) - __f(*__first); - return __f; -} - -// find and find_if. - -template <class _InputIter, class _Tp> -inline _InputIter find(_InputIter __first, _InputIter __last, - const _Tp& __val, - input_iterator_tag) -{ - while (__first != __last && !(*__first == __val)) - ++__first; - return __first; -} - -template <class _InputIter, class _Predicate> -inline _InputIter find_if(_InputIter __first, _InputIter __last, - _Predicate __pred, - input_iterator_tag) -{ - while (__first != __last && !__pred(*__first)) - ++__first; - return __first; -} - -template <class _RandomAccessIter, class _Tp> -_RandomAccessIter find(_RandomAccessIter __first, _RandomAccessIter __last, - const _Tp& __val, - random_access_iterator_tag) -{ - typename iterator_traits<_RandomAccessIter>::difference_type __trip_count - = (__last - __first) >> 2; - - for ( ; __trip_count > 0 ; --__trip_count) { - if (*__first == __val) return __first; - ++__first; - - if (*__first == __val) return __first; - ++__first; - - if (*__first == __val) return __first; - ++__first; - - if (*__first == __val) return __first; - ++__first; - } - - switch(__last - __first) { - case 3: - if (*__first == __val) return __first; - ++__first; - case 2: - if (*__first == __val) return __first; - ++__first; - case 1: - if (*__first == __val) return __first; - ++__first; - case 0: - default: - return __last; - } -} - -template <class _RandomAccessIter, class _Predicate> -_RandomAccessIter find_if(_RandomAccessIter __first, _RandomAccessIter __last, - _Predicate __pred, - random_access_iterator_tag) -{ - typename iterator_traits<_RandomAccessIter>::difference_type __trip_count - = (__last - __first) >> 2; - - for ( ; __trip_count > 0 ; --__trip_count) { - if (__pred(*__first)) return __first; - ++__first; - - if (__pred(*__first)) return __first; - ++__first; - - if (__pred(*__first)) return __first; - ++__first; - - if (__pred(*__first)) return __first; - ++__first; - } - - switch(__last - __first) { - case 3: - if (__pred(*__first)) return __first; - ++__first; - case 2: - if (__pred(*__first)) return __first; - ++__first; - case 1: - if (__pred(*__first)) return __first; - ++__first; - case 0: - default: - return __last; - } -} - -template <class _InputIter, class _Tp> -inline _InputIter find(_InputIter __first, _InputIter __last, - const _Tp& __val) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIter>::value_type, _Tp>); - return find(__first, __last, __val, __iterator_category(__first)); -} - -template <class _InputIter, class _Predicate> -inline _InputIter find_if(_InputIter __first, _InputIter __last, - _Predicate __pred) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_InputIter>::value_type>); - return find_if(__first, __last, __pred, __iterator_category(__first)); -} + template<typename _InputIter, typename _Predicate> + inline _InputIter + find_if(_InputIter __first, _InputIter __last, + _Predicate __pred, + input_iterator_tag) + { + while (__first != __last && !__pred(*__first)) + ++__first; + return __first; + } -// adjacent_find. + template<typename _RandomAccessIter, typename _Tp> + _RandomAccessIter + find(_RandomAccessIter __first, _RandomAccessIter __last, + const _Tp& __val, + random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIter>::difference_type __trip_count + = (__last - __first) >> 2; -template <class _ForwardIter> -_ForwardIter adjacent_find(_ForwardIter __first, _ForwardIter __last) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_ForwardIter>::value_type>); - if (__first == __last) - return __last; - _ForwardIter __next = __first; - while(++__next != __last) { - if (*__first == *__next) - return __first; - __first = __next; - } - return __last; -} - -template <class _ForwardIter, class _BinaryPredicate> -_ForwardIter adjacent_find(_ForwardIter __first, _ForwardIter __last, - _BinaryPredicate __binary_pred) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, - typename iterator_traits<_ForwardIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - if (__first == __last) - return __last; - _ForwardIter __next = __first; - while(++__next != __last) { - if (__binary_pred(*__first, *__next)) - return __first; - __first = __next; - } - return __last; -} - -// count and count_if. There are two version of each, one whose return type -// type is void and one (present only if we have partial specialization) -// whose return type is iterator_traits<_InputIter>::difference_type. The -// C++ standard only has the latter version, but the former, which was present -// in the HP STL, is retained for backward compatibility. - -template <class _InputIter, class _Tp, class _Size> -void count(_InputIter __first, _InputIter __last, const _Tp& __value, - _Size& __n) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_InputIter>::value_type >); - __glibcpp_function_requires(_EqualityComparableConcept<_Tp>); - for ( ; __first != __last; ++__first) - if (*__first == __value) - ++__n; -} - -template <class _InputIter, class _Predicate, class _Size> -void count_if(_InputIter __first, _InputIter __last, _Predicate __pred, - _Size& __n) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_InputIter>::value_type>); - for ( ; __first != __last; ++__first) - if (__pred(*__first)) - ++__n; -} - -template <class _InputIter, class _Tp> -typename iterator_traits<_InputIter>::difference_type -count(_InputIter __first, _InputIter __last, const _Tp& __value) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_InputIter>::value_type >); - __glibcpp_function_requires(_EqualityComparableConcept<_Tp>); - typename iterator_traits<_InputIter>::difference_type __n = 0; - for ( ; __first != __last; ++__first) - if (*__first == __value) - ++__n; - return __n; -} - -template <class _InputIter, class _Predicate> -typename iterator_traits<_InputIter>::difference_type -count_if(_InputIter __first, _InputIter __last, _Predicate __pred) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_InputIter>::value_type>); - typename iterator_traits<_InputIter>::difference_type __n = 0; - for ( ; __first != __last; ++__first) - if (__pred(*__first)) - ++__n; - return __n; -} - - -// search. - -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_ForwardIter1>::value_type, - typename iterator_traits<_ForwardIter2>::value_type>); + for ( ; __trip_count > 0 ; --__trip_count) { + if (*__first == __val) return __first; + ++__first; + + if (*__first == __val) return __first; + ++__first; - // Test for empty ranges - if (__first1 == __last1 || __first2 == __last2) - return __first1; + if (*__first == __val) return __first; + ++__first; - // Test for a pattern of length 1. - _ForwardIter2 __tmp(__first2); - ++__tmp; - if (__tmp == __last2) - return find(__first1, __last1, *__first2); + if (*__first == __val) return __first; + ++__first; + } - // General case. + switch(__last - __first) { + case 3: + if (*__first == __val) return __first; + ++__first; + case 2: + if (*__first == __val) return __first; + ++__first; + case 1: + if (*__first == __val) return __first; + ++__first; + case 0: + default: + return __last; + } + } - _ForwardIter2 __p1, __p; + template<typename _RandomAccessIter, typename _Predicate> + _RandomAccessIter + find_if(_RandomAccessIter __first, _RandomAccessIter __last, + _Predicate __pred, + random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIter>::difference_type __trip_count + = (__last - __first) >> 2; - __p1 = __first2; ++__p1; + for ( ; __trip_count > 0 ; --__trip_count) { + if (__pred(*__first)) return __first; + ++__first; - _ForwardIter1 __current = __first1; + if (__pred(*__first)) return __first; + ++__first; - while (__first1 != __last1) { - __first1 = find(__first1, __last1, *__first2); - if (__first1 == __last1) - return __last1; + if (__pred(*__first)) return __first; + ++__first; - __p = __p1; - __current = __first1; - if (++__current == __last1) - return __last1; + if (__pred(*__first)) return __first; + ++__first; + } - while (*__current == *__p) { - if (++__p == __last2) - return __first1; - if (++__current == __last1) - return __last1; + switch(__last - __first) { + case 3: + if (__pred(*__first)) return __first; + ++__first; + case 2: + if (__pred(*__first)) return __first; + ++__first; + case 1: + if (__pred(*__first)) return __first; + ++__first; + case 0: + default: + return __last; + } } - ++__first1; - } - return __first1; -} + template<typename _InputIter, typename _Tp> + inline _InputIter + find(_InputIter __first, _InputIter __last, + const _Tp& __val) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_InputIter>::value_type, _Tp>); + return find(__first, __last, __val, __iterator_category(__first)); + } + + template<typename _InputIter, typename _Predicate> + inline _InputIter + find_if(_InputIter __first, _InputIter __last, + _Predicate __pred) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_InputIter>::value_type>); + return find_if(__first, __last, __pred, __iterator_category(__first)); + } + + // adjacent_find. + + template<typename _ForwardIter> + _ForwardIter + adjacent_find(_ForwardIter __first, _ForwardIter __last) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_ForwardIter>::value_type>); + if (__first == __last) + return __last; + _ForwardIter __next = __first; + while(++__next != __last) { + if (*__first == *__next) + return __first; + __first = __next; + } + return __last; + } + + template<typename _ForwardIter, typename _BinaryPredicate> + _ForwardIter + adjacent_find(_ForwardIter __first, _ForwardIter __last, + _BinaryPredicate __binary_pred) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, + typename iterator_traits<_ForwardIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + if (__first == __last) + return __last; + _ForwardIter __next = __first; + while(++__next != __last) { + if (__binary_pred(*__first, *__next)) + return __first; + __first = __next; + } + return __last; + } + + // count and count_if. There are two version of each, one whose return type + // type is void and one (present only if we have partial specialization) + // whose return type is iterator_traits<_InputIter>::difference_type. The + // C++ standard only has the latter version, but the former, which was present + // in the HP STL, is retained for backward compatibility. + + template<typename _InputIter, typename _Tp, typename _Size> + void + count(_InputIter __first, _InputIter __last, + const _Tp& __value, + _Size& __n) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_InputIter>::value_type >); + __glibcpp_function_requires(_EqualityComparableConcept<_Tp>); + for ( ; __first != __last; ++__first) + if (*__first == __value) + ++__n; + } + + template<typename _InputIter, typename _Predicate, typename _Size> + void + count_if(_InputIter __first, _InputIter __last, + _Predicate __pred, + _Size& __n) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_InputIter>::value_type>); + for ( ; __first != __last; ++__first) + if (__pred(*__first)) + ++__n; + } + + template<typename _InputIter, typename _Tp> + typename iterator_traits<_InputIter>::difference_type + count(_InputIter __first, _InputIter __last, const _Tp& __value) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_InputIter>::value_type >); + __glibcpp_function_requires(_EqualityComparableConcept<_Tp>); + typename iterator_traits<_InputIter>::difference_type __n = 0; + for ( ; __first != __last; ++__first) + if (*__first == __value) + ++__n; + return __n; + } + + template<typename _InputIter, typename _Predicate> + typename iterator_traits<_InputIter>::difference_type + count_if(_InputIter __first, _InputIter __last, _Predicate __pred) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_InputIter>::value_type>); + typename iterator_traits<_InputIter>::difference_type __n = 0; + for ( ; __first != __last; ++__first) + if (__pred(*__first)) + ++__n; + return __n; + } + + + // search. + + template<typename _ForwardIter1, typename _ForwardIter2> + _ForwardIter1 + search(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2, _ForwardIter2 __last2) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_ForwardIter1>::value_type, + typename iterator_traits<_ForwardIter2>::value_type>); + + // Test for empty ranges + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + // Test for a pattern of length 1. + _ForwardIter2 __tmp(__first2); + ++__tmp; + if (__tmp == __last2) + return find(__first1, __last1, *__first2); + + // General case. + + _ForwardIter2 __p1, __p; + + __p1 = __first2; ++__p1; + + _ForwardIter1 __current = __first1; + + while (__first1 != __last1) { + __first1 = find(__first1, __last1, *__first2); + if (__first1 == __last1) + return __last1; + + __p = __p1; + __current = __first1; + if (++__current == __last1) + return __last1; + + while (*__current == *__p) { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + + ++__first1; + } + return __first1; + } + + template<typename _ForwardIter1, typename _ForwardIter2, typename _BinaryPred> + _ForwardIter1 + search(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2, _ForwardIter2 __last2, + _BinaryPred __predicate) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPred, + typename iterator_traits<_ForwardIter1>::value_type, + typename iterator_traits<_ForwardIter2>::value_type>); + + // Test for empty ranges + if (__first1 == __last1 || __first2 == __last2) + return __first1; + + // Test for a pattern of length 1. + _ForwardIter2 __tmp(__first2); + ++__tmp; + if (__tmp == __last2) { + while (__first1 != __last1 && !__predicate(*__first1, *__first2)) + ++__first1; + return __first1; + } -template <class _ForwardIter1, class _ForwardIter2, class _BinaryPred> -_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - _BinaryPred __predicate) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPred, - typename iterator_traits<_ForwardIter1>::value_type, - typename iterator_traits<_ForwardIter2>::value_type>); - - // Test for empty ranges - if (__first1 == __last1 || __first2 == __last2) - return __first1; - - // Test for a pattern of length 1. - _ForwardIter2 __tmp(__first2); - ++__tmp; - if (__tmp == __last2) { - while (__first1 != __last1 && !__predicate(*__first1, *__first2)) - ++__first1; - return __first1; - } - - // General case. - - _ForwardIter2 __p1, __p; - - __p1 = __first2; ++__p1; - - _ForwardIter1 __current = __first1; - - while (__first1 != __last1) { - while (__first1 != __last1) { - if (__predicate(*__first1, *__first2)) - break; - ++__first1; - } - while (__first1 != __last1 && !__predicate(*__first1, *__first2)) - ++__first1; - if (__first1 == __last1) - return __last1; + // General case. - __p = __p1; - __current = __first1; - if (++__current == __last1) return __last1; + _ForwardIter2 __p1, __p; - while (__predicate(*__current, *__p)) { - if (++__p == __last2) - return __first1; - if (++__current == __last1) - return __last1; - } + __p1 = __first2; ++__p1; - ++__first1; - } - return __first1; -} + _ForwardIter1 __current = __first1; -// search_n. Search for __count consecutive copies of __val. + while (__first1 != __last1) { + while (__first1 != __last1) { + if (__predicate(*__first1, *__first2)) + break; + ++__first1; + } + while (__first1 != __last1 && !__predicate(*__first1, *__first2)) + ++__first1; + if (__first1 == __last1) + return __last1; -template <class _ForwardIter, class _Integer, class _Tp> -_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_EqualityComparableConcept<_Tp>); - - if (__count <= 0) - return __first; - else { - __first = find(__first, __last, __val); - while (__first != __last) { - _Integer __n = __count - 1; - _ForwardIter __i = __first; - ++__i; - while (__i != __last && __n != 0 && *__i == __val) { - ++__i; - --__n; + __p = __p1; + __current = __first1; + if (++__current == __last1) return __last1; + + while (__predicate(*__current, *__p)) { + if (++__p == __last2) + return __first1; + if (++__current == __last1) + return __last1; + } + + ++__first1; } - if (__n == 0) - return __first; - else - __first = find(__i, __last, __val); + return __first1; } - return __last; - } -} -template <class _ForwardIter, class _Integer, class _Tp, class _BinaryPred> -_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val, - _BinaryPred __binary_pred) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPred, - typename iterator_traits<_ForwardIter>::value_type, _Tp>); - - if (__count <= 0) - return __first; - else { - while (__first != __last) { - if (__binary_pred(*__first, __val)) - break; - ++__first; - } - while (__first != __last) { - _Integer __n = __count - 1; - _ForwardIter __i = __first; - ++__i; - while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) { - ++__i; - --__n; + // search_n. Search for __count consecutive copies of __val. + + template<typename _ForwardIter, typename _Integer, typename _Tp> + _ForwardIter + search_n(_ForwardIter __first, _ForwardIter __last, + _Integer __count, const _Tp& __val) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_EqualityComparableConcept<_Tp>); + + if (__count <= 0) + return __first; + else { + __first = find(__first, __last, __val); + while (__first != __last) { + _Integer __n = __count - 1; + _ForwardIter __i = __first; + ++__i; + while (__i != __last && __n != 0 && *__i == __val) { + ++__i; + --__n; + } + if (__n == 0) + return __first; + else + __first = find(__i, __last, __val); + } + return __last; } - if (__n == 0) - return __first; + } + + template<typename _ForwardIter, typename _Integer, typename _Tp, + typename _BinaryPred> + _ForwardIter + search_n(_ForwardIter __first, _ForwardIter __last, + _Integer __count, const _Tp& __val, + _BinaryPred __binary_pred) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPred, + typename iterator_traits<_ForwardIter>::value_type, _Tp>); + + if (__count <= 0) + return __first; else { - while (__i != __last) { - if (__binary_pred(*__i, __val)) - break; - ++__i; - } - __first = __i; + while (__first != __last) { + if (__binary_pred(*__first, __val)) + break; + ++__first; + } + while (__first != __last) { + _Integer __n = __count - 1; + _ForwardIter __i = __first; + ++__i; + while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) { + ++__i; + --__n; + } + if (__n == 0) + return __first; + else { + while (__i != __last) { + if (__binary_pred(*__i, __val)) + break; + ++__i; + } + __first = __i; + } + } + return __last; } + } + + // swap_ranges + + template<typename _ForwardIter1, typename _ForwardIter2> + _ForwardIter2 + swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter1>); + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter2>); + __glibcpp_function_requires(_ConvertibleConcept< + typename iterator_traits<_ForwardIter1>::value_type, + typename iterator_traits<_ForwardIter2>::value_type>); + __glibcpp_function_requires(_ConvertibleConcept< + typename iterator_traits<_ForwardIter2>::value_type, + typename iterator_traits<_ForwardIter1>::value_type>); + + for ( ; __first1 != __last1; ++__first1, ++__first2) + iter_swap(__first1, __first2); + return __first2; + } + + // transform + + template<typename _InputIter, typename _OutputIter, typename _UnaryOperation> + _OutputIter + transform(_InputIter __first, _InputIter __last, + _OutputIter __result, _UnaryOperation __unary_op) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + /* XXX + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + // should be "the type returned by _UnaryOperation" + typename iterator_traits<_InputIter>::value_type>); + */ + + for ( ; __first != __last; ++__first, ++__result) + *__result = __unary_op(*__first); + return __result; + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter, + typename _BinaryOperation> + _OutputIter + transform(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _OutputIter __result, + _BinaryOperation __binary_op) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + /* XXX + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + // should be "the type returned by _BinaryOperation" + typename iterator_traits<_InputIter1>::value_type>); + */ + + for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) + *__result = __binary_op(*__first1, *__first2); + return __result; + } + + // replace, replace_if, replace_copy, replace_copy_if + + template<typename _ForwardIter, typename _Tp> + void + replace(_ForwardIter __first, _ForwardIter __last, + const _Tp& __old_value, const _Tp& __new_value) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_ForwardIter>::value_type, _Tp>); + __glibcpp_function_requires(_ConvertibleConcept<_Tp, + typename iterator_traits<_ForwardIter>::value_type>); + + for ( ; __first != __last; ++__first) + if (*__first == __old_value) + *__first = __new_value; + } + + template<typename _ForwardIter, typename _Predicate, typename _Tp> + void + replace_if(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred, const _Tp& __new_value) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_ConvertibleConcept<_Tp, + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_ForwardIter>::value_type>); + + for ( ; __first != __last; ++__first) + if (__pred(*__first)) + *__first = __new_value; + } + + template<typename _InputIter, typename _OutputIter, typename _Tp> + _OutputIter + replace_copy(_InputIter __first, _InputIter __last, + _OutputIter __result, + const _Tp& __old_value, const _Tp& __new_value) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_InputIter>::value_type, _Tp>); + + for ( ; __first != __last; ++__first, ++__result) + *__result = *__first == __old_value ? __new_value : *__first; + return __result; + } + + template<typename _InputIter, typename _OutputIter, typename _Predicate, + typename _Tp> + _OutputIter + replace_copy_if(_InputIter __first, _InputIter __last, + _OutputIter __result, + _Predicate __pred, const _Tp& __new_value) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_InputIter>::value_type>); + + for ( ; __first != __last; ++__first, ++__result) + *__result = __pred(*__first) ? __new_value : *__first; + return __result; + } + + // generate and generate_n + + template<typename _ForwardIter, typename _Generator> + void + generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_GeneratorConcept<_Generator, + typename iterator_traits<_ForwardIter>::value_type>); + + for ( ; __first != __last; ++__first) + *__first = __gen(); + } + + template<typename _OutputIter, typename _Size, typename _Generator> + _OutputIter + generate_n(_OutputIter __first, _Size __n, _Generator __gen) + { + /* + // XXX concept requirements + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + "the return type of _Generator" ?? >); + */ + + for ( ; __n > 0; --__n, ++__first) + *__first = __gen(); + return __first; } - return __last; - } -} -// swap_ranges + // remove, remove_if, remove_copy, remove_copy_if + + template<typename _InputIter, typename _OutputIter, typename _Tp> + _OutputIter + remove_copy(_InputIter __first, _InputIter __last, + _OutputIter __result, const _Tp& __value) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_InputIter>::value_type, _Tp>); + + for ( ; __first != __last; ++__first) + if (!(*__first == __value)) { + *__result = *__first; + ++__result; + } + return __result; + } + + template<typename _InputIter, typename _OutputIter, typename _Predicate> + _OutputIter + remove_copy_if(_InputIter __first, _InputIter __last, + _OutputIter __result, _Predicate __pred) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_InputIter>::value_type>); + + for ( ; __first != __last; ++__first) + if (!__pred(*__first)) { + *__result = *__first; + ++__result; + } + return __result; + } + + template<typename _ForwardIter, typename _Tp> + _ForwardIter + remove(_ForwardIter __first, _ForwardIter __last, + const _Tp& __value) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_ConvertibleConcept<_Tp, + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_ForwardIter>::value_type, _Tp>); + + __first = find(__first, __last, __value); + _ForwardIter __i = __first; + return __first == __last ? __first + : remove_copy(++__i, __last, __first, __value); + } -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter2 swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter1>); - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter2>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_ForwardIter1>::value_type, - typename iterator_traits<_ForwardIter2>::value_type>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_ForwardIter2>::value_type, - typename iterator_traits<_ForwardIter1>::value_type>); - - for ( ; __first1 != __last1; ++__first1, ++__first2) - iter_swap(__first1, __first2); - return __first2; -} - -// transform - -template <class _InputIter, class _OutputIter, class _UnaryOperation> -_OutputIter transform(_InputIter __first, _InputIter __last, - _OutputIter __result, _UnaryOperation __unary_op) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); -/* XXX - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - // should be "the type returned by _UnaryOperation" - typename iterator_traits<_InputIter>::value_type>); -*/ - - for ( ; __first != __last; ++__first, ++__result) - *__result = __unary_op(*__first); - return __result; -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _BinaryOperation> -_OutputIter transform(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _OutputIter __result, - _BinaryOperation __binary_op) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); -/* XXX - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - // should be "the type returned by _BinaryOperation" - typename iterator_traits<_InputIter1>::value_type>); -*/ - - for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) - *__result = __binary_op(*__first1, *__first2); - return __result; -} - -// replace, replace_if, replace_copy, replace_copy_if - -template <class _ForwardIter, class _Tp> -void replace(_ForwardIter __first, _ForwardIter __last, - const _Tp& __old_value, const _Tp& __new_value) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_ForwardIter>::value_type, _Tp>); - __glibcpp_function_requires(_ConvertibleConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - - for ( ; __first != __last; ++__first) - if (*__first == __old_value) - *__first = __new_value; -} - -template <class _ForwardIter, class _Predicate, class _Tp> -void replace_if(_ForwardIter __first, _ForwardIter __last, - _Predicate __pred, const _Tp& __new_value) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_ConvertibleConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_ForwardIter>::value_type>); - - for ( ; __first != __last; ++__first) - if (__pred(*__first)) - *__first = __new_value; -} - -template <class _InputIter, class _OutputIter, class _Tp> -_OutputIter replace_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, - const _Tp& __old_value, const _Tp& __new_value) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIter>::value_type, _Tp>); - - for ( ; __first != __last; ++__first, ++__result) - *__result = *__first == __old_value ? __new_value : *__first; - return __result; -} - -template <class _InputIter, class _OutputIter, class _Predicate, class _Tp> -_OutputIter replace_copy_if(_InputIter __first, _InputIter __last, - _OutputIter __result, - _Predicate __pred, const _Tp& __new_value) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_InputIter>::value_type>); - - for ( ; __first != __last; ++__first, ++__result) - *__result = __pred(*__first) ? __new_value : *__first; - return __result; -} - -// generate and generate_n - -template <class _ForwardIter, class _Generator> -void generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_GeneratorConcept<_Generator, - typename iterator_traits<_ForwardIter>::value_type>); + template<typename _ForwardIter, typename _Predicate> + _ForwardIter + remove_if(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_ForwardIter>::value_type>); - for ( ; __first != __last; ++__first) - *__first = __gen(); -} + __first = find_if(__first, __last, __pred); + _ForwardIter __i = __first; + return __first == __last ? __first + : remove_copy_if(++__i, __last, __first, __pred); + } + + template<typename _InputIter, typename _OutputIter> + _OutputIter + __unique_copy(_InputIter __first, _InputIter __last, + _OutputIter __result, + output_iterator_tag) + { + // concept requirements -- taken care of in dispatching function + typename iterator_traits<_InputIter>::value_type __value = *__first; + *__result = __value; + while (++__first != __last) + if (!(__value == *__first)) { + __value = *__first; + *++__result = __value; + } + return ++__result; + } + + template<typename _InputIter, typename _ForwardIter> + _ForwardIter + __unique_copy(_InputIter __first, _InputIter __last, + _ForwardIter __result, + forward_iterator_tag) + { + // concept requirements -- taken care of in dispatching function + *__result = *__first; + while (++__first != __last) + if (!(*__result == *__first)) + *++__result = *__first; + return ++__result; + } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + unique_copy(_InputIter __first, _InputIter __last, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_InputIter>::value_type>); + + typedef typename iterator_traits<_OutputIter>::iterator_catgeory _IterType; + + if (__first == __last) return __result; + return __unique_copy(__first, __last, __result, _IterType()); + } + + template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> + _OutputIter + __unique_copy(_InputIter __first, _InputIter __last, + _OutputIter __result, + _BinaryPredicate __binary_pred, + output_iterator_tag) + { + // concept requirements -- iterators already checked + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, + typename iterator_traits<_InputIter>::value_type, + typename iterator_traits<_InputIter>::value_type>); + + typename iterator_traits<_InputIter>::value_type __value = *__first; + *__result = __value; + while (++__first != __last) + if (!__binary_pred(__value, *__first)) { + __value = *__first; + *++__result = __value; + } + return ++__result; + } + + template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> + _ForwardIter + __unique_copy(_InputIter __first, _InputIter __last, + _ForwardIter __result, + _BinaryPredicate __binary_pred, + forward_iterator_tag) + { + // concept requirements -- iterators already checked + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, + typename iterator_traits<_ForwardIter>::value_type, + typename iterator_traits<_InputIter>::value_type>); + + *__result = *__first; + while (++__first != __last) + if (!__binary_pred(*__result, *__first)) *++__result = *__first; + return ++__result; + } + + template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> + inline _OutputIter + unique_copy(_InputIter __first, _InputIter __last, + _OutputIter __result, + _BinaryPredicate __binary_pred) + { + // concept requirements -- predicates checked later + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + + typedef typename iterator_traits<_OutputIter>::iterator_catgeory _IterType; + + if (__first == __last) return __result; + return __unique_copy(__first, __last, __result, __binary_pred, _IterType()); + } + + template<typename _ForwardIter> + _ForwardIter + unique(_ForwardIter __first, _ForwardIter __last) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_ForwardIter>::value_type>); + + __first = adjacent_find(__first, __last); + return unique_copy(__first, __last, __first); + } + + template<typename _ForwardIter, typename _BinaryPredicate> + _ForwardIter + unique(_ForwardIter __first, _ForwardIter __last, + _BinaryPredicate __binary_pred) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, + typename iterator_traits<_ForwardIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + + __first = adjacent_find(__first, __last, __binary_pred); + return unique_copy(__first, __last, __first, __binary_pred); + } + + template<typename _BidirectionalIter> + void + __reverse(_BidirectionalIter __first, _BidirectionalIter __last, + bidirectional_iterator_tag) + { + while (true) + if (__first == __last || __first == --__last) + return; + else + iter_swap(__first++, __last); + } + + template<typename _RandomAccessIter> + void + __reverse(_RandomAccessIter __first, _RandomAccessIter __last, + random_access_iterator_tag) + { + while (__first < __last) + iter_swap(__first++, --__last); + } + + template<typename _BidirectionalIter> + inline void + reverse(_BidirectionalIter __first, _BidirectionalIter __last) + { + // concept requirements + __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< + _BidirectionalIter>); + __reverse(__first, __last, __iterator_category(__first)); + } + + template<typename _BidirectionalIter, typename _OutputIter> + _OutputIter + reverse_copy(_BidirectionalIter __first, _BidirectionalIter __last, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_BidirectionalIter>::value_type>); + + while (__first != __last) { + --__last; + *__result = *__last; + ++__result; + } + return __result; + } -template <class _OutputIter, class _Size, class _Generator> -_OutputIter generate_n(_OutputIter __first, _Size __n, _Generator __gen) -{ -/* - // XXX concept requirements - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - "the return type of _Generator" ?? >); -*/ + /// This is a helper function for the rotate algorithm specialized on RAIs. - for ( ; __n > 0; --__n, ++__first) - *__first = __gen(); - return __first; -} + template<typename _EuclideanRingElement> + _EuclideanRingElement + __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) + { + while (__n != 0) { + _EuclideanRingElement __t = __m % __n; + __m = __n; + __n = __t; + } + return __m; + } + + template<typename _ForwardIter> + void + __rotate(_ForwardIter __first, + _ForwardIter __middle, + _ForwardIter __last, + forward_iterator_tag) + { + if ((__first == __middle) || (__last == __middle)) + return; + + _ForwardIter __first2 = __middle; + do { + swap(*__first++, *__first2++); + if (__first == __middle) + __middle = __first2; + } while (__first2 != __last); + + __first2 = __middle; + + while (__first2 != __last) { + swap(*__first++, *__first2++); + if (__first == __middle) + __middle = __first2; + else if (__first2 == __last) + __first2 = __middle; + } + } + + template<typename _BidirectionalIter> + void + __rotate(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last, + bidirectional_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< + _BidirectionalIter>); + + if ((__first == __middle) || (__last == __middle)) + return; + + __reverse(__first, __middle, bidirectional_iterator_tag()); + __reverse(__middle, __last, bidirectional_iterator_tag()); + + while (__first != __middle && __middle != __last) + swap (*__first++, *--__last); + + if (__first == __middle) { + __reverse(__middle, __last, bidirectional_iterator_tag()); + } + else { + __reverse(__first, __middle, bidirectional_iterator_tag()); + } + } + + template<typename _RandomAccessIter> + void + __rotate(_RandomAccessIter __first, + _RandomAccessIter __middle, + _RandomAccessIter __last, + random_access_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + + if ((__first == __middle) || (__last == __middle)) + return; + + typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + _Distance __n = __last - __first; + _Distance __k = __middle - __first; + _Distance __l = __n - __k; + + if (__k == __l) { + swap_ranges(__first, __middle, __middle); + return; + } + + _Distance __d = __gcd(__n, __k); + + for (_Distance __i = 0; __i < __d; __i++) { + _ValueType __tmp = *__first; + _RandomAccessIter __p = __first; + + if (__k < __l) { + for (_Distance __j = 0; __j < __l/__d; __j++) { + if (__p > __first + __l) { + *__p = *(__p - __l); + __p -= __l; + } + + *__p = *(__p + __k); + __p += __k; + } + } + + else { + for (_Distance __j = 0; __j < __k/__d - 1; __j ++) { + if (__p < __last - __k) { + *__p = *(__p + __k); + __p += __k; + } + + *__p = * (__p - __l); + __p -= __l; + } + } + + *__p = __tmp; + ++__first; + } + } + + template<typename _ForwardIter> + inline void + rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + + typedef typename iterator_traits<_ForwardIter>::iterator_category _IterType; + __rotate(__first, __middle, __last, _IterType()); + } + + template<typename _ForwardIter, typename _OutputIter> + _OutputIter + rotate_copy(_ForwardIter __first, _ForwardIter __middle, + _ForwardIter __last, _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_ForwardIter>::value_type>); + + return copy(__first, __middle, copy(__middle, __last, __result)); + } + + // Return a random number in the range [0, __n). This function encapsulates + // whether we're using rand (part of the standard C library) or lrand48 + // (not standard, but a much better choice whenever it's available). + template<typename _Distance> + inline _Distance + __random_number(_Distance __n) + { + #ifdef _GLIBCPP_HAVE_DRAND48 + return lrand48() % __n; + #else + return rand() % __n; + #endif + } + + /// 25.2.11 random_shuffle(). + + template<typename _RandomAccessIter> + inline void + random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last) + { + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + + if (__first == __last) return; + for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) + iter_swap(__i, __first + __random_number((__i - __first) + 1)); + } + + template<typename _RandomAccessIter, typename _RandomNumberGenerator> + void + random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, + _RandomNumberGenerator& __rand) + { + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + + if (__first == __last) return; + for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) + iter_swap(__i, __first + __rand((__i - __first) + 1)); + } + + // random_sample and random_sample_n (extensions, not part of the standard). + + template<typename _ForwardIter, typename _OutputIter, typename _Distance> + _OutputIter + random_sample_n(_ForwardIter __first, _ForwardIter __last, + _OutputIter __out, const _Distance __n) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_ForwardIter>::value_type>); + + _Distance __remaining = distance(__first, __last); + _Distance __m = min(__n, __remaining); + + while (__m > 0) { + if (__random_number(__remaining) < __m) { + *__out = *__first; + ++__out; + --__m; + } + + --__remaining; + ++__first; + } + return __out; + } + + template<typename _ForwardIter, typename _OutputIter, typename _Distance, + typename _RandomNumberGenerator> + _OutputIter + random_sample_n(_ForwardIter __first, _ForwardIter __last, + _OutputIter __out, const _Distance __n, + _RandomNumberGenerator& __rand) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_UnaryFunctionConcept< + _RandomNumberGenerator, _Distance, _Distance>); + + _Distance __remaining = distance(__first, __last); + _Distance __m = min(__n, __remaining); + + while (__m > 0) { + if (__rand(__remaining) < __m) { + *__out = *__first; + ++__out; + --__m; + } + + --__remaining; + ++__first; + } + return __out; + } + + template<typename _InputIter, typename _RandomAccessIter, typename _Distance> + _RandomAccessIter + __random_sample(_InputIter __first, _InputIter __last, + _RandomAccessIter __out, + const _Distance __n) + { + _Distance __m = 0; + _Distance __t = __n; + for ( ; __first != __last && __m < __n; ++__m, ++__first) + __out[__m] = *__first; + + while (__first != __last) { + ++__t; + _Distance __M = __random_number(__t); + if (__M < __n) + __out[__M] = *__first; + ++__first; + } -// remove, remove_if, remove_copy, remove_copy_if + return __out + __m; + } + + template<typename _InputIter, typename _RandomAccessIter, + typename _RandomNumberGenerator, typename _Distance> + _RandomAccessIter + __random_sample(_InputIter __first, _InputIter __last, + _RandomAccessIter __out, + _RandomNumberGenerator& __rand, + const _Distance __n) + { + // concept requirements + __glibcpp_function_requires(_UnaryFunctionConcept< + _RandomNumberGenerator, _Distance, _Distance>); + + _Distance __m = 0; + _Distance __t = __n; + for ( ; __first != __last && __m < __n; ++__m, ++__first) + __out[__m] = *__first; + + while (__first != __last) { + ++__t; + _Distance __M = __rand(__t); + if (__M < __n) + __out[__M] = *__first; + ++__first; + } -template <class _InputIter, class _OutputIter, class _Tp> -_OutputIter remove_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, const _Tp& __value) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIter>::value_type, _Tp>); - - for ( ; __first != __last; ++__first) - if (!(*__first == __value)) { - *__result = *__first; - ++__result; + return __out + __m; } - return __result; -} -template <class _InputIter, class _OutputIter, class _Predicate> -_OutputIter remove_copy_if(_InputIter __first, _InputIter __last, - _OutputIter __result, _Predicate __pred) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_InputIter>::value_type>); - - for ( ; __first != __last; ++__first) - if (!__pred(*__first)) { - *__result = *__first; - ++__result; - } - return __result; -} + template<typename _InputIter, typename _RandomAccessIter> + inline _RandomAccessIter + random_sample(_InputIter __first, _InputIter __last, + _RandomAccessIter __out_first, _RandomAccessIter __out_last) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); -template <class _ForwardIter, class _Tp> -_ForwardIter remove(_ForwardIter __first, _ForwardIter __last, - const _Tp& __value) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_ConvertibleConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_ForwardIter>::value_type, _Tp>); - - __first = find(__first, __last, __value); - _ForwardIter __i = __first; - return __first == __last ? __first - : remove_copy(++__i, __last, __first, __value); -} - -template <class _ForwardIter, class _Predicate> -_ForwardIter remove_if(_ForwardIter __first, _ForwardIter __last, - _Predicate __pred) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_ForwardIter>::value_type>); - - __first = find_if(__first, __last, __pred); - _ForwardIter __i = __first; - return __first == __last ? __first - : remove_copy_if(++__i, __last, __first, __pred); -} - -// unique and unique_copy - -template <class _InputIter, class _OutputIter, class _Tp> -_OutputIter __unique_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, _Tp*) -{ - // concept requirements -- taken care of in dispatching function - _Tp __value = *__first; - *__result = __value; - while (++__first != __last) - if (!(__value == *__first)) { - __value = *__first; - *++__result = __value; - } - return ++__result; -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __unique_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, - output_iterator_tag) -{ - // concept requirements -- taken care of in dispatching function - return __unique_copy(__first, __last, __result, __value_type(__first)); -} + return __random_sample(__first, __last, + __out_first, __out_last - __out_first); + } -template <class _InputIter, class _ForwardIter> -_ForwardIter __unique_copy(_InputIter __first, _InputIter __last, - _ForwardIter __result, forward_iterator_tag) -{ - // concept requirements -- taken care of in dispatching function - *__result = *__first; - while (++__first != __last) - if (!(*__result == *__first)) - *++__result = *__first; - return ++__result; -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter unique_copy(_InputIter __first, _InputIter __last, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_InputIter>::value_type>); - - if (__first == __last) return __result; - return __unique_copy(__first, __last, __result, - __iterator_category(__result)); -} - -template <class _InputIter, class _OutputIter, class _BinaryPredicate, - class _Tp> -_OutputIter __unique_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, - _BinaryPredicate __binary_pred, _Tp*) -{ - // concept requirements -- iterators already checked - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, _Tp, _Tp>); - - _Tp __value = *__first; - *__result = __value; - while (++__first != __last) - if (!__binary_pred(__value, *__first)) { - __value = *__first; - *++__result = __value; - } - return ++__result; -} - -template <class _InputIter, class _OutputIter, class _BinaryPredicate> -inline _OutputIter __unique_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, - _BinaryPredicate __binary_pred, - output_iterator_tag) -{ - // concept requirements -- taken care of in dispatching function - return __unique_copy(__first, __last, __result, __binary_pred, - __value_type(__first)); -} - -template <class _InputIter, class _ForwardIter, class _BinaryPredicate> -_ForwardIter __unique_copy(_InputIter __first, _InputIter __last, - _ForwardIter __result, - _BinaryPredicate __binary_pred, - forward_iterator_tag) -{ - // concept requirements -- iterators already checked - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, - typename iterator_traits<_ForwardIter>::value_type, - typename iterator_traits<_InputIter>::value_type>); - - *__result = *__first; - while (++__first != __last) - if (!__binary_pred(*__result, *__first)) *++__result = *__first; - return ++__result; -} - -template <class _InputIter, class _OutputIter, class _BinaryPredicate> -inline _OutputIter unique_copy(_InputIter __first, _InputIter __last, - _OutputIter __result, - _BinaryPredicate __binary_pred) -{ - // concept requirements -- predicates checked later - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - - if (__first == __last) return __result; - return __unique_copy(__first, __last, __result, __binary_pred, - __iterator_category(__result)); -} - -template <class _ForwardIter> -_ForwardIter unique(_ForwardIter __first, _ForwardIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_ForwardIter>::value_type>); - - __first = adjacent_find(__first, __last); - return unique_copy(__first, __last, __first); -} - -template <class _ForwardIter, class _BinaryPredicate> -_ForwardIter unique(_ForwardIter __first, _ForwardIter __last, - _BinaryPredicate __binary_pred) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, - typename iterator_traits<_ForwardIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - - __first = adjacent_find(__first, __last, __binary_pred); - return unique_copy(__first, __last, __first, __binary_pred); -} - -// reverse and reverse_copy, and their auxiliary functions - -template <class _BidirectionalIter> -void __reverse(_BidirectionalIter __first, _BidirectionalIter __last, - bidirectional_iterator_tag) { - while (true) - if (__first == __last || __first == --__last) - return; - else - iter_swap(__first++, __last); -} - -template <class _RandomAccessIter> -void __reverse(_RandomAccessIter __first, _RandomAccessIter __last, - random_access_iterator_tag) { - while (__first < __last) - iter_swap(__first++, --__last); -} - -template <class _BidirectionalIter> -inline void reverse(_BidirectionalIter __first, _BidirectionalIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< - _BidirectionalIter>); - __reverse(__first, __last, __iterator_category(__first)); -} - -template <class _BidirectionalIter, class _OutputIter> -_OutputIter reverse_copy(_BidirectionalIter __first, - _BidirectionalIter __last, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_BidirectionalIter>::value_type>); - - while (__first != __last) { - --__last; - *__result = *__last; - ++__result; - } - return __result; -} - -// rotate and rotate_copy, and their auxiliary functions - -template <class _EuclideanRingElement> -_EuclideanRingElement __gcd(_EuclideanRingElement __m, - _EuclideanRingElement __n) -{ - while (__n != 0) { - _EuclideanRingElement __t = __m % __n; - __m = __n; - __n = __t; - } - return __m; -} - -template <class _ForwardIter, class _Distance> -_ForwardIter __rotate(_ForwardIter __first, - _ForwardIter __middle, - _ForwardIter __last, - _Distance*, - forward_iterator_tag) -{ - if (__first == __middle) - return __last; - if (__last == __middle) - return __first; - - _ForwardIter __first2 = __middle; - do { - swap(*__first++, *__first2++); - if (__first == __middle) - __middle = __first2; - } while (__first2 != __last); - - _ForwardIter __new_middle = __first; - - __first2 = __middle; - - while (__first2 != __last) { - swap (*__first++, *__first2++); - if (__first == __middle) - __middle = __first2; - else if (__first2 == __last) - __first2 = __middle; - } - return __new_middle; -} + template<typename _InputIter, typename _RandomAccessIter, + typename _RandomNumberGenerator> + inline _RandomAccessIter + random_sample(_InputIter __first, _InputIter __last, + _RandomAccessIter __out_first, _RandomAccessIter __out_last, + _RandomNumberGenerator& __rand) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + return __random_sample(__first, __last, + __out_first, __rand, + __out_last - __out_first); + } -template <class _BidirectionalIter, class _Distance> -_BidirectionalIter __rotate(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance*, - bidirectional_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< - _BidirectionalIter>); - - if (__first == __middle) - return __last; - if (__last == __middle) - return __first; - - __reverse(__first, __middle, bidirectional_iterator_tag()); - __reverse(__middle, __last, bidirectional_iterator_tag()); - - while (__first != __middle && __middle != __last) - swap (*__first++, *--__last); - - if (__first == __middle) { - __reverse(__middle, __last, bidirectional_iterator_tag()); - return __last; - } - else { - __reverse(__first, __middle, bidirectional_iterator_tag()); - return __first; - } -} - -template <class _RandomAccessIter, class _Distance, class _Tp> -_RandomAccessIter __rotate(_RandomAccessIter __first, - _RandomAccessIter __middle, - _RandomAccessIter __last, - _Distance *, _Tp *) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); + // partition, stable_partition, and their auxiliary functions - _Distance __n = __last - __first; - _Distance __k = __middle - __first; - _Distance __l = __n - __k; - _RandomAccessIter __result = __first + (__last - __middle); + template<typename _ForwardIter, typename _Predicate> + _ForwardIter + __partition(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred, + forward_iterator_tag) + { + if (__first == __last) return __first; - if (__k == 0) - return __last; + while (__pred(*__first)) + if (++__first == __last) return __first; - else if (__k == __l) { - swap_ranges(__first, __middle, __middle); - return __result; - } + _ForwardIter __next = __first; - _Distance __d = __gcd(__n, __k); + while (++__next != __last) + if (__pred(*__next)) { + swap(*__first, *__next); + ++__first; + } - for (_Distance __i = 0; __i < __d; __i++) { - _Tp __tmp = *__first; - _RandomAccessIter __p = __first; + return __first; + } - if (__k < __l) { - for (_Distance __j = 0; __j < __l/__d; __j++) { - if (__p > __first + __l) { - *__p = *(__p - __l); - __p -= __l; - } + template<typename _BidirectionalIter, typename _Predicate> + _BidirectionalIter + __partition(_BidirectionalIter __first, _BidirectionalIter __last, + _Predicate __pred, + bidirectional_iterator_tag) + { + while (true) { + while (true) + if (__first == __last) + return __first; + else if (__pred(*__first)) + ++__first; + else + break; + --__last; + while (true) + if (__first == __last) + return __first; + else if (!__pred(*__last)) + --__last; + else + break; + iter_swap(__first, __last); + ++__first; + } + } - *__p = *(__p + __k); - __p += __k; + template<typename _ForwardIter, typename _Predicate> + inline _ForwardIter + partition(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_ForwardIter>::value_type>); + + return __partition(__first, __last, __pred, __iterator_category(__first)); + } + + + template<typename _ForwardIter, typename _Predicate, typename _Distance> + _ForwardIter + __inplace_stable_partition(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred, _Distance __len) + { + if (__len == 1) + return __pred(*__first) ? __last : __first; + _ForwardIter __middle = __first; + advance(__middle, __len / 2); + _ForwardIter __begin = __inplace_stable_partition(__first, __middle, + __pred, + __len / 2); + _ForwardIter __end = __inplace_stable_partition(__middle, __last, + __pred, + __len - __len / 2); + rotate(__begin, __middle, __end); + advance(__begin, distance(__middle, __end)); + return __begin; + } + + template<typename _ForwardIter, typename _Pointer, typename _Predicate, + typename _Distance> + _ForwardIter + __stable_partition_adaptive(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred, _Distance __len, + _Pointer __buffer, + _Distance __buffer_size) + { + if (__len <= __buffer_size) { + _ForwardIter __result1 = __first; + _Pointer __result2 = __buffer; + for ( ; __first != __last ; ++__first) + if (__pred(*__first)) { + *__result1 = *__first; + ++__result1; + } + else { + *__result2 = *__first; + ++__result2; + } + copy(__buffer, __result2, __result1); + return __result1; + } + else { + _ForwardIter __middle = __first; + advance(__middle, __len / 2); + _ForwardIter __begin = __stable_partition_adaptive(__first, __middle, + __pred, + __len / 2, + __buffer, __buffer_size); + _ForwardIter __end = __stable_partition_adaptive( __middle, __last, + __pred, + __len - __len / 2, + __buffer, __buffer_size); + rotate(__begin, __middle, __end); + advance(__begin, distance(__middle, __end)); + return __begin; } } - else { - for (_Distance __j = 0; __j < __k/__d - 1; __j ++) { - if (__p < __last - __k) { - *__p = *(__p + __k); - __p += __k; - } + template<typename _ForwardIter, typename _Predicate> + _ForwardIter + stable_partition(_ForwardIter __first, _ForwardIter __last, + _Predicate __pred) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, + typename iterator_traits<_ForwardIter>::value_type>); + + if (__first == __last) + return __first; + else + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + _Temporary_buffer<_ForwardIter, _ValueType> __buf(__first, __last); + if (__buf.size() > 0) + return __stable_partition_adaptive(__first, __last, __pred, + _DistanceType(__buf.requested_size()), + __buf.begin(), __buf.size()); + else + return __inplace_stable_partition(__first, __last, __pred, + _DistanceType(__buf.requested_size())); + } + } - *__p = * (__p - __l); - __p -= __l; + template<typename _RandomAccessIter, typename _Tp> + _RandomAccessIter + __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, + _Tp __pivot) + { + while (true) { + while (*__first < __pivot) + ++__first; + --__last; + while (__pivot < *__last) + --__last; + if (!(__first < __last)) + return __first; + iter_swap(__first, __last); + ++__first; + } + } + + template<typename _RandomAccessIter, typename _Tp, typename _Compare> + _RandomAccessIter + __unguarded_partition(_RandomAccessIter __first, _RandomAccessIter __last, + _Tp __pivot, _Compare __comp) + { + while (true) { + while (__comp(*__first, __pivot)) + ++__first; + --__last; + while (__comp(__pivot, *__last)) + --__last; + if (!(__first < __last)) + return __first; + iter_swap(__first, __last); + ++__first; } } - *__p = __tmp; - ++__first; - } + const int __stl_threshold = 16; - return __result; -} + // sort() and its auxiliary functions. -template <class _ForwardIter> -inline _ForwardIter rotate(_ForwardIter __first, _ForwardIter __middle, - _ForwardIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + template<typename _RandomAccessIter, typename _Tp> + void + __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) + { + _RandomAccessIter __next = __last; + --__next; + while (__val < *__next) { + *__last = *__next; + __last = __next; + --__next; + } + *__last = __val; + } + + template<typename _RandomAccessIter, typename _Tp, typename _Compare> + void + __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, _Compare __comp) + { + _RandomAccessIter __next = __last; + --__next; + while (__comp(__val, *__next)) { + *__last = *__next; + __last = __next; + --__next; + } + *__last = __val; + } + + template<typename _RandomAccessIter> + void + __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) + { + if (__first == __last) return; + + for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) + { + typename iterator_traits<_RandomAccessIter>::value_type __val = *__i; + if (__val < *__first) { + copy_backward(__first, __i, __i + 1); + *__first = __val; + } + else + __unguarded_linear_insert(__i, __val); + } + } - return __rotate(__first, __middle, __last, - __distance_type(__first), - __iterator_category(__first)); -} + template<typename _RandomAccessIter, typename _Compare> + void + __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, + _Compare __comp) + { + if (__first == __last) return; + + for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) + { + typename iterator_traits<_RandomAccessIter>::value_type __val = *__i; + if (__comp(__val, *__first)) { + copy_backward(__first, __i, __i + 1); + *__first = __val; + } + else + __unguarded_linear_insert(__i, __val, __comp); + } + } -template <class _ForwardIter, class _OutputIter> -_OutputIter rotate_copy(_ForwardIter __first, _ForwardIter __middle, - _ForwardIter __last, _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_ForwardIter>::value_type>); - - return copy(__first, __middle, copy(__middle, __last, __result)); -} - -// Return a random number in the range [0, __n). This function encapsulates -// whether we're using rand (part of the standard C library) or lrand48 -// (not standard, but a much better choice whenever it's available). -template <class _Distance> -inline _Distance __random_number(_Distance __n) { -#ifdef _GLIBCPP_HAVE_DRAND48 - return lrand48() % __n; -#else - return rand() % __n; -#endif -} - -// random_shuffle - -template <class _RandomAccessIter> -inline void random_shuffle(_RandomAccessIter __first, - _RandomAccessIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - iter_swap(__i, __first + __random_number((__i - __first) + 1)); -} - -template <class _RandomAccessIter, class _RandomNumberGenerator> -void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, - _RandomNumberGenerator& __rand) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); + template<typename _RandomAccessIter> + inline void + __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + for (_RandomAccessIter __i = __first; __i != __last; ++__i) + __unguarded_linear_insert(__i, _ValueType(*__i)); + } + + template<typename _RandomAccessIter, typename _Compare> + inline void + __unguarded_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + for (_RandomAccessIter __i = __first; __i != __last; ++__i) + __unguarded_linear_insert(__i, _ValueType(*__i), __comp); + } + + template<typename _RandomAccessIter> + void + __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) + { + if (__last - __first > __stl_threshold) { + __insertion_sort(__first, __first + __stl_threshold); + __unguarded_insertion_sort(__first + __stl_threshold, __last); + } + else + __insertion_sort(__first, __last); + } - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - iter_swap(__i, __first + __rand((__i - __first) + 1)); -} + template<typename _RandomAccessIter, typename _Compare> + void + __final_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, + _Compare __comp) + { + if (__last - __first > __stl_threshold) { + __insertion_sort(__first, __first + __stl_threshold, __comp); + __unguarded_insertion_sort(__first + __stl_threshold, __last, __comp); + } + else + __insertion_sort(__first, __last, __comp); + } + + template<typename _Size> + inline _Size + __lg(_Size __n) + { + _Size __k; + for (__k = 0; __n != 1; __n >>= 1) ++__k; + return __k; + } + + template<typename _RandomAccessIter, typename _Size> + void + __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, + _Size __depth_limit) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + while (__last - __first > __stl_threshold) { + if (__depth_limit == 0) { + partial_sort(__first, __last, __last); + return; + } + --__depth_limit; + _RandomAccessIter __cut = + __unguarded_partition(__first, __last, + _ValueType(__median(*__first, + *(__first + (__last - __first)/2), + *(__last - 1)))); + __introsort_loop(__cut, __last, __depth_limit); + __last = __cut; + } + } -// random_sample and random_sample_n (extensions, not part of the standard). + template<typename _RandomAccessIter, typename _Size, typename _Compare> + void + __introsort_loop(_RandomAccessIter __first, _RandomAccessIter __last, + _Size __depth_limit, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + while (__last - __first > __stl_threshold) { + if (__depth_limit == 0) { + partial_sort(__first, __last, __last, __comp); + return; + } + --__depth_limit; + _RandomAccessIter __cut = + __unguarded_partition(__first, __last, + _ValueType(__median(*__first, + *(__first + (__last - __first)/2), + *(__last - 1), __comp)), + __comp); + __introsort_loop(__cut, __last, __depth_limit, __comp); + __last = __cut; + } + } -template <class _ForwardIter, class _OutputIter, class _Distance> -_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, - _OutputIter __out, const _Distance __n) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_ForwardIter>::value_type>); - - _Distance __remaining = 0; - distance(__first, __last, __remaining); - _Distance __m = min(__n, __remaining); - - while (__m > 0) { - if (__random_number(__remaining) < __m) { - *__out = *__first; - ++__out; - --__m; - } - - --__remaining; - ++__first; - } - return __out; -} - -template <class _ForwardIter, class _OutputIter, class _Distance, - class _RandomNumberGenerator> -_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, - _OutputIter __out, const _Distance __n, - _RandomNumberGenerator& __rand) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_UnaryFunctionConcept< - _RandomNumberGenerator, _Distance, _Distance>); - - _Distance __remaining = 0; - distance(__first, __last, __remaining); - _Distance __m = min(__n, __remaining); - - while (__m > 0) { - if (__rand(__remaining) < __m) { - *__out = *__first; - ++__out; - --__m; - } - - --__remaining; - ++__first; - } - return __out; -} - -template <class _InputIter, class _RandomAccessIter, class _Distance> -_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out, - const _Distance __n) -{ - _Distance __m = 0; - _Distance __t = __n; - for ( ; __first != __last && __m < __n; ++__m, ++__first) - __out[__m] = *__first; - - while (__first != __last) { - ++__t; - _Distance __M = __random_number(__t); - if (__M < __n) - __out[__M] = *__first; - ++__first; - } - - return __out + __m; -} - -template <class _InputIter, class _RandomAccessIter, - class _RandomNumberGenerator, class _Distance> -_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out, - _RandomNumberGenerator& __rand, - const _Distance __n) -{ - // concept requirements - __glibcpp_function_requires(_UnaryFunctionConcept< - _RandomNumberGenerator, _Distance, _Distance>); - - _Distance __m = 0; - _Distance __t = __n; - for ( ; __first != __last && __m < __n; ++__m, ++__first) - __out[__m] = *__first; - - while (__first != __last) { - ++__t; - _Distance __M = __rand(__t); - if (__M < __n) - __out[__M] = *__first; - ++__first; - } - - return __out + __m; -} - -template <class _InputIter, class _RandomAccessIter> -inline _RandomAccessIter -random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_first, _RandomAccessIter __out_last) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - - return __random_sample(__first, __last, - __out_first, __out_last - __out_first); -} - - -template <class _InputIter, class _RandomAccessIter, - class _RandomNumberGenerator> -inline _RandomAccessIter -random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_first, _RandomAccessIter __out_last, - _RandomNumberGenerator& __rand) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - - return __random_sample(__first, __last, - __out_first, __rand, - __out_last - __out_first); -} - -// partition, stable_partition, and their auxiliary functions - -template <class _ForwardIter, class _Predicate> -_ForwardIter __partition(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred, - forward_iterator_tag) -{ - if (__first == __last) return __first; + template<typename _RandomAccessIter> + inline void + sort(_RandomAccessIter __first, _RandomAccessIter __last) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + if (__first != __last) { + __introsort_loop(__first, __last, __lg(__last - __first) * 2); + __final_insertion_sort(__first, __last); + } + } + + template<typename _RandomAccessIter, typename _Compare> + inline void + sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _ValueType, _ValueType>); + + if (__first != __last) { + __introsort_loop(__first, __last, __lg(__last - __first) * 2, __comp); + __final_insertion_sort(__first, __last, __comp); + } + } - while (__pred(*__first)) - if (++__first == __last) return __first; + // stable_sort() and its auxiliary functions. - _ForwardIter __next = __first; + template<typename _RandomAccessIter> + void + __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) + { + if (__last - __first < 15) { + __insertion_sort(__first, __last); + return; + } + _RandomAccessIter __middle = __first + (__last - __first) / 2; + __inplace_stable_sort(__first, __middle); + __inplace_stable_sort(__middle, __last); + __merge_without_buffer(__first, __middle, __last, + __middle - __first, + __last - __middle); + } + + template<typename _RandomAccessIter, typename _Compare> + void + __inplace_stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, + _Compare __comp) + { + if (__last - __first < 15) { + __insertion_sort(__first, __last, __comp); + return; + } + _RandomAccessIter __middle = __first + (__last - __first) / 2; + __inplace_stable_sort(__first, __middle, __comp); + __inplace_stable_sort(__middle, __last, __comp); + __merge_without_buffer(__first, __middle, __last, + __middle - __first, + __last - __middle, + __comp); + } + + template<typename _RandomAccessIter1, typename _RandomAccessIter2, + typename _Distance> + void + __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, + _RandomAccessIter2 __result, _Distance __step_size) + { + _Distance __two_step = 2 * __step_size; + + while (__last - __first >= __two_step) { + __result = merge(__first, __first + __step_size, + __first + __step_size, __first + __two_step, + __result); + __first += __two_step; + } - while (++__next != __last) - if (__pred(*__next)) { - swap(*__first, *__next); - ++__first; + __step_size = min(_Distance(__last - __first), __step_size); + merge(__first, __first + __step_size, __first + __step_size, __last, + __result); + } + + template<typename _RandomAccessIter1, typename _RandomAccessIter2, + typename _Distance, typename _Compare> + void + __merge_sort_loop(_RandomAccessIter1 __first, _RandomAccessIter1 __last, + _RandomAccessIter2 __result, _Distance __step_size, + _Compare __comp) + { + _Distance __two_step = 2 * __step_size; + + while (__last - __first >= __two_step) { + __result = merge(__first, __first + __step_size, + __first + __step_size, __first + __two_step, + __result, + __comp); + __first += __two_step; + } + __step_size = min(_Distance(__last - __first), __step_size); + + merge(__first, __first + __step_size, + __first + __step_size, __last, + __result, + __comp); + } + + const int __stl_chunk_size = 7; + + template<typename _RandomAccessIter, typename _Distance> + void + __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, + _Distance __chunk_size) + { + while (__last - __first >= __chunk_size) { + __insertion_sort(__first, __first + __chunk_size); + __first += __chunk_size; + } + __insertion_sort(__first, __last); } - return __first; -} + template<typename _RandomAccessIter, typename _Distance, typename _Compare> + void + __chunk_insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last, + _Distance __chunk_size, _Compare __comp) + { + while (__last - __first >= __chunk_size) { + __insertion_sort(__first, __first + __chunk_size, __comp); + __first += __chunk_size; + } + __insertion_sort(__first, __last, __comp); + } -template <class _BidirectionalIter, class _Predicate> -_BidirectionalIter __partition(_BidirectionalIter __first, - _BidirectionalIter __last, - _Predicate __pred, - bidirectional_iterator_tag) -{ - while (true) { - while (true) - if (__first == __last) - return __first; - else if (__pred(*__first)) - ++__first; - else - break; - --__last; - while (true) - if (__first == __last) - return __first; - else if (!__pred(*__last)) - --__last; - else - break; - iter_swap(__first, __last); - ++__first; - } -} - -template <class _ForwardIter, class _Predicate> -inline _ForwardIter partition(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_ForwardIter>::value_type>); + template<typename _RandomAccessIter, typename _Pointer> + void + __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, + _Pointer __buffer) + { + typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; - return __partition(__first, __last, __pred, __iterator_category(__first)); -} + _Distance __len = __last - __first; + _Pointer __buffer_last = __buffer + __len; + _Distance __step_size = __stl_chunk_size; + __chunk_insertion_sort(__first, __last, __step_size); -template <class _ForwardIter, class _Predicate, class _Distance> -_ForwardIter __inplace_stable_partition(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred, _Distance __len) -{ - if (__len == 1) - return __pred(*__first) ? __last : __first; - _ForwardIter __middle = __first; - advance(__middle, __len / 2); - return rotate(__inplace_stable_partition(__first, __middle, __pred, - __len / 2), - __middle, - __inplace_stable_partition(__middle, __last, __pred, - __len - __len / 2)); -} - -template <class _ForwardIter, class _Pointer, class _Predicate, - class _Distance> -_ForwardIter __stable_partition_adaptive(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred, _Distance __len, - _Pointer __buffer, - _Distance __buffer_size) -{ - if (__len <= __buffer_size) { - _ForwardIter __result1 = __first; - _Pointer __result2 = __buffer; - for ( ; __first != __last ; ++__first) - if (__pred(*__first)) { - *__result1 = *__first; - ++__result1; + while (__step_size < __len) { + __merge_sort_loop(__first, __last, __buffer, __step_size); + __step_size *= 2; + __merge_sort_loop(__buffer, __buffer_last, __first, __step_size); + __step_size *= 2; } - else { - *__result2 = *__first; - ++__result2; - } - copy(__buffer, __result2, __result1); - return __result1; - } - else { - _ForwardIter __middle = __first; - advance(__middle, __len / 2); - return rotate(__stable_partition_adaptive( - __first, __middle, __pred, - __len / 2, __buffer, __buffer_size), - __middle, - __stable_partition_adaptive( - __middle, __last, __pred, - __len - __len / 2, __buffer, __buffer_size)); - } -} - -template <class _ForwardIter, class _Predicate, class _Tp, class _Distance> -inline _ForwardIter -__stable_partition_aux(_ForwardIter __first, _ForwardIter __last, - _Predicate __pred, _Tp*, _Distance*) -{ - _Temporary_buffer<_ForwardIter, _Tp> __buf(__first, __last); - if (__buf.size() > 0) - return __stable_partition_adaptive(__first, __last, __pred, - _Distance(__buf.requested_size()), - __buf.begin(), __buf.size()); - else - return __inplace_stable_partition(__first, __last, __pred, - _Distance(__buf.requested_size())); -} - -template <class _ForwardIter, class _Predicate> -inline _ForwardIter stable_partition(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_UnaryPredicateConcept<_Predicate, - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) - return __first; - else - return __stable_partition_aux(__first, __last, __pred, - __value_type(__first), - __distance_type(__first)); -} - -template <class _RandomAccessIter, class _Tp> -_RandomAccessIter __unguarded_partition(_RandomAccessIter __first, - _RandomAccessIter __last, - _Tp __pivot) -{ - while (true) { - while (*__first < __pivot) - ++__first; - --__last; - while (__pivot < *__last) - --__last; - if (!(__first < __last)) - return __first; - iter_swap(__first, __last); - ++__first; - } -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -_RandomAccessIter __unguarded_partition(_RandomAccessIter __first, - _RandomAccessIter __last, - _Tp __pivot, _Compare __comp) -{ - while (true) { - while (__comp(*__first, __pivot)) - ++__first; - --__last; - while (__comp(__pivot, *__last)) - --__last; - if (!(__first < __last)) - return __first; - iter_swap(__first, __last); - ++__first; - } -} + } -const int __stl_threshold = 16; + template<typename _RandomAccessIter, typename _Pointer, typename _Compare> + void + __merge_sort_with_buffer(_RandomAccessIter __first, _RandomAccessIter __last, + _Pointer __buffer, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; -// sort() and its auxiliary functions. + _Distance __len = __last - __first; + _Pointer __buffer_last = __buffer + __len; -template <class _RandomAccessIter, class _Tp> -void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val) -{ - _RandomAccessIter __next = __last; - --__next; - while (__val < *__next) { - *__last = *__next; - __last = __next; - --__next; - } - *__last = __val; -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, - _Compare __comp) -{ - _RandomAccessIter __next = __last; - --__next; - while (__comp(__val, *__next)) { - *__last = *__next; - __last = __next; - --__next; - } - *__last = __val; -} - -template <class _RandomAccessIter, class _Tp> -inline void __linear_insert(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*) -{ - _Tp __val = *__last; - if (__val < *__first) { - copy_backward(__first, __last, __last + 1); - *__first = __val; - } - else - __unguarded_linear_insert(__last, __val); -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -inline void __linear_insert(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, _Compare __comp) -{ - _Tp __val = *__last; - if (__comp(__val, *__first)) { - copy_backward(__first, __last, __last + 1); - *__first = __val; - } - else - __unguarded_linear_insert(__last, __val, __comp); -} - -template <class _RandomAccessIter> -void __insertion_sort(_RandomAccessIter __first, _RandomAccessIter __last) -{ - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - __linear_insert(__first, __i, __value_type(__first)); -} - -template <class _RandomAccessIter, class _Compare> -void __insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) -{ - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - __linear_insert(__first, __i, __value_type(__first), __comp); -} - -template <class _RandomAccessIter, class _Tp> -void __unguarded_insertion_sort_aux(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*) -{ - for (_RandomAccessIter __i = __first; __i != __last; ++__i) - __unguarded_linear_insert(__i, _Tp(*__i)); -} - -template <class _RandomAccessIter> -inline void __unguarded_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last) { - __unguarded_insertion_sort_aux(__first, __last, __value_type(__first)); -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __unguarded_insertion_sort_aux(_RandomAccessIter __first, - _RandomAccessIter __last, - _Tp*, _Compare __comp) -{ - for (_RandomAccessIter __i = __first; __i != __last; ++__i) - __unguarded_linear_insert(__i, _Tp(*__i), __comp); -} - -template <class _RandomAccessIter, class _Compare> -inline void __unguarded_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, - _Compare __comp) -{ - __unguarded_insertion_sort_aux(__first, __last, __value_type(__first), - __comp); -} + _Distance __step_size = __stl_chunk_size; + __chunk_insertion_sort(__first, __last, __step_size, __comp); -template <class _RandomAccessIter> -void __final_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last) -{ - if (__last - __first > __stl_threshold) { - __insertion_sort(__first, __first + __stl_threshold); - __unguarded_insertion_sort(__first + __stl_threshold, __last); - } - else - __insertion_sort(__first, __last); -} - -template <class _RandomAccessIter, class _Compare> -void __final_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) -{ - if (__last - __first > __stl_threshold) { - __insertion_sort(__first, __first + __stl_threshold, __comp); - __unguarded_insertion_sort(__first + __stl_threshold, __last, __comp); - } - else - __insertion_sort(__first, __last, __comp); -} - -template <class _Size> -inline _Size __lg(_Size __n) -{ - _Size __k; - for (__k = 0; __n != 1; __n >>= 1) ++__k; - return __k; -} - -template <class _RandomAccessIter, class _Tp, class _Size> -void __introsort_loop(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, - _Size __depth_limit) -{ - while (__last - __first > __stl_threshold) { - if (__depth_limit == 0) { - partial_sort(__first, __last, __last); - return; - } - --__depth_limit; - _RandomAccessIter __cut = - __unguarded_partition(__first, __last, - _Tp(__median(*__first, - *(__first + (__last - __first)/2), - *(__last - 1)))); - __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit); - __last = __cut; - } -} - -template <class _RandomAccessIter, class _Tp, class _Size, class _Compare> -void __introsort_loop(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, - _Size __depth_limit, _Compare __comp) -{ - while (__last - __first > __stl_threshold) { - if (__depth_limit == 0) { - partial_sort(__first, __last, __last, __comp); - return; - } - --__depth_limit; - _RandomAccessIter __cut = - __unguarded_partition(__first, __last, - _Tp(__median(*__first, - *(__first + (__last - __first)/2), - *(__last - 1), __comp)), - __comp); - __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit, __comp); - __last = __cut; - } -} - -template <class _RandomAccessIter> -inline void sort(_RandomAccessIter __first, _RandomAccessIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIter>::value_type>); - - if (__first != __last) { - __introsort_loop(__first, __last, - __value_type(__first), - __lg(__last - __first) * 2); - __final_insertion_sort(__first, __last); - } -} - -template <class _RandomAccessIter, class _Compare> -inline void sort(_RandomAccessIter __first, _RandomAccessIter __last, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_RandomAccessIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - - if (__first != __last) { - __introsort_loop(__first, __last, - __value_type(__first), - __lg(__last - __first) * 2, - __comp); - __final_insertion_sort(__first, __last, __comp); - } -} - -// stable_sort() and its auxiliary functions. - -template <class _RandomAccessIter> -void __inplace_stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last) -{ - if (__last - __first < 15) { - __insertion_sort(__first, __last); - return; - } - _RandomAccessIter __middle = __first + (__last - __first) / 2; - __inplace_stable_sort(__first, __middle); - __inplace_stable_sort(__middle, __last); - __merge_without_buffer(__first, __middle, __last, - __middle - __first, - __last - __middle); -} - -template <class _RandomAccessIter, class _Compare> -void __inplace_stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) -{ - if (__last - __first < 15) { - __insertion_sort(__first, __last, __comp); - return; - } - _RandomAccessIter __middle = __first + (__last - __first) / 2; - __inplace_stable_sort(__first, __middle, __comp); - __inplace_stable_sort(__middle, __last, __comp); - __merge_without_buffer(__first, __middle, __last, - __middle - __first, - __last - __middle, - __comp); -} - -template <class _RandomAccessIter1, class _RandomAccessIter2, - class _Distance> -void __merge_sort_loop(_RandomAccessIter1 __first, - _RandomAccessIter1 __last, - _RandomAccessIter2 __result, _Distance __step_size) -{ - _Distance __two_step = 2 * __step_size; - - while (__last - __first >= __two_step) { - __result = merge(__first, __first + __step_size, - __first + __step_size, __first + __two_step, - __result); - __first += __two_step; - } - - __step_size = min(_Distance(__last - __first), __step_size); - merge(__first, __first + __step_size, __first + __step_size, __last, - __result); -} - -template <class _RandomAccessIter1, class _RandomAccessIter2, - class _Distance, class _Compare> -void __merge_sort_loop(_RandomAccessIter1 __first, - _RandomAccessIter1 __last, - _RandomAccessIter2 __result, _Distance __step_size, - _Compare __comp) -{ - _Distance __two_step = 2 * __step_size; - - while (__last - __first >= __two_step) { - __result = merge(__first, __first + __step_size, - __first + __step_size, __first + __two_step, - __result, - __comp); - __first += __two_step; - } - __step_size = min(_Distance(__last - __first), __step_size); - - merge(__first, __first + __step_size, - __first + __step_size, __last, - __result, - __comp); -} - -const int __stl_chunk_size = 7; - -template <class _RandomAccessIter, class _Distance> -void __chunk_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Distance __chunk_size) -{ - while (__last - __first >= __chunk_size) { - __insertion_sort(__first, __first + __chunk_size); - __first += __chunk_size; - } - __insertion_sort(__first, __last); -} - -template <class _RandomAccessIter, class _Distance, class _Compare> -void __chunk_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, - _Distance __chunk_size, _Compare __comp) -{ - while (__last - __first >= __chunk_size) { - __insertion_sort(__first, __first + __chunk_size, __comp); - __first += __chunk_size; - } - __insertion_sort(__first, __last, __comp); -} - -template <class _RandomAccessIter, class _Pointer, class _Distance> -void __merge_sort_with_buffer(_RandomAccessIter __first, - _RandomAccessIter __last, - _Pointer __buffer, _Distance*) -{ - _Distance __len = __last - __first; - _Pointer __buffer_last = __buffer + __len; - - _Distance __step_size = __stl_chunk_size; - __chunk_insertion_sort(__first, __last, __step_size); - - while (__step_size < __len) { - __merge_sort_loop(__first, __last, __buffer, __step_size); - __step_size *= 2; - __merge_sort_loop(__buffer, __buffer_last, __first, __step_size); - __step_size *= 2; - } -} - -template <class _RandomAccessIter, class _Pointer, class _Distance, - class _Compare> -void __merge_sort_with_buffer(_RandomAccessIter __first, - _RandomAccessIter __last, _Pointer __buffer, - _Distance*, _Compare __comp) -{ - _Distance __len = __last - __first; - _Pointer __buffer_last = __buffer + __len; - - _Distance __step_size = __stl_chunk_size; - __chunk_insertion_sort(__first, __last, __step_size, __comp); - - while (__step_size < __len) { - __merge_sort_loop(__first, __last, __buffer, __step_size, __comp); - __step_size *= 2; - __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); - __step_size *= 2; - } -} - -template <class _RandomAccessIter, class _Pointer, class _Distance> -void __stable_sort_adaptive(_RandomAccessIter __first, - _RandomAccessIter __last, _Pointer __buffer, - _Distance __buffer_size) -{ - _Distance __len = (__last - __first + 1) / 2; - _RandomAccessIter __middle = __first + __len; - if (__len > __buffer_size) { - __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); - __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); - } - else { - __merge_sort_with_buffer(__first, __middle, __buffer, (_Distance*)0); - __merge_sort_with_buffer(__middle, __last, __buffer, (_Distance*)0); - } - __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), - _Distance(__last - __middle), __buffer, __buffer_size); -} - -template <class _RandomAccessIter, class _Pointer, class _Distance, - class _Compare> -void __stable_sort_adaptive(_RandomAccessIter __first, - _RandomAccessIter __last, _Pointer __buffer, - _Distance __buffer_size, _Compare __comp) -{ - _Distance __len = (__last - __first + 1) / 2; - _RandomAccessIter __middle = __first + __len; - if (__len > __buffer_size) { - __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, - __comp); - __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, - __comp); - } - else { - __merge_sort_with_buffer(__first, __middle, __buffer, (_Distance*)0, + while (__step_size < __len) { + __merge_sort_loop(__first, __last, __buffer, __step_size, __comp); + __step_size *= 2; + __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); + __step_size *= 2; + } + } + + template<typename _RandomAccessIter, typename _Pointer, typename _Distance> + void + __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, + _Pointer __buffer, _Distance __buffer_size) + { + _Distance __len = (__last - __first + 1) / 2; + _RandomAccessIter __middle = __first + __len; + if (__len > __buffer_size) { + __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size); + __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size); + } + else { + __merge_sort_with_buffer(__first, __middle, __buffer); + __merge_sort_with_buffer(__middle, __last, __buffer); + } + __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), + _Distance(__last - __middle), __buffer, __buffer_size); + } + + template<typename _RandomAccessIter, typename _Pointer, typename _Distance, + typename _Compare> + void + __stable_sort_adaptive(_RandomAccessIter __first, _RandomAccessIter __last, + _Pointer __buffer, _Distance __buffer_size, + _Compare __comp) + { + _Distance __len = (__last - __first + 1) / 2; + _RandomAccessIter __middle = __first + __len; + if (__len > __buffer_size) { + __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, __comp); - __merge_sort_with_buffer(__middle, __last, __buffer, (_Distance*)0, + __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, __comp); - } - __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), - _Distance(__last - __middle), __buffer, __buffer_size, - __comp); -} - -template <class _RandomAccessIter, class _Tp, class _Distance> -inline void __stable_sort_aux(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, _Distance*) -{ - _Temporary_buffer<_RandomAccessIter, _Tp> buf(__first, __last); - if (buf.begin() == 0) - __inplace_stable_sort(__first, __last); - else - __stable_sort_adaptive(__first, __last, buf.begin(), - _Distance(buf.size())); -} - -template <class _RandomAccessIter, class _Tp, class _Distance, class _Compare> -inline void __stable_sort_aux(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, _Distance*, - _Compare __comp) -{ - _Temporary_buffer<_RandomAccessIter, _Tp> buf(__first, __last); - if (buf.begin() == 0) - __inplace_stable_sort(__first, __last, __comp); - else - __stable_sort_adaptive(__first, __last, buf.begin(), - _Distance(buf.size()), - __comp); -} - -template <class _RandomAccessIter> -inline void stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIter>::value_type>); - - __stable_sort_aux(__first, __last, - __value_type(__first), - __distance_type(__first)); -} - -template <class _RandomAccessIter, class _Compare> -inline void stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_RandomAccessIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - - __stable_sort_aux(__first, __last, - __value_type(__first), - __distance_type(__first), - __comp); -} - -// partial_sort, partial_sort_copy, and auxiliary functions. - -template <class _RandomAccessIter, class _Tp> -void __partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, - _RandomAccessIter __last, _Tp*) -{ - make_heap(__first, __middle); - for (_RandomAccessIter __i = __middle; __i < __last; ++__i) - if (*__i < *__first) - __pop_heap(__first, __middle, __i, _Tp(*__i), - __distance_type(__first)); - sort_heap(__first, __middle); -} - -template <class _RandomAccessIter> -inline void partial_sort(_RandomAccessIter __first, - _RandomAccessIter __middle, - _RandomAccessIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIter>::value_type>); - - __partial_sort(__first, __middle, __last, __value_type(__first)); -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, - _RandomAccessIter __last, _Tp*, _Compare __comp) -{ - make_heap(__first, __middle, __comp); - for (_RandomAccessIter __i = __middle; __i < __last; ++__i) - if (__comp(*__i, *__first)) - __pop_heap(__first, __middle, __i, _Tp(*__i), __comp, - __distance_type(__first)); - sort_heap(__first, __middle, __comp); -} - -template <class _RandomAccessIter, class _Compare> -inline void partial_sort(_RandomAccessIter __first, - _RandomAccessIter __middle, - _RandomAccessIter __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_RandomAccessIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - - __partial_sort(__first, __middle, __last, __value_type(__first), __comp); -} - -template <class _InputIter, class _RandomAccessIter, class _Distance, - class _Tp> -_RandomAccessIter __partial_sort_copy(_InputIter __first, - _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last, - _Distance*, _Tp*) -{ - if (__result_first == __result_last) return __result_last; - _RandomAccessIter __result_real_last = __result_first; - while(__first != __last && __result_real_last != __result_last) { - *__result_real_last = *__first; - ++__result_real_last; - ++__first; - } - make_heap(__result_first, __result_real_last); - while (__first != __last) { - if (*__first < *__result_first) - __adjust_heap(__result_first, _Distance(0), - _Distance(__result_real_last - __result_first), - _Tp(*__first)); - ++__first; - } - sort_heap(__result_first, __result_real_last); - return __result_real_last; -} - -template <class _InputIter, class _RandomAccessIter> -inline _RandomAccessIter -partial_sort_copy(_InputIter __first, _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_InputIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIter>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter>::value_type>); - - return __partial_sort_copy(__first, __last, __result_first, __result_last, - __distance_type(__result_first), - __value_type(__first)); -} - -template <class _InputIter, class _RandomAccessIter, class _Compare, - class _Distance, class _Tp> -_RandomAccessIter __partial_sort_copy(_InputIter __first, - _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last, - _Compare __comp, _Distance*, _Tp*) -{ - if (__result_first == __result_last) return __result_last; - _RandomAccessIter __result_real_last = __result_first; - while(__first != __last && __result_real_last != __result_last) { - *__result_real_last = *__first; - ++__result_real_last; - ++__first; - } - make_heap(__result_first, __result_real_last, __comp); - while (__first != __last) { - if (__comp(*__first, *__result_first)) - __adjust_heap(__result_first, _Distance(0), - _Distance(__result_real_last - __result_first), - _Tp(*__first), - __comp); - ++__first; - } - sort_heap(__result_first, __result_real_last, __comp); - return __result_real_last; -} - -template <class _InputIter, class _RandomAccessIter, class _Compare> -inline _RandomAccessIter -partial_sort_copy(_InputIter __first, _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_InputIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_RandomAccessIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - - return __partial_sort_copy(__first, __last, __result_first, __result_last, - __comp, - __distance_type(__result_first), - __value_type(__first)); -} - -// nth_element() and its auxiliary functions. - -template <class _RandomAccessIter, class _Tp> -void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last, _Tp*) -{ - while (__last - __first > 3) { - _RandomAccessIter __cut = - __unguarded_partition(__first, __last, - _Tp(__median(*__first, - *(__first + (__last - __first)/2), - *(__last - 1)))); - if (__cut <= __nth) - __first = __cut; - else - __last = __cut; - } - __insertion_sort(__first, __last); -} - -template <class _RandomAccessIter> -inline void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIter>::value_type>); - - __nth_element(__first, __nth, __last, __value_type(__first)); -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last, _Tp*, _Compare __comp) -{ - while (__last - __first > 3) { - _RandomAccessIter __cut = - __unguarded_partition(__first, __last, - _Tp(__median(*__first, - *(__first + (__last - __first)/2), - *(__last - 1), - __comp)), - __comp); - if (__cut <= __nth) - __first = __cut; - else - __last = __cut; - } - __insertion_sort(__first, __last, __comp); -} - -template <class _RandomAccessIter, class _Compare> -inline void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_RandomAccessIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); - - __nth_element(__first, __nth, __last, __value_type(__first), __comp); -} + } + else { + __merge_sort_with_buffer(__first, __middle, __buffer, __comp); + __merge_sort_with_buffer(__middle, __last, __buffer, __comp); + } + __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), + _Distance(__last - __middle), __buffer, __buffer_size, + __comp); + } + + template<typename _RandomAccessIter> + inline void + stable_sort(_RandomAccessIter __first, _RandomAccessIter __last) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, __last); + if (buf.begin() == 0) + __inplace_stable_sort(__first, __last); + else + __stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size())); + } + + template<typename _RandomAccessIter, typename _Compare> + inline void + stable_sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + _ValueType, _ValueType>); + + _Temporary_buffer<_RandomAccessIter, _ValueType> buf(__first, __last); + if (buf.begin() == 0) + __inplace_stable_sort(__first, __last, __comp); + else + __stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size()), + __comp); + } + + template<typename _RandomAccessIter> + void + partial_sort(_RandomAccessIter __first, + _RandomAccessIter __middle, + _RandomAccessIter __last) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType); + + make_heap(__first, __middle); + for (_RandomAccessIter __i = __middle; __i < __last; ++__i) + if (*__i < *__first) + __pop_heap(__first, __middle, __i, _ValueType(*__i)); + sort_heap(__first, __middle); + } + + template<typename _RandomAccessIter, typename _Compare> + void + partial_sort(_RandomAccessIter __first, + _RandomAccessIter __middle, + _RandomAccessIter __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + _ValueType, _ValueType>); + + make_heap(__first, __middle, __comp); + for (_RandomAccessIter __i = __middle; __i < __last; ++__i) + if (__comp(*__i, *__first)) + __pop_heap(__first, __middle, __i, _ValueType(*__i), __comp); + sort_heap(__first, __middle, __comp); + } + + template<typename _InputIter, typename _RandomAccessIter> + _RandomAccessIter + partial_sort_copy(_InputIter __first, _InputIter __last, + _RandomAccessIter __result_first, + _RandomAccessIter __result_last) + { + typedef typename iterator_traits<_InputIter>::value_type _InputValueType; + typedef typename iterator_traits<_RandomAccessIter>::value_type _OutputValueType; + typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_ConvertibleConcept<_InputValueType, _OutputValueType>); + __glibcpp_function_requires(_LessThanComparableConcept<_OutputValueType>); + __glibcpp_function_requires(_LessThanComparableConcept<_InputValueType>); + + if (__result_first == __result_last) return __result_last; + _RandomAccessIter __result_real_last = __result_first; + while(__first != __last && __result_real_last != __result_last) { + *__result_real_last = *__first; + ++__result_real_last; + ++__first; + } + make_heap(__result_first, __result_real_last); + while (__first != __last) { + if (*__first < *__result_first) + __adjust_heap(__result_first, _DistanceType(0), + _DistanceType(__result_real_last - __result_first), + _InputValueType(*__first)); + ++__first; + } + sort_heap(__result_first, __result_real_last); + return __result_real_last; + } + + template<typename _InputIter, typename _RandomAccessIter, typename _Compare> + _RandomAccessIter + partial_sort_copy(_InputIter __first, _InputIter __last, + _RandomAccessIter __result_first, + _RandomAccessIter __result_last, + _Compare __comp) + { + typedef typename iterator_traits<_InputIter>::value_type _InputValueType; + typedef typename iterator_traits<_RandomAccessIter>::value_type _OutputValueType; + typedef typename iterator_traits<_RandomAccessIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept<_RandomAccessIter>); + __glibcpp_function_requires(_ConvertibleConcept<_InputValueType, _OutputValueType>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + _OutputValueType, _OutputValueType>); + + if (__result_first == __result_last) return __result_last; + _RandomAccessIter __result_real_last = __result_first; + while(__first != __last && __result_real_last != __result_last) { + *__result_real_last = *__first; + ++__result_real_last; + ++__first; + } + make_heap(__result_first, __result_real_last, __comp); + while (__first != __last) { + if (__comp(*__first, *__result_first)) + __adjust_heap(__result_first, _DistanceType(0), + _DistanceType(__result_real_last - __result_first), + _InputValueType(*__first), + __comp); + ++__first; + } + sort_heap(__result_first, __result_real_last, __comp); + return __result_real_last; + } + + template<typename _RandomAccessIter> + void + nth_element(_RandomAccessIter __first, + _RandomAccessIter __nth, + _RandomAccessIter __last) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept<_RandomAccessIter>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + while (__last - __first > 3) { + _RandomAccessIter __cut = + __unguarded_partition(__first, __last, + _ValueType(__median(*__first, + *(__first + (__last - __first)/2), + *(__last - 1)))); + if (__cut <= __nth) + __first = __cut; + else + __last = __cut; + } + __insertion_sort(__first, __last); + } + + template<typename _RandomAccessIter, typename _Compare> + void + nth_element(_RandomAccessIter __first, + _RandomAccessIter __nth, + _RandomAccessIter __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIter>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept<_RandomAccessIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + _ValueType, _ValueType>); + + while (__last - __first > 3) { + _RandomAccessIter __cut = + __unguarded_partition(__first, __last, + _ValueType(__median(*__first, + *(__first + (__last - __first)/2), + *(__last - 1), + __comp)), + __comp); + if (__cut <= __nth) + __first = __cut; + else + __last = __cut; + } + __insertion_sort(__first, __last, __comp); + } + + + // Binary search (lower_bound, upper_bound, equal_range, binary_search). + + template<typename _ForwardIter, typename _Tp> + _ForwardIter + lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, _ValueType>); + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + + _DistanceType __len = distance(__first, __last); + _DistanceType __half; + _ForwardIter __middle; + + while (__len > 0) { + __half = __len >> 1; + __middle = __first; + advance(__middle, __half); + if (*__middle < __val) { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } + template<typename _ForwardIter, typename _Tp, typename _Compare> + _ForwardIter + lower_bound(_ForwardIter __first, _ForwardIter __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, _ValueType>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); + + _DistanceType __len = distance(__first, __last); + _DistanceType __half; + _ForwardIter __middle; + + while (__len > 0) { + __half = __len >> 1; + __middle = __first; + advance(__middle, __half); + if (__comp(*__middle, __val)) { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else + __len = __half; + } + return __first; + } -// Binary search (lower_bound, upper_bound, equal_range, binary_search). + template<typename _ForwardIter, typename _Tp> + _ForwardIter + upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, _ValueType>); + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + + _DistanceType __len = distance(__first, __last); + _DistanceType __half; + _ForwardIter __middle; + + while (__len > 0) { + __half = __len >> 1; + __middle = __first; + advance(__middle, __half); + if (__val < *__middle) + __len = __half; + else { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + } + return __first; + } + + template<typename _ForwardIter, typename _Tp, typename _Compare> + _ForwardIter + upper_bound(_ForwardIter __first, _ForwardIter __last, + const _Tp& __val, _Compare __comp) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, _ValueType>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); + + _DistanceType __len = distance(__first, __last); + _DistanceType __half; + _ForwardIter __middle; + + while (__len > 0) { + __half = __len >> 1; + __middle = __first; + advance(__middle, __half); + if (__comp(__val, *__middle)) + __len = __half; + else { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + } + return __first; + } + + template<typename _ForwardIter, typename _Tp> + pair<_ForwardIter, _ForwardIter> + equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, _ValueType>); + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + + _DistanceType __len = distance(__first, __last); + _DistanceType __half; + _ForwardIter __middle, __left, __right; + + while (__len > 0) { + __half = __len >> 1; + __middle = __first; + advance(__middle, __half); + if (*__middle < __val) { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else if (__val < *__middle) + __len = __half; + else { + __left = lower_bound(__first, __middle, __val); + advance(__first, __len); + __right = upper_bound(++__middle, __first, __val); + return pair<_ForwardIter, _ForwardIter>(__left, __right); + } + } + return pair<_ForwardIter, _ForwardIter>(__first, __first); + } + + template<typename _ForwardIter, typename _Tp, typename _Compare> + pair<_ForwardIter, _ForwardIter> + equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, + _Compare __comp) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename iterator_traits<_ForwardIter>::difference_type _DistanceType; + + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, _ValueType>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); + + _DistanceType __len = distance(__first, __last); + _DistanceType __half; + _ForwardIter __middle, __left, __right; + + while (__len > 0) { + __half = __len >> 1; + __middle = __first; + advance(__middle, __half); + if (__comp(*__middle, __val)) { + __first = __middle; + ++__first; + __len = __len - __half - 1; + } + else if (__comp(__val, *__middle)) + __len = __half; + else { + __left = lower_bound(__first, __middle, __val, __comp); + advance(__first, __len); + __right = upper_bound(++__middle, __first, __val, __comp); + return pair<_ForwardIter, _ForwardIter>(__left, __right); + } + } + return pair<_ForwardIter, _ForwardIter>(__first, __first); + } + + template<typename _ForwardIter, typename _Tp> + bool + binary_search(_ForwardIter __first, _ForwardIter __last, + const _Tp& __val) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + + _ForwardIter __i = lower_bound(__first, __last, __val); + return __i != __last && !(__val < *__i); + } + + template<typename _ForwardIter, typename _Tp, typename _Compare> + bool + binary_search(_ForwardIter __first, _ForwardIter __last, + const _Tp& __val, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_SameTypeConcept<_Tp, + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); + + _ForwardIter __i = lower_bound(__first, __last, __val, __comp); + return __i != __last && !__comp(__val, *__i); + } + + // merge, with and without an explicitly supplied comparison function. + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter> + _OutputIter + merge(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) { + if (*__first2 < *__first1) { + *__result = *__first2; + ++__first2; + } + else { + *__result = *__first1; + ++__first1; + } + ++__result; + } + return copy(__first2, __last2, copy(__first1, __last1, __result)); + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter, + typename _Compare> + _OutputIter + merge(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) { + if (__comp(*__first2, *__first1)) { + *__result = *__first2; + ++__first2; + } + else { + *__result = *__first1; + ++__first1; + } + ++__result; + } + return copy(__first2, __last2, copy(__first1, __last1, __result)); + } + + // inplace_merge and its auxiliary functions. + + template<typename _BidirectionalIter, typename _Distance> + void + __merge_without_buffer(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last, + _Distance __len1, _Distance __len2) + { + if (__len1 == 0 || __len2 == 0) + return; + if (__len1 + __len2 == 2) { + if (*__middle < *__first) + iter_swap(__first, __middle); + return; + } + _BidirectionalIter __first_cut = __first; + _BidirectionalIter __second_cut = __middle; + _Distance __len11 = 0; + _Distance __len22 = 0; + if (__len1 > __len2) { + __len11 = __len1 / 2; + advance(__first_cut, __len11); + __second_cut = lower_bound(__middle, __last, *__first_cut); + __len22 = distance(__middle, __second_cut); + } + else { + __len22 = __len2 / 2; + advance(__second_cut, __len22); + __first_cut = upper_bound(__first, __middle, *__second_cut); + __len11 = distance(__first, __first_cut); + } + rotate(__first_cut, __middle, __second_cut); + _BidirectionalIter __new_middle = __first_cut; + advance(__new_middle, distance(__middle, __second_cut)); + __merge_without_buffer(__first, __first_cut, __new_middle, + __len11, __len22); + __merge_without_buffer(__new_middle, __second_cut, __last, + __len1 - __len11, __len2 - __len22); + } + + template<typename _BidirectionalIter, typename _Distance, typename _Compare> + void + __merge_without_buffer(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last, + _Distance __len1, _Distance __len2, + _Compare __comp) + { + if (__len1 == 0 || __len2 == 0) + return; + if (__len1 + __len2 == 2) { + if (__comp(*__middle, *__first)) + iter_swap(__first, __middle); + return; + } + _BidirectionalIter __first_cut = __first; + _BidirectionalIter __second_cut = __middle; + _Distance __len11 = 0; + _Distance __len22 = 0; + if (__len1 > __len2) { + __len11 = __len1 / 2; + advance(__first_cut, __len11); + __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); + __len22 = distance(__middle, __second_cut); + } + else { + __len22 = __len2 / 2; + advance(__second_cut, __len22); + __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); + __len11 = distance(__first, __first_cut); + } + rotate(__first_cut, __middle, __second_cut); + _BidirectionalIter __new_middle = __first_cut; + advance(__new_middle, distance(__middle, __second_cut)); + __merge_without_buffer(__first, __first_cut, __new_middle, + __len11, __len22, __comp); + __merge_without_buffer(__new_middle, __second_cut, __last, + __len1 - __len11, __len2 - __len22, __comp); + } + + template<typename _BidirectionalIter1, typename _BidirectionalIter2, + typename _Distance> + _BidirectionalIter1 + __rotate_adaptive(_BidirectionalIter1 __first, + _BidirectionalIter1 __middle, + _BidirectionalIter1 __last, + _Distance __len1, _Distance __len2, + _BidirectionalIter2 __buffer, + _Distance __buffer_size) + { + _BidirectionalIter2 __buffer_end; + if (__len1 > __len2 && __len2 <= __buffer_size) { + __buffer_end = copy(__middle, __last, __buffer); + copy_backward(__first, __middle, __last); + return copy(__buffer, __buffer_end, __first); + } + else if (__len1 <= __buffer_size) { + __buffer_end = copy(__first, __middle, __buffer); + copy(__middle, __last, __first); + return copy_backward(__buffer, __buffer_end, __last); + } + else { + rotate(__first, __middle, __last); + advance(__first, distance(__middle, __last)); + return __first; + } + } -template <class _ForwardIter, class _Tp, class _Distance> -_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Distance*) -{ - _Distance __len = 0; - distance(__first, __last, __len); - _Distance __half; - _ForwardIter __middle; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (*__middle < __val) { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else - __len = __half; - } - return __first; -} - -template <class _ForwardIter, class _Tp> -inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - - return __lower_bound(__first, __last, __val, - __distance_type(__first)); -} - -template <class _ForwardIter, class _Tp, class _Compare, class _Distance> -_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare __comp, _Distance*) -{ - _Distance __len = 0; - distance(__first, __last, __len); - _Distance __half; - _ForwardIter __middle; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (__comp(*__middle, __val)) { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else - __len = __half; - } - return __first; -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); - - return __lower_bound(__first, __last, __val, __comp, - __distance_type(__first)); -} - -template <class _ForwardIter, class _Tp, class _Distance> -_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Distance*) -{ - _Distance __len = 0; - distance(__first, __last, __len); - _Distance __half; - _ForwardIter __middle; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (__val < *__middle) - __len = __half; - else { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - } - return __first; -} - -template <class _ForwardIter, class _Tp> -inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - - return __upper_bound(__first, __last, __val, - __distance_type(__first)); -} - -template <class _ForwardIter, class _Tp, class _Compare, class _Distance> -_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare __comp, _Distance*) -{ - _Distance __len = 0; - distance(__first, __last, __len); - _Distance __half; - _ForwardIter __middle; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (__comp(__val, *__middle)) - __len = __half; - else { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - } - return __first; -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); - - return __upper_bound(__first, __last, __val, __comp, - __distance_type(__first)); -} - -template <class _ForwardIter, class _Tp, class _Distance> -pair<_ForwardIter, _ForwardIter> -__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Distance*) -{ - _Distance __len = 0; - distance(__first, __last, __len); - _Distance __half; - _ForwardIter __middle, __left, __right; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (*__middle < __val) { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else if (__val < *__middle) - __len = __half; - else { - __left = lower_bound(__first, __middle, __val); - advance(__first, __len); - __right = upper_bound(++__middle, __first, __val); - return pair<_ForwardIter, _ForwardIter>(__left, __right); - } - } - return pair<_ForwardIter, _ForwardIter>(__first, __first); -} - -template <class _ForwardIter, class _Tp> -inline pair<_ForwardIter, _ForwardIter> -equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - - return __equal_range(__first, __last, __val, - __distance_type(__first)); -} - -template <class _ForwardIter, class _Tp, class _Compare, class _Distance> -pair<_ForwardIter, _ForwardIter> -__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare __comp, _Distance*) -{ - _Distance __len = 0; - distance(__first, __last, __len); - _Distance __half; - _ForwardIter __middle, __left, __right; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (__comp(*__middle, __val)) { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else if (__comp(__val, *__middle)) - __len = __half; - else { - __left = lower_bound(__first, __middle, __val, __comp); - advance(__first, __len); - __right = upper_bound(++__middle, __first, __val, __comp); - return pair<_ForwardIter, _ForwardIter>(__left, __right); - } - } - return pair<_ForwardIter, _ForwardIter>(__first, __first); -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline pair<_ForwardIter, _ForwardIter> -equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); - - return __equal_range(__first, __last, __val, __comp, - __distance_type(__first)); -} - -template <class _ForwardIter, class _Tp> -bool binary_search(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - - _ForwardIter __i = lower_bound(__first, __last, __val); - return __i != __last && !(__val < *__i); -} - -template <class _ForwardIter, class _Tp, class _Compare> -bool binary_search(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_SameTypeConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _Tp>); - - _ForwardIter __i = lower_bound(__first, __last, __val, __comp); - return __i != __last && !__comp(__val, *__i); -} - -// merge, with and without an explicitly supplied comparison function. - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) { - if (*__first2 < *__first1) { - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first2, *__first1)) { - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -// inplace_merge and its auxiliary functions. - -template <class _BidirectionalIter, class _Distance> -void __merge_without_buffer(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2) -{ - if (__len1 == 0 || __len2 == 0) - return; - if (__len1 + __len2 == 2) { - if (*__middle < *__first) - iter_swap(__first, __middle); - return; - } - _BidirectionalIter __first_cut = __first; - _BidirectionalIter __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) { - __len11 = __len1 / 2; - advance(__first_cut, __len11); - __second_cut = lower_bound(__middle, __last, *__first_cut); - distance(__middle, __second_cut, __len22); - } - else { - __len22 = __len2 / 2; - advance(__second_cut, __len22); - __first_cut = upper_bound(__first, __middle, *__second_cut); - distance(__first, __first_cut, __len11); - } - _BidirectionalIter __new_middle - = rotate(__first_cut, __middle, __second_cut); - __merge_without_buffer(__first, __first_cut, __new_middle, - __len11, __len22); - __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, - __len2 - __len22); -} - -template <class _BidirectionalIter, class _Distance, class _Compare> -void __merge_without_buffer(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2, - _Compare __comp) -{ - if (__len1 == 0 || __len2 == 0) - return; - if (__len1 + __len2 == 2) { - if (__comp(*__middle, *__first)) - iter_swap(__first, __middle); - return; - } - _BidirectionalIter __first_cut = __first; - _BidirectionalIter __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) { - __len11 = __len1 / 2; - advance(__first_cut, __len11); - __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); - distance(__middle, __second_cut, __len22); - } - else { - __len22 = __len2 / 2; - advance(__second_cut, __len22); - __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); - distance(__first, __first_cut, __len11); - } - _BidirectionalIter __new_middle - = rotate(__first_cut, __middle, __second_cut); - __merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22, - __comp); - __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, - __len2 - __len22, __comp); -} - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _Distance> -_BidirectionalIter1 __rotate_adaptive(_BidirectionalIter1 __first, - _BidirectionalIter1 __middle, - _BidirectionalIter1 __last, - _Distance __len1, _Distance __len2, - _BidirectionalIter2 __buffer, - _Distance __buffer_size) -{ - _BidirectionalIter2 __buffer_end; - if (__len1 > __len2 && __len2 <= __buffer_size) { - __buffer_end = copy(__middle, __last, __buffer); - copy_backward(__first, __middle, __last); - return copy(__buffer, __buffer_end, __first); - } - else if (__len1 <= __buffer_size) { - __buffer_end = copy(__first, __middle, __buffer); - copy(__middle, __last, __first); - return copy_backward(__buffer, __buffer_end, __last); - } - else - return rotate(__first, __middle, __last); -} - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BidirectionalIter3> -_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1, - _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, - _BidirectionalIter2 __last2, - _BidirectionalIter3 __result) -{ - if (__first1 == __last1) - return copy_backward(__first2, __last2, __result); - if (__first2 == __last2) - return copy_backward(__first1, __last1, __result); - --__last1; - --__last2; - while (true) { - if (*__last2 < *__last1) { - *--__result = *__last1; + template<typename _BidirectionalIter1, typename _BidirectionalIter2, + typename _BidirectionalIter3> + _BidirectionalIter3 + __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, + _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, + _BidirectionalIter3 __result) + { if (__first1 == __last1) - return copy_backward(__first2, ++__last2, __result); - --__last1; - } - else { - *--__result = *__last2; + return copy_backward(__first2, __last2, __result); if (__first2 == __last2) - return copy_backward(__first1, ++__last1, __result); + return copy_backward(__first1, __last1, __result); + --__last1; --__last2; + while (true) { + if (*__last2 < *__last1) { + *--__result = *__last1; + if (__first1 == __last1) + return copy_backward(__first2, ++__last2, __result); + --__last1; + } + else { + *--__result = *__last2; + if (__first2 == __last2) + return copy_backward(__first1, ++__last1, __result); + --__last2; + } + } } - } -} - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BidirectionalIter3, class _Compare> -_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1, - _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, - _BidirectionalIter2 __last2, - _BidirectionalIter3 __result, - _Compare __comp) -{ - if (__first1 == __last1) - return copy_backward(__first2, __last2, __result); - if (__first2 == __last2) - return copy_backward(__first1, __last1, __result); - --__last1; - --__last2; - while (true) { - if (__comp(*__last2, *__last1)) { - *--__result = *__last1; + + template<typename _BidirectionalIter1, typename _BidirectionalIter2, + typename _BidirectionalIter3, typename _Compare> + _BidirectionalIter3 + __merge_backward(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, + _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, + _BidirectionalIter3 __result, + _Compare __comp) + { if (__first1 == __last1) - return copy_backward(__first2, ++__last2, __result); - --__last1; - } - else { - *--__result = *__last2; + return copy_backward(__first2, __last2, __result); if (__first2 == __last2) - return copy_backward(__first1, ++__last1, __result); + return copy_backward(__first1, __last1, __result); + --__last1; --__last2; + while (true) { + if (__comp(*__last2, *__last1)) { + *--__result = *__last1; + if (__first1 == __last1) + return copy_backward(__first2, ++__last2, __result); + --__last1; + } + else { + *--__result = *__last2; + if (__first2 == __last2) + return copy_backward(__first1, ++__last1, __result); + --__last2; + } + } } - } -} -template <class _BidirectionalIter, class _Distance, class _Pointer> -void __merge_adaptive(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2, - _Pointer __buffer, _Distance __buffer_size) -{ - if (__len1 <= __len2 && __len1 <= __buffer_size) { - _Pointer __buffer_end = copy(__first, __middle, __buffer); - merge(__buffer, __buffer_end, __middle, __last, __first); - } - else if (__len2 <= __buffer_size) { - _Pointer __buffer_end = copy(__middle, __last, __buffer); - __merge_backward(__first, __middle, __buffer, __buffer_end, __last); - } - else { - _BidirectionalIter __first_cut = __first; - _BidirectionalIter __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) { - __len11 = __len1 / 2; - advance(__first_cut, __len11); - __second_cut = lower_bound(__middle, __last, *__first_cut); - distance(__middle, __second_cut, __len22); - } - else { - __len22 = __len2 / 2; - advance(__second_cut, __len22); - __first_cut = upper_bound(__first, __middle, *__second_cut); - distance(__first, __first_cut, __len11); - } - _BidirectionalIter __new_middle = - __rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, - __len22, __buffer, __buffer_size); - __merge_adaptive(__first, __first_cut, __new_middle, __len11, - __len22, __buffer, __buffer_size); - __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, - __len2 - __len22, __buffer, __buffer_size); - } -} - -template <class _BidirectionalIter, class _Distance, class _Pointer, - class _Compare> -void __merge_adaptive(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2, - _Pointer __buffer, _Distance __buffer_size, - _Compare __comp) -{ - if (__len1 <= __len2 && __len1 <= __buffer_size) { - _Pointer __buffer_end = copy(__first, __middle, __buffer); - merge(__buffer, __buffer_end, __middle, __last, __first, __comp); - } - else if (__len2 <= __buffer_size) { - _Pointer __buffer_end = copy(__middle, __last, __buffer); - __merge_backward(__first, __middle, __buffer, __buffer_end, __last, - __comp); - } - else { - _BidirectionalIter __first_cut = __first; - _BidirectionalIter __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) { - __len11 = __len1 / 2; - advance(__first_cut, __len11); - __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); - distance(__middle, __second_cut, __len22); - } - else { - __len22 = __len2 / 2; - advance(__second_cut, __len22); - __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); - distance(__first, __first_cut, __len11); - } - _BidirectionalIter __new_middle = - __rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, - __len22, __buffer, __buffer_size); - __merge_adaptive(__first, __first_cut, __new_middle, __len11, - __len22, __buffer, __buffer_size, __comp); - __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, - __len2 - __len22, __buffer, __buffer_size, __comp); - } -} - -template <class _BidirectionalIter, class _Tp, class _Distance> -inline void __inplace_merge_aux(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, _Tp*, _Distance*) -{ - _Distance __len1 = 0; - distance(__first, __middle, __len1); - _Distance __len2 = 0; - distance(__middle, __last, __len2); - - _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last); - if (__buf.begin() == 0) - __merge_without_buffer(__first, __middle, __last, __len1, __len2); - else - __merge_adaptive(__first, __middle, __last, __len1, __len2, - __buf.begin(), _Distance(__buf.size())); -} - -template <class _BidirectionalIter, class _Tp, - class _Distance, class _Compare> -inline void __inplace_merge_aux(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, _Tp*, _Distance*, - _Compare __comp) -{ - _Distance __len1 = 0; - distance(__first, __middle, __len1); - _Distance __len2 = 0; - distance(__middle, __last, __len2); - - _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last); - if (__buf.begin() == 0) - __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); - else - __merge_adaptive(__first, __middle, __last, __len1, __len2, - __buf.begin(), _Distance(__buf.size()), - __comp); -} - -template <class _BidirectionalIter> -inline void inplace_merge(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< - _BidirectionalIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_BidirectionalIter>::value_type>); - - if (__first == __middle || __middle == __last) - return; - __inplace_merge_aux(__first, __middle, __last, - __value_type(__first), __distance_type(__first)); -} - -template <class _BidirectionalIter, class _Compare> -inline void inplace_merge(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< - _BidirectionalIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_BidirectionalIter>::value_type, - typename iterator_traits<_BidirectionalIter>::value_type>); - - if (__first == __middle || __middle == __last) - return; - __inplace_merge_aux(__first, __middle, __last, - __value_type(__first), __distance_type(__first), - __comp); -} - -// Set algorithms: includes, set_union, set_intersection, set_difference, -// set_symmetric_difference. All of these algorithms have the precondition -// that their input ranges are sorted and the postcondition that their output -// ranges are sorted. - -template <class _InputIter1, class _InputIter2> -bool includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (*__first2 < *__first1) - return false; - else if(*__first1 < *__first2) - ++__first1; - else - ++__first1, ++__first2; - - return __first2 == __last2; -} - -template <class _InputIter1, class _InputIter2, class _Compare> -bool includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first2, *__first1)) - return false; - else if(__comp(*__first1, *__first2)) - ++__first1; - else - ++__first1, ++__first2; - - return __first2 == __last2; -} - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) { - if (*__first1 < *__first2) { - *__result = *__first1; - ++__first1; - } - else if (*__first2 < *__first1) { - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - ++__first2; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first1, *__first2)) { - *__result = *__first1; - ++__first1; - } - else if (__comp(*__first2, *__first1)) { - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - ++__first2; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (*__first1 < *__first2) - ++__first1; - else if (*__first2 < *__first1) - ++__first2; - else { - *__result = *__first1; - ++__first1; - ++__first2; - ++__result; - } - return __result; -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first1, *__first2)) - ++__first1; - else if (__comp(*__first2, *__first1)) - ++__first2; - else { - *__result = *__first1; - ++__first1; - ++__first2; - ++__result; - } - return __result; -} - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (*__first1 < *__first2) { - *__result = *__first1; - ++__first1; - ++__result; - } - else if (*__first2 < *__first1) - ++__first2; - else { - ++__first1; - ++__first2; - } - return copy(__first1, __last1, __result); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first1, *__first2)) { - *__result = *__first1; - ++__first1; - ++__result; - } - else if (__comp(*__first2, *__first1)) - ++__first2; - else { - ++__first1; - ++__first2; - } - return copy(__first1, __last1, __result); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter -set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (*__first1 < *__first2) { - *__result = *__first1; - ++__first1; - ++__result; - } - else if (*__first2 < *__first1) { - *__result = *__first2; - ++__first2; - ++__result; - } - else { - ++__first1; - ++__first2; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter -set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_SameTypeConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first1, *__first2)) { - *__result = *__first1; - ++__first1; - ++__result; - } - else if (__comp(*__first2, *__first1)) { - *__result = *__first2; - ++__first2; - ++__result; - } - else { - ++__first1; - ++__first2; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -// min_element and max_element, with and without an explicitly supplied -// comparison function. - -template <class _ForwardIter> -_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) - if (*__result < *__first) - __result = __first; - return __result; -} - -template <class _ForwardIter, class _Compare> -_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_ForwardIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) - if (__comp(*__result, *__first)) __result = __first; - return __result; -} - -template <class _ForwardIter> -_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) - if (*__first < *__result) - __result = __first; - return __result; -} - -template <class _ForwardIter, class _Compare> -_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_ForwardIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) - if (__comp(*__first, *__result)) - __result = __first; - return __result; -} - -// next_permutation and prev_permutation, with and without an explicitly -// supplied comparison function. - -template <class _BidirectionalIter> -bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_BidirectionalIter>::value_type>); - - if (__first == __last) - return false; - _BidirectionalIter __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) { - _BidirectionalIter __ii = __i; - --__i; - if (*__i < *__ii) { - _BidirectionalIter __j = __last; - while (!(*__i < *--__j)) - {} - iter_swap(__i, __j); - reverse(__ii, __last); - return true; + template<typename _BidirectionalIter, typename _Distance, typename _Pointer> + void + __merge_adaptive(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last, + _Distance __len1, _Distance __len2, + _Pointer __buffer, _Distance __buffer_size) + { + if (__len1 <= __len2 && __len1 <= __buffer_size) { + _Pointer __buffer_end = copy(__first, __middle, __buffer); + merge(__buffer, __buffer_end, __middle, __last, __first); + } + else if (__len2 <= __buffer_size) { + _Pointer __buffer_end = copy(__middle, __last, __buffer); + __merge_backward(__first, __middle, __buffer, __buffer_end, __last); + } + else { + _BidirectionalIter __first_cut = __first; + _BidirectionalIter __second_cut = __middle; + _Distance __len11 = 0; + _Distance __len22 = 0; + if (__len1 > __len2) { + __len11 = __len1 / 2; + advance(__first_cut, __len11); + __second_cut = lower_bound(__middle, __last, *__first_cut); + __len22 = distance(__middle, __second_cut); + } + else { + __len22 = __len2 / 2; + advance(__second_cut, __len22); + __first_cut = upper_bound(__first, __middle, *__second_cut); + __len11 = distance(__first, __first_cut); + } + _BidirectionalIter __new_middle = + __rotate_adaptive(__first_cut, __middle, __second_cut, + __len1 - __len11, __len22, __buffer, + __buffer_size); + __merge_adaptive(__first, __first_cut, __new_middle, __len11, + __len22, __buffer, __buffer_size); + __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, + __len2 - __len22, __buffer, __buffer_size); + } + } + + template<typename _BidirectionalIter, typename _Distance, typename _Pointer, + typename _Compare> + void + __merge_adaptive(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last, + _Distance __len1, _Distance __len2, + _Pointer __buffer, _Distance __buffer_size, + _Compare __comp) + { + if (__len1 <= __len2 && __len1 <= __buffer_size) { + _Pointer __buffer_end = copy(__first, __middle, __buffer); + merge(__buffer, __buffer_end, __middle, __last, __first, __comp); + } + else if (__len2 <= __buffer_size) { + _Pointer __buffer_end = copy(__middle, __last, __buffer); + __merge_backward(__first, __middle, __buffer, __buffer_end, __last, + __comp); + } + else { + _BidirectionalIter __first_cut = __first; + _BidirectionalIter __second_cut = __middle; + _Distance __len11 = 0; + _Distance __len22 = 0; + if (__len1 > __len2) { + __len11 = __len1 / 2; + advance(__first_cut, __len11); + __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); + __len22 = distance(__middle, __second_cut); + } + else { + __len22 = __len2 / 2; + advance(__second_cut, __len22); + __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); + __len11 = distance(__first, __first_cut); + } + _BidirectionalIter __new_middle = + __rotate_adaptive(__first_cut, __middle, __second_cut, + __len1 - __len11, __len22, __buffer, + __buffer_size); + __merge_adaptive(__first, __first_cut, __new_middle, __len11, + __len22, __buffer, __buffer_size, __comp); + __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, + __len2 - __len22, __buffer, __buffer_size, __comp); + } + } + + template<typename _BidirectionalIter> + void + inplace_merge(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last) + { + typedef typename iterator_traits<_BidirectionalIter>::value_type + _ValueType; + typedef typename iterator_traits<_BidirectionalIter>::difference_type + _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< + _BidirectionalIter>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + if (__first == __middle || __middle == __last) + return; + + _DistanceType __len1 = distance(__first, __middle); + _DistanceType __len2 = distance(__middle, __last); + + _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, __last); + if (__buf.begin() == 0) + __merge_without_buffer(__first, __middle, __last, __len1, __len2); + else + __merge_adaptive(__first, __middle, __last, __len1, __len2, + __buf.begin(), _DistanceType(__buf.size())); + } + + template<typename _BidirectionalIter, typename _Compare> + void + inplace_merge(_BidirectionalIter __first, + _BidirectionalIter __middle, + _BidirectionalIter __last, + _Compare __comp) + { + typedef typename iterator_traits<_BidirectionalIter>::value_type + _ValueType; + typedef typename iterator_traits<_BidirectionalIter>::difference_type + _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept< + _BidirectionalIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + _ValueType, _ValueType>); + + if (__first == __middle || __middle == __last) + return; + + _DistanceType __len1 = distance(__first, __middle); + _DistanceType __len2 = distance(__middle, __last); + + _Temporary_buffer<_BidirectionalIter, _ValueType> __buf(__first, __last); + if (__buf.begin() == 0) + __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); + else + __merge_adaptive(__first, __middle, __last, __len1, __len2, + __buf.begin(), _DistanceType(__buf.size()), + __comp); + } + + // Set algorithms: includes, set_union, set_intersection, set_difference, + // set_symmetric_difference. All of these algorithms have the precondition + // that their input ranges are sorted and the postcondition that their output + // ranges are sorted. + + template<typename _InputIter1, typename _InputIter2> + bool + includes(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (*__first2 < *__first1) + return false; + else if(*__first1 < *__first2) + ++__first1; + else + ++__first1, ++__first2; + + return __first2 == __last2; + } + + template<typename _InputIter1, typename _InputIter2, typename _Compare> + bool + includes(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (__comp(*__first2, *__first1)) + return false; + else if(__comp(*__first1, *__first2)) + ++__first1; + else + ++__first1, ++__first2; + + return __first2 == __last2; + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter> + _OutputIter + set_union(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) { + if (*__first1 < *__first2) { + *__result = *__first1; + ++__first1; + } + else if (*__first2 < *__first1) { + *__result = *__first2; + ++__first2; + } + else { + *__result = *__first1; + ++__first1; + ++__first2; + } + ++__result; + } + return copy(__first2, __last2, copy(__first1, __last1, __result)); + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter, + typename _Compare> + _OutputIter + set_union(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) { + if (__comp(*__first1, *__first2)) { + *__result = *__first1; + ++__first1; + } + else if (__comp(*__first2, *__first1)) { + *__result = *__first2; + ++__first2; + } + else { + *__result = *__first1; + ++__first1; + ++__first2; + } + ++__result; + } + return copy(__first2, __last2, copy(__first1, __last1, __result)); + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter> + _OutputIter + set_intersection(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (*__first1 < *__first2) + ++__first1; + else if (*__first2 < *__first1) + ++__first2; + else { + *__result = *__first1; + ++__first1; + ++__first2; + ++__result; + } + return __result; + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter, + typename _Compare> + _OutputIter + set_intersection(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (__comp(*__first1, *__first2)) + ++__first1; + else if (__comp(*__first2, *__first1)) + ++__first2; + else { + *__result = *__first1; + ++__first1; + ++__first2; + ++__result; + } + return __result; + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter> + _OutputIter + set_difference(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (*__first1 < *__first2) { + *__result = *__first1; + ++__first1; + ++__result; + } + else if (*__first2 < *__first1) + ++__first2; + else { + ++__first1; + ++__first2; + } + return copy(__first1, __last1, __result); + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter, + typename _Compare> + _OutputIter + set_difference(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (__comp(*__first1, *__first2)) { + *__result = *__first1; + ++__first1; + ++__result; + } + else if (__comp(*__first2, *__first1)) + ++__first2; + else { + ++__first1; + ++__first2; + } + return copy(__first1, __last1, __result); + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter> + _OutputIter + set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (*__first1 < *__first2) { + *__result = *__first1; + ++__first1; + ++__result; + } + else if (*__first2 < *__first1) { + *__result = *__first2; + ++__first2; + ++__result; + } + else { + ++__first1; + ++__first2; + } + return copy(__first2, __last2, copy(__first1, __last1, __result)); + } + + template<typename _InputIter1, typename _InputIter2, typename _OutputIter, + typename _Compare> + _OutputIter + set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _OutputIter __result, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_SameTypeConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && __first2 != __last2) + if (__comp(*__first1, *__first2)) { + *__result = *__first1; + ++__first1; + ++__result; + } + else if (__comp(*__first2, *__first1)) { + *__result = *__first2; + ++__first2; + ++__result; + } + else { + ++__first1; + ++__first2; + } + return copy(__first2, __last2, copy(__first1, __last1, __result)); + } + + // min_element and max_element, with and without an explicitly supplied + // comparison function. + + template<typename _ForwardIter> + _ForwardIter + max_element(_ForwardIter __first, _ForwardIter __last) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_ForwardIter>::value_type>); + + if (__first == __last) return __first; + _ForwardIter __result = __first; + while (++__first != __last) + if (*__result < *__first) + __result = __first; + return __result; + } + + template<typename _ForwardIter, typename _Compare> + _ForwardIter + max_element(_ForwardIter __first, _ForwardIter __last, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_ForwardIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + + if (__first == __last) return __first; + _ForwardIter __result = __first; + while (++__first != __last) + if (__comp(*__result, *__first)) __result = __first; + return __result; + } + + template<typename _ForwardIter> + _ForwardIter + min_element(_ForwardIter __first, _ForwardIter __last) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_ForwardIter>::value_type>); + + if (__first == __last) return __first; + _ForwardIter __result = __first; + while (++__first != __last) + if (*__first < *__result) + __result = __first; + return __result; + } + + template<typename _ForwardIter, typename _Compare> + _ForwardIter + min_element(_ForwardIter __first, _ForwardIter __last, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_ForwardIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + + if (__first == __last) return __first; + _ForwardIter __result = __first; + while (++__first != __last) + if (__comp(*__first, *__result)) + __result = __first; + return __result; + } + + // next_permutation and prev_permutation, with and without an explicitly + // supplied comparison function. + + template<typename _BidirectionalIter> + bool + next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_BidirectionalIter>::value_type>); + + if (__first == __last) + return false; + _BidirectionalIter __i = __first; + ++__i; + if (__i == __last) + return false; + __i = __last; + --__i; + + for(;;) { + _BidirectionalIter __ii = __i; + --__i; + if (*__i < *__ii) { + _BidirectionalIter __j = __last; + while (!(*__i < *--__j)) + {} + iter_swap(__i, __j); + reverse(__ii, __last); + return true; + } + if (__i == __first) { + reverse(__first, __last); + return false; + } + } } - if (__i == __first) { - reverse(__first, __last); - return false; + + template<typename _BidirectionalIter, typename _Compare> + bool + next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_BidirectionalIter>::value_type, + typename iterator_traits<_BidirectionalIter>::value_type>); + + if (__first == __last) + return false; + _BidirectionalIter __i = __first; + ++__i; + if (__i == __last) + return false; + __i = __last; + --__i; + + for(;;) { + _BidirectionalIter __ii = __i; + --__i; + if (__comp(*__i, *__ii)) { + _BidirectionalIter __j = __last; + while (!__comp(*__i, *--__j)) + {} + iter_swap(__i, __j); + reverse(__ii, __last); + return true; + } + if (__i == __first) { + reverse(__first, __last); + return false; + } + } } - } -} -template <class _BidirectionalIter, class _Compare> -bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_BidirectionalIter>::value_type, - typename iterator_traits<_BidirectionalIter>::value_type>); - - if (__first == __last) - return false; - _BidirectionalIter __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) { - _BidirectionalIter __ii = __i; - --__i; - if (__comp(*__i, *__ii)) { - _BidirectionalIter __j = __last; - while (!__comp(*__i, *--__j)) - {} - iter_swap(__i, __j); - reverse(__ii, __last); - return true; + template<typename _BidirectionalIter> + bool + prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_BidirectionalIter>::value_type>); + + if (__first == __last) + return false; + _BidirectionalIter __i = __first; + ++__i; + if (__i == __last) + return false; + __i = __last; + --__i; + + for(;;) { + _BidirectionalIter __ii = __i; + --__i; + if (*__ii < *__i) { + _BidirectionalIter __j = __last; + while (!(*--__j < *__i)) + {} + iter_swap(__i, __j); + reverse(__ii, __last); + return true; + } + if (__i == __first) { + reverse(__first, __last); + return false; + } + } } - if (__i == __first) { - reverse(__first, __last); - return false; + + template<typename _BidirectionalIter, typename _Compare> + bool + prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, + typename iterator_traits<_BidirectionalIter>::value_type, + typename iterator_traits<_BidirectionalIter>::value_type>); + + if (__first == __last) + return false; + _BidirectionalIter __i = __first; + ++__i; + if (__i == __last) + return false; + __i = __last; + --__i; + + for(;;) { + _BidirectionalIter __ii = __i; + --__i; + if (__comp(*__ii, *__i)) { + _BidirectionalIter __j = __last; + while (!__comp(*--__j, *__i)) + {} + iter_swap(__i, __j); + reverse(__ii, __last); + return true; + } + if (__i == __first) { + reverse(__first, __last); + return false; + } + } } - } -} -template <class _BidirectionalIter> -bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_BidirectionalIter>::value_type>); - - if (__first == __last) - return false; - _BidirectionalIter __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) { - _BidirectionalIter __ii = __i; - --__i; - if (*__ii < *__i) { - _BidirectionalIter __j = __last; - while (!(*--__j < *__i)) - {} - iter_swap(__i, __j); - reverse(__ii, __last); - return true; + // find_first_of, with and without an explicitly supplied comparison function. + + template<typename _InputIter, typename _ForwardIter> + _InputIter + find_first_of(_InputIter __first1, _InputIter __last1, + _ForwardIter __first2, _ForwardIter __last2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_InputIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + + for ( ; __first1 != __last1; ++__first1) + for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) + if (*__first1 == *__iter) + return __first1; + return __last1; } - if (__i == __first) { - reverse(__first, __last); - return false; + + template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> + _InputIter + find_first_of(_InputIter __first1, _InputIter __last1, + _ForwardIter __first2, _ForwardIter __last2, + _BinaryPredicate __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_InputIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, + typename iterator_traits<_InputIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + + for ( ; __first1 != __last1; ++__first1) + for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) + if (__comp(*__first1, *__iter)) + return __first1; + return __last1; } - } -} -template <class _BidirectionalIter, class _Compare> -bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_Compare, - typename iterator_traits<_BidirectionalIter>::value_type, - typename iterator_traits<_BidirectionalIter>::value_type>); - - if (__first == __last) - return false; - _BidirectionalIter __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) { - _BidirectionalIter __ii = __i; - --__i; - if (__comp(*__ii, *__i)) { - _BidirectionalIter __j = __last; - while (!__comp(*--__j, *__i)) - {} - iter_swap(__i, __j); - reverse(__ii, __last); - return true; + + // find_end, with and without an explicitly supplied comparison function. + // Search [first2, last2) as a subsequence in [first1, last1), and return + // the *last* possible match. Note that find_end for bidirectional iterators + // is much faster than for forward iterators. + + // find_end for forward iterators. + template<typename _ForwardIter1, typename _ForwardIter2> + _ForwardIter1 + __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2, _ForwardIter2 __last2, + forward_iterator_tag, forward_iterator_tag) + { + if (__first2 == __last2) + return __last1; + else { + _ForwardIter1 __result = __last1; + while (1) { + _ForwardIter1 __new_result + = search(__first1, __last1, __first2, __last2); + if (__new_result == __last1) + return __result; + else { + __result = __new_result; + __first1 = __new_result; + ++__first1; + } + } + } } - if (__i == __first) { - reverse(__first, __last); - return false; + + template<typename _ForwardIter1, typename _ForwardIter2, + typename _BinaryPredicate> + _ForwardIter1 + __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2, _ForwardIter2 __last2, + forward_iterator_tag, forward_iterator_tag, + _BinaryPredicate __comp) + { + if (__first2 == __last2) + return __last1; + else { + _ForwardIter1 __result = __last1; + while (1) { + _ForwardIter1 __new_result + = search(__first1, __last1, __first2, __last2, __comp); + if (__new_result == __last1) + return __result; + else { + __result = __new_result; + __first1 = __new_result; + ++__first1; + } + } + } } - } -} -// find_first_of, with and without an explicitly supplied comparison function. + // find_end for bidirectional iterators. Requires partial specialization. + template<typename _BidirectionalIter1, typename _BidirectionalIter2> + _BidirectionalIter1 + __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, + _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, + bidirectional_iterator_tag, bidirectional_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter1>); + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter2>); -template <class _InputIter, class _ForwardIter> -_InputIter find_first_of(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - - for ( ; __first1 != __last1; ++__first1) - for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) - if (*__first1 == *__iter) - return __first1; - return __last1; -} - -template <class _InputIter, class _ForwardIter, class _BinaryPredicate> -_InputIter find_first_of(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2, - _BinaryPredicate __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, - typename iterator_traits<_InputIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - - for ( ; __first1 != __last1; ++__first1) - for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) - if (__comp(*__first1, *__iter)) - return __first1; - return __last1; -} - - -// find_end, with and without an explicitly supplied comparison function. -// Search [first2, last2) as a subsequence in [first1, last1), and return -// the *last* possible match. Note that find_end for bidirectional iterators -// is much faster than for forward iterators. - -// find_end for forward iterators. -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - forward_iterator_tag, forward_iterator_tag) -{ - if (__first2 == __last2) - return __last1; - else { - _ForwardIter1 __result = __last1; - while (1) { - _ForwardIter1 __new_result - = search(__first1, __last1, __first2, __last2); - if (__new_result == __last1) - return __result; + typedef reverse_iterator<_BidirectionalIter1> _RevIter1; + typedef reverse_iterator<_BidirectionalIter2> _RevIter2; + + _RevIter1 __rlast1(__first1); + _RevIter2 __rlast2(__first2); + _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, + _RevIter2(__last2), __rlast2); + + if (__rresult == __rlast1) + return __last1; else { - __result = __new_result; - __first1 = __new_result; - ++__first1; + _BidirectionalIter1 __result = __rresult.base(); + advance(__result, -distance(__first2, __last2)); + return __result; } } - } -} -template <class _ForwardIter1, class _ForwardIter2, - class _BinaryPredicate> -_ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - forward_iterator_tag, forward_iterator_tag, - _BinaryPredicate __comp) -{ - if (__first2 == __last2) - return __last1; - else { - _ForwardIter1 __result = __last1; - while (1) { - _ForwardIter1 __new_result - = search(__first1, __last1, __first2, __last2, __comp); - if (__new_result == __last1) - return __result; + template<typename _BidirectionalIter1, typename _BidirectionalIter2, + typename _BinaryPredicate> + _BidirectionalIter1 + __find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, + _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, + bidirectional_iterator_tag, bidirectional_iterator_tag, + _BinaryPredicate __comp) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter1>); + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter2>); + + typedef reverse_iterator<_BidirectionalIter1> _RevIter1; + typedef reverse_iterator<_BidirectionalIter2> _RevIter2; + + _RevIter1 __rlast1(__first1); + _RevIter2 __rlast2(__first2); + _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, + _RevIter2(__last2), __rlast2, + __comp); + + if (__rresult == __rlast1) + return __last1; else { - __result = __new_result; - __first1 = __new_result; - ++__first1; + _BidirectionalIter1 __result = __rresult.base(); + advance(__result, -distance(__first2, __last2)); + return __result; } } - } -} -// find_end for bidirectional iterators. Requires partial specialization. -template <class _BidirectionalIter1, class _BidirectionalIter2> -_BidirectionalIter1 -__find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, - bidirectional_iterator_tag, bidirectional_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter1>); - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter2>); - - typedef reverse_iterator<_BidirectionalIter1> _RevIter1; - typedef reverse_iterator<_BidirectionalIter2> _RevIter2; - - _RevIter1 __rlast1(__first1); - _RevIter2 __rlast2(__first2); - _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, - _RevIter2(__last2), __rlast2); - - if (__rresult == __rlast1) - return __last1; - else { - _BidirectionalIter1 __result = __rresult.base(); - advance(__result, -distance(__first2, __last2)); - return __result; - } -} - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BinaryPredicate> -_BidirectionalIter1 -__find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, - bidirectional_iterator_tag, bidirectional_iterator_tag, - _BinaryPredicate __comp) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter1>); - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIter2>); + // Dispatching functions for find_end. + + template<typename _ForwardIter1, typename _ForwardIter2> + inline _ForwardIter1 + find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2, _ForwardIter2 __last2) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_ForwardIter1>::value_type, + typename iterator_traits<_ForwardIter2>::value_type>); + + return __find_end(__first1, __last1, __first2, __last2, + __iterator_category(__first1), + __iterator_category(__first2)); + } + + template<typename _ForwardIter1, typename _ForwardIter2, + typename _BinaryPredicate> + inline _ForwardIter1 + find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, + _ForwardIter2 __first2, _ForwardIter2 __last2, + _BinaryPredicate __comp) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); + __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, + typename iterator_traits<_ForwardIter1>::value_type, + typename iterator_traits<_ForwardIter2>::value_type>); + + return __find_end(__first1, __last1, __first2, __last2, + __iterator_category(__first1), + __iterator_category(__first2), + __comp); + } + + // is_heap, a predicate testing whether or not a range is + // a heap. This function is an extension, not part of the C++ + // standard. + + template<typename _RandomAccessIter, typename _Distance> + bool + __is_heap(_RandomAccessIter __first, _Distance __n) + { + _Distance __parent = 0; + for (_Distance __child = 1; __child < __n; ++__child) { + if (__first[__parent] < __first[__child]) + return false; + if ((__child & 1) == 0) + ++__parent; + } + return true; + } - typedef reverse_iterator<_BidirectionalIter1> _RevIter1; - typedef reverse_iterator<_BidirectionalIter2> _RevIter2; + template<typename _RandomAccessIter, typename _Distance, + typename _StrictWeakOrdering> + bool + __is_heap(_RandomAccessIter __first, _StrictWeakOrdering __comp, + _Distance __n) + { + _Distance __parent = 0; + for (_Distance __child = 1; __child < __n; ++__child) { + if (__comp(__first[__parent], __first[__child])) + return false; + if ((__child & 1) == 0) + ++__parent; + } + return true; + } - _RevIter1 __rlast1(__first1); - _RevIter2 __rlast2(__first2); - _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, - _RevIter2(__last2), __rlast2, - __comp); + template<typename _RandomAccessIter> + inline bool + is_heap(_RandomAccessIter __first, _RandomAccessIter __last) + { + // concept requirements + __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIter>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_RandomAccessIter>::value_type>); - if (__rresult == __rlast1) - return __last1; - else { - _BidirectionalIter1 __result = __rresult.base(); - advance(__result, -distance(__first2, __last2)); - return __result; - } -} - -// Dispatching functions for find_end. - -template <class _ForwardIter1, class _ForwardIter2> -inline _ForwardIter1 -find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_ForwardIter1>::value_type, - typename iterator_traits<_ForwardIter2>::value_type>); - - return __find_end(__first1, __last1, __first2, __last2, - __iterator_category(__first1), - __iterator_category(__first2)); -} - -template <class _ForwardIter1, class _ForwardIter2, - class _BinaryPredicate> -inline _ForwardIter1 -find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - _BinaryPredicate __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter1>); - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter2>); - __glibcpp_function_requires(_BinaryPredicateConcept<_BinaryPredicate, - typename iterator_traits<_ForwardIter1>::value_type, - typename iterator_traits<_ForwardIter2>::value_type>); - - return __find_end(__first1, __last1, __first2, __last2, - __iterator_category(__first1), - __iterator_category(__first2), - __comp); -} - -// is_heap, a predicate testing whether or not a range is -// a heap. This function is an extension, not part of the C++ -// standard. - -template <class _RandomAccessIter, class _Distance> -bool __is_heap(_RandomAccessIter __first, _Distance __n) -{ - _Distance __parent = 0; - for (_Distance __child = 1; __child < __n; ++__child) { - if (__first[__parent] < __first[__child]) - return false; - if ((__child & 1) == 0) - ++__parent; - } - return true; -} - -template <class _RandomAccessIter, class _Distance, class _StrictWeakOrdering> -bool __is_heap(_RandomAccessIter __first, _StrictWeakOrdering __comp, - _Distance __n) -{ - _Distance __parent = 0; - for (_Distance __child = 1; __child < __n; ++__child) { - if (__comp(__first[__parent], __first[__child])) - return false; - if ((__child & 1) == 0) - ++__parent; - } - return true; -} - -template <class _RandomAccessIter> -inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last) -{ - // concept requirements - __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIter>::value_type>); + return __is_heap(__first, __last - __first); + } - return __is_heap(__first, __last - __first); -} + template<typename _RandomAccessIter, typename _StrictWeakOrdering> + inline bool + is_heap(_RandomAccessIter __first, _RandomAccessIter __last, + _StrictWeakOrdering __comp) + { + // concept requirements + __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_StrictWeakOrdering, + typename iterator_traits<_RandomAccessIter>::value_type, + typename iterator_traits<_RandomAccessIter>::value_type>); -template <class _RandomAccessIter, class _StrictWeakOrdering> -inline bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last, - _StrictWeakOrdering __comp) -{ - // concept requirements - __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_StrictWeakOrdering, - typename iterator_traits<_RandomAccessIter>::value_type, - typename iterator_traits<_RandomAccessIter>::value_type>); + return __is_heap(__first, __comp, __last - __first); + } - return __is_heap(__first, __comp, __last - __first); -} + // is_sorted, a predicated testing whether a range is sorted in + // nondescending order. This is an extension, not part of the C++ + // standard. -// is_sorted, a predicated testing whether a range is sorted in -// nondescending order. This is an extension, not part of the C++ -// standard. + template<typename _ForwardIter> + bool + is_sorted(_ForwardIter __first, _ForwardIter __last) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_ForwardIter>::value_type>); -template <class _ForwardIter> -bool is_sorted(_ForwardIter __first, _ForwardIter __last) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) - return true; - - _ForwardIter __next = __first; - for (++__next; __next != __last; __first = __next, ++__next) { - if (*__next < *__first) - return false; - } - - return true; -} - -template <class _ForwardIter, class _StrictWeakOrdering> -bool is_sorted(_ForwardIter __first, _ForwardIter __last, - _StrictWeakOrdering __comp) -{ - // concept requirements - __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_BinaryPredicateConcept<_StrictWeakOrdering, - typename iterator_traits<_ForwardIter>::value_type, - typename iterator_traits<_ForwardIter>::value_type>); - - if (__first == __last) - return true; - - _ForwardIter __next = __first; - for (++__next; __next != __last; __first = __next, ++__next) { - if (__comp(*__next, *__first)) - return false; - } - - return true; -} + if (__first == __last) + return true; + + _ForwardIter __next = __first; + for (++__next; __next != __last; __first = __next, ++__next) { + if (*__next < *__first) + return false; + } + + return true; + } + + template<typename _ForwardIter, typename _StrictWeakOrdering> + bool + is_sorted(_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp) + { + // concept requirements + __glibcpp_function_requires(_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_BinaryPredicateConcept<_StrictWeakOrdering, + typename iterator_traits<_ForwardIter>::value_type, + typename iterator_traits<_ForwardIter>::value_type>); + + if (__first == __last) + return true; + + _ForwardIter __next = __first; + for (++__next; __next != __last; __first = __next, ++__next) { + if (__comp(*__next, *__first)) + return false; + } + + return true; + } } // namespace std diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h index 23679d0..bd8c625 100644 --- a/libstdc++-v3/include/bits/stl_algobase.h +++ b/libstdc++-v3/include/bits/stl_algobase.h @@ -62,12 +62,8 @@ #define __SGI_STL_INTERNAL_ALGOBASE_H #include <bits/c++config.h> -#ifndef __SGI_STL_INTERNAL_PAIR_H #include <bits/stl_pair.h> -#endif -#ifndef _CPP_BITS_TYPE_TRAITS_H #include <bits/type_traits.h> -#endif #include <bits/std_cstring.h> #include <bits/std_climits.h> #include <bits/std_cstdlib.h> @@ -83,648 +79,663 @@ namespace std { -// swap and iter_swap - -template <class _ForwardIter1, class _ForwardIter2, class _Tp> -inline void __iter_swap(_ForwardIter1 __a, _ForwardIter2 __b, _Tp*) -{ - _Tp __tmp = *__a; - *__a = *__b; - *__b = __tmp; -} - -template <class _ForwardIter1, class _ForwardIter2> -inline void iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter1>); - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter2>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_ForwardIter1>::value_type, - typename iterator_traits<_ForwardIter2>::value_type>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_ForwardIter2>::value_type, - typename iterator_traits<_ForwardIter1>::value_type>); - - __iter_swap(__a, __b, __value_type(__a)); -} - -template <class _Tp> -inline void swap(_Tp& __a, _Tp& __b) -{ - // concept requirements - __glibcpp_function_requires(_SGIAssignableConcept<_Tp>); - - _Tp __tmp = __a; - __a = __b; - __b = __tmp; -} - -//-------------------------------------------------- -// min and max - -#undef min -#undef max - -template <class _Tp> -inline const _Tp& min(const _Tp& __a, const _Tp& __b) { - // concept requirements - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - //return __b < __a ? __b : __a; - if (__b < __a) return __b; return __a; -} - -template <class _Tp> -inline const _Tp& max(const _Tp& __a, const _Tp& __b) { - // concept requirements - __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); - //return __a < __b ? __b : __a; - if (__a < __b) return __b; return __a; -} - -template <class _Tp, class _Compare> -inline const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { - //return __comp(__b, __a) ? __b : __a; - if (__comp(__b, __a)) return __b; return __a; -} - -template <class _Tp, class _Compare> -inline const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { - //return __comp(__a, __b) ? __b : __a; - if (__comp(__a, __b)) return __b; return __a; -} - -//-------------------------------------------------- -// copy - -// All of these auxiliary functions serve two purposes. (1) Replace -// calls to copy with memmove whenever possible. (Memmove, not memcpy, -// because the input and output ranges are permitted to overlap.) -// (2) If we're using random access iterators, then write the loop as -// a for loop with an explicit count. - -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __copy(_InputIter __first, _InputIter __last, - _OutputIter __result, - input_iterator_tag, _Distance*) -{ - for ( ; __first != __last; ++__result, ++__first) - *__result = *__first; - return __result; -} - -template <class _RandomAccessIter, class _OutputIter, class _Distance> -inline _OutputIter -__copy(_RandomAccessIter __first, _RandomAccessIter __last, - _OutputIter __result, random_access_iterator_tag, _Distance*) -{ - for (_Distance __n = __last - __first; __n > 0; --__n) { - *__result = *__first; - ++__first; - ++__result; - } - return __result; -} - -template <class _Tp> -inline _Tp* -__copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) -{ - memmove(__result, __first, sizeof(_Tp) * (__last - __first)); - return __result + (__last - __first); -} - - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, - _OutputIter __result, __false_type) -{ - return __copy(__first, __last, __result, - __iterator_category(__first), - __distance_type(__first)); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_aux2(_InputIter __first, _InputIter __last, - _OutputIter __result, __true_type) -{ - return __copy(__first, __last, __result, - __iterator_category(__first), - __distance_type(__first)); -} - -template <class _Tp> -inline _Tp* __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, - __true_type) -{ - return __copy_trivial(__first, __last, __result); -} - -template <class _Tp> -inline _Tp* __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result, - __true_type) -{ - return __copy_trivial(__first, __last, __result); -} - - -template <class _InputIter, class _OutputIter, class _Tp> -inline _OutputIter __copy_aux(_InputIter __first, _InputIter __last, - _OutputIter __result, _Tp*) -{ - typedef typename __type_traits<_Tp>::has_trivial_assignment_operator - _Trivial; - return __copy_aux2(__first, __last, __result, _Trivial()); -} - -template<typename _InputIter, typename _OutputIter> -inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, - _OutputIter __result, __true_type) -{ - return _OutputIter(__copy_aux(__first, __last, __result.base(), - __value_type(__first))); -} - -template<typename _InputIter, typename _OutputIter> -inline _OutputIter __copy_ni2(_InputIter __first, _InputIter __last, - _OutputIter __result, __false_type) -{ - return __copy_aux(__first, __last, __result, __value_type(__first)); -} - -template<typename _InputIter, typename _OutputIter> -inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, - _OutputIter __result, __true_type) -{ - typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; - return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); -} - -template<typename _InputIter, typename _OutputIter> -inline _OutputIter __copy_ni1(_InputIter __first, _InputIter __last, - _OutputIter __result, __false_type) -{ - typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; - return __copy_ni2(__first, __last, __result, __Normal()); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter copy(_InputIter __first, _InputIter __last, - _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - - typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; - return __copy_ni1(__first, __last, __result, __Normal()); -} - -//-------------------------------------------------- -// copy_backward - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _Distance> -inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first, - _BidirectionalIter1 __last, - _BidirectionalIter2 __result, - bidirectional_iterator_tag, - _Distance*) -{ - while (__first != __last) - *--__result = *--__last; - return __result; -} - -template <class _RandomAccessIter, class _BidirectionalIter, class _Distance> -inline _BidirectionalIter __copy_backward(_RandomAccessIter __first, - _RandomAccessIter __last, - _BidirectionalIter __result, - random_access_iterator_tag, - _Distance*) -{ - for (_Distance __n = __last - __first; __n > 0; --__n) - *--__result = *--__last; - return __result; -} - - -// This dispatch class is a workaround for compilers that do not -// have partial ordering of function templates. All we're doing is -// creating a specialization so that we can turn a call to copy_backward -// into a memmove whenever possible. - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BoolType> -struct __copy_backward_dispatch -{ - typedef typename iterator_traits<_BidirectionalIter1>::iterator_category - _Cat; - typedef typename iterator_traits<_BidirectionalIter1>::difference_type + // swap and iter_swap + + template<typename _ForwardIter1, typename _ForwardIter2> + inline void + iter_swap(_ForwardIter1 __a, _ForwardIter2 __b) + { + typedef typename iterator_traits<_ForwardIter1>::value_type _ValueType1; + typedef typename iterator_traits<_ForwardIter2>::value_type _ValueType2; + + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter1>); + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter2>); + __glibcpp_function_requires(_ConvertibleConcept<_ValueType1, _ValueType2>); + __glibcpp_function_requires(_ConvertibleConcept<_ValueType2, _ValueType1>); + + _ValueType1 __tmp = *__a; + *__a = *__b; + *__b = __tmp; + } + + template<typename _Tp> + inline void + swap(_Tp& __a, _Tp& __b) + { + // concept requirements + __glibcpp_function_requires(_SGIAssignableConcept<_Tp>); + + _Tp __tmp = __a; + __a = __b; + __b = __tmp; + } + + //-------------------------------------------------- + // min and max + + #undef min + #undef max + + template<typename _Tp> + inline const _Tp& + min(const _Tp& __a, const _Tp& __b) + { + // concept requirements + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + //return __b < __a ? __b : __a; + if (__b < __a) return __b; return __a; + } + + template<typename _Tp> + inline const _Tp& + max(const _Tp& __a, const _Tp& __b) + { + // concept requirements + __glibcpp_function_requires(_LessThanComparableConcept<_Tp>); + //return __a < __b ? __b : __a; + if (__a < __b) return __b; return __a; + } + + template<typename _Tp, typename _Compare> + inline const _Tp& + min(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + //return __comp(__b, __a) ? __b : __a; + if (__comp(__b, __a)) return __b; return __a; + } + + template<typename _Tp, typename _Compare> + inline const _Tp& + max(const _Tp& __a, const _Tp& __b, _Compare __comp) + { + //return __comp(__a, __b) ? __b : __a; + if (__comp(__a, __b)) return __b; return __a; + } + + //-------------------------------------------------- + // copy + + // All of these auxiliary functions serve two purposes. (1) Replace + // calls to copy with memmove whenever possible. (Memmove, not memcpy, + // because the input and output ranges are permitted to overlap.) + // (2) If we're using random access iterators, then write the loop as + // a for loop with an explicit count. + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy(_InputIter __first, _InputIter __last, + _OutputIter __result, + input_iterator_tag) + { + for ( ; __first != __last; ++__result, ++__first) + *__result = *__first; + return __result; + } + + template<typename _RandomAccessIter, typename _OutputIter> + inline _OutputIter + __copy(_RandomAccessIter __first, _RandomAccessIter __last, + _OutputIter __result, + random_access_iterator_tag) + { + typedef typename iterator_traits<_RandomAccessIter>::difference_type _Distance; - - static _BidirectionalIter2 copy(_BidirectionalIter1 __first, - _BidirectionalIter1 __last, - _BidirectionalIter2 __result) { - return __copy_backward(__first, __last, __result, _Cat(), (_Distance*) 0); - } -}; - -template <class _Tp> -struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> -{ - static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { - const ptrdiff_t _Num = __last - __first; - memmove(__result - _Num, __first, sizeof(_Tp) * _Num); - return __result - _Num; - } -}; - -template <class _Tp> -struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type> -{ - static _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) { - return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> - ::copy(__first, __last, __result); - } -}; - -template <class _BI1, class _BI2> -inline _BI2 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) { - typedef typename __type_traits<typename iterator_traits<_BI2>::value_type> - ::has_trivial_assignment_operator + for (_Distance __n = __last - __first; __n > 0; --__n) { + *__result = *__first; + ++__first; + ++__result; + } + return __result; + } + + template<typename _Tp> + inline _Tp* + __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + memmove(__result, __first, sizeof(_Tp) * (__last - __first)); + return __result + (__last - __first); + } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy_aux2(_InputIter __first, _InputIter __last, + _OutputIter __result, __false_type) + { return __copy(__first, __last, __result, __iterator_category(__first)); } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy_aux2(_InputIter __first, _InputIter __last, + _OutputIter __result, __true_type) + { return __copy(__first, __last, __result, __iterator_category(__first)); } + + template<typename _Tp> + inline _Tp* + __copy_aux2(_Tp* __first, _Tp* __last, + _Tp* __result, __true_type) + { return __copy_trivial(__first, __last, __result); } + + template<typename _Tp> + inline _Tp* + __copy_aux2(const _Tp* __first, const _Tp* __last, + _Tp* __result, __true_type) + { return __copy_trivial(__first, __last, __result); } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy_ni2(_InputIter __first, _InputIter __last, + _OutputIter __result, __true_type) + { + typedef typename iterator_traits<_InputIter>::value_type + _ValueType; + typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator + _Trivial; + return _OutputIter(__copy_aux2(__first, __last, + __result.base(), + _Trivial())); + } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy_ni2(_InputIter __first, _InputIter __last, + _OutputIter __result, __false_type) + { + typedef typename iterator_traits<_InputIter>::value_type + _ValueType; + typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator _Trivial; - return __copy_backward_dispatch<_BI1, _BI2, _Trivial> - ::copy(__first, __last, __result); -} - -template <typename _BI1, typename _BI2> -inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, - _BI2 __result, __true_type) { - return _BI2(__copy_backward_aux(__first, __last, __result.base())); -} - -template <typename _BI1, typename _BI2> -inline _BI2 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, - _BI2 __result, __false_type){ - return __copy_backward_aux(__first, __last, __result); -} - -template <typename _BI1, typename _BI2> -inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, - _BI2 __result, __true_type) { - typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; - return __copy_backward_output_normal_iterator(__first.base(), __last.base(), - __result, __Normal()); -} - -template <typename _BI1, typename _BI2> -inline _BI2 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, - _BI2 __result, __false_type) { - typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; - return __copy_backward_output_normal_iterator(__first, __last, __result, - __Normal()); -} - -template <typename _BI1, typename _BI2> -inline _BI2 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) -{ - // concept requirements - __glibcpp_function_requires(_BidirectionalIteratorConcept<_BI1>); - __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept<_BI2>); - __glibcpp_function_requires(_ConvertibleConcept< - typename iterator_traits<_BI1>::value_type, - typename iterator_traits<_BI2>::value_type>); - - typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; - return __copy_backward_input_normal_iterator(__first, __last, __result, - __Normal()); -} - -//-------------------------------------------------- -// copy_n (not part of the C++ standard) - -template <class _InputIter, class _Size, class _OutputIter> -pair<_InputIter, _OutputIter> __copy_n(_InputIter __first, _Size __count, - _OutputIter __result, - input_iterator_tag) { - for ( ; __count > 0; --__count) { - *__result = *__first; - ++__first; - ++__result; + return __copy_aux2(__first, __last, + __result, + _Trivial()); + } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy_ni1(_InputIter __first, _InputIter __last, + _OutputIter __result, __true_type) + { + typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; + return __copy_ni2(__first.base(), __last.base(), __result, __Normal()); + } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + __copy_ni1(_InputIter __first, _InputIter __last, + _OutputIter __result, __false_type) + { + typedef typename _Is_normal_iterator<_OutputIter>::_Normal __Normal; + return __copy_ni2(__first, __last, __result, __Normal()); + } + + template<typename _InputIter, typename _OutputIter> + inline _OutputIter + copy(_InputIter __first, _InputIter __last, _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + + typedef typename _Is_normal_iterator<_InputIter>::_Normal __Normal; + return __copy_ni1(__first, __last, __result, __Normal()); + } + + //-------------------------------------------------- + // copy_backward + + template<typename _BidirectionalIter1, typename _BidirectionalIter2> + inline _BidirectionalIter2 + __copy_backward(_BidirectionalIter1 __first, _BidirectionalIter1 __last, + _BidirectionalIter2 __result, + bidirectional_iterator_tag) + { + while (__first != __last) + *--__result = *--__last; + return __result; + } + + template<typename _RandomAccessIter, typename _BidirectionalIter> + inline _BidirectionalIter + __copy_backward(_RandomAccessIter __first, _RandomAccessIter __last, + _BidirectionalIter __result, + random_access_iterator_tag) + { + typename iterator_traits<_RandomAccessIter>::difference_type __n; + for (__n = __last - __first; __n > 0; --__n) + *--__result = *--__last; + return __result; + } + + + // This dispatch class is a workaround for compilers that do not + // have partial ordering of function templates. All we're doing is + // creating a specialization so that we can turn a call to copy_backward + // into a memmove whenever possible. + + template<typename _BidirectionalIter1, typename _BidirectionalIter2, + typename _BoolType> + struct __copy_backward_dispatch + { + static _BidirectionalIter2 + copy(_BidirectionalIter1 __first, _BidirectionalIter1 __last, + _BidirectionalIter2 __result) + { + return __copy_backward(__first, __last, + __result, + __iterator_category(__first)); + } + }; + + template<typename _Tp> + struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type> + { + static _Tp* + copy(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + const ptrdiff_t _Num = __last - __first; + memmove(__result - _Num, __first, sizeof(_Tp) * _Num); + return __result - _Num; + } + }; + + template<typename _Tp> + struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type> + { + static _Tp* + copy(const _Tp* __first, const _Tp* __last, _Tp* __result) + { + return __copy_backward_dispatch<_Tp*, _Tp*, __true_type> + ::copy(__first, __last, __result); + } + }; + + template<typename _BI1, typename _BI2> + inline _BI2 + __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) + { + typedef typename __type_traits<typename iterator_traits<_BI2>::value_type> + ::has_trivial_assignment_operator _Trivial; + return __copy_backward_dispatch<_BI1, _BI2, _Trivial> + ::copy(__first, __last, __result); + } + + template <typename _BI1, typename _BI2> + inline _BI2 + __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, + _BI2 __result, __true_type) + { return _BI2(__copy_backward_aux(__first, __last, __result.base())); } + + template <typename _BI1, typename _BI2> + inline _BI2 + __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last, + _BI2 __result, __false_type) + { return __copy_backward_aux(__first, __last, __result); } + + template <typename _BI1, typename _BI2> + inline _BI2 + __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, + _BI2 __result, __true_type) + { + typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; + return __copy_backward_output_normal_iterator(__first.base(), __last.base(), + __result, __Normal()); + } + + template <typename _BI1, typename _BI2> + inline _BI2 + __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last, + _BI2 __result, __false_type) + { + typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal; + return __copy_backward_output_normal_iterator(__first, __last, __result, + __Normal()); + } + + template <typename _BI1, typename _BI2> + inline _BI2 + copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BI1>); + __glibcpp_function_requires(_Mutable_BidirectionalIteratorConcept<_BI2>); + __glibcpp_function_requires(_ConvertibleConcept< + typename iterator_traits<_BI1>::value_type, + typename iterator_traits<_BI2>::value_type>); + + typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal; + return __copy_backward_input_normal_iterator(__first, __last, __result, + __Normal()); + } + + //-------------------------------------------------- + // copy_n (not part of the C++ standard) + + template<typename _InputIter, typename _Size, typename _OutputIter> + pair<_InputIter, _OutputIter> + __copy_n(_InputIter __first, _Size __count, + _OutputIter __result, + input_iterator_tag) + { + for ( ; __count > 0; --__count) { + *__result = *__first; + ++__first; + ++__result; + } + return pair<_InputIter, _OutputIter>(__first, __result); + } + + template<typename _RAIter, typename _Size, typename _OutputIter> + inline pair<_RAIter, _OutputIter> + __copy_n(_RAIter __first, _Size __count, + _OutputIter __result, + random_access_iterator_tag) + { + _RAIter __last = __first + __count; + return pair<_RAIter, _OutputIter>(__last, copy(__first, __last, __result)); + } + + template<typename _InputIter, typename _Size, typename _OutputIter> + inline pair<_InputIter, _OutputIter> + copy_n(_InputIter __first, _Size __count, _OutputIter __result) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, + typename iterator_traits<_InputIter>::value_type>); + + return __copy_n(__first, __count, __result, __iterator_category(__first)); + } + + //-------------------------------------------------- + // fill and fill_n + + + template<typename _ForwardIter, typename _Tp> + void + fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + + for ( ; __first != __last; ++__first) + *__first = __value; + } + + template<typename _OutputIter, typename _Size, typename _Tp> + _OutputIter + fill_n(_OutputIter __first, _Size __n, const _Tp& __value) + { + // concept requirements + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter,_Tp>); + + for ( ; __n > 0; --__n, ++__first) + *__first = __value; + return __first; + } + + // Specialization: for one-byte types we can use memset. + + inline void + fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) + { + unsigned char __tmp = __c; + memset(__first, __tmp, __last - __first); } - return pair<_InputIter, _OutputIter>(__first, __result); -} - -template <class _RAIter, class _Size, class _OutputIter> -inline pair<_RAIter, _OutputIter> -__copy_n(_RAIter __first, _Size __count, - _OutputIter __result, - random_access_iterator_tag) { - _RAIter __last = __first + __count; - return pair<_RAIter, _OutputIter>(__last, copy(__first, __last, __result)); -} - -template <class _InputIter, class _Size, class _OutputIter> -inline pair<_InputIter, _OutputIter> -__copy_n(_InputIter __first, _Size __count, _OutputIter __result) { - return __copy_n(__first, __count, __result, - __iterator_category(__first)); -} - -template <class _InputIter, class _Size, class _OutputIter> -inline pair<_InputIter, _OutputIter> -copy_n(_InputIter __first, _Size __count, _OutputIter __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter, - typename iterator_traits<_InputIter>::value_type>); - - return __copy_n(__first, __count, __result); -} - -//-------------------------------------------------- -// fill and fill_n - - -template <class _ForwardIter, class _Tp> -void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __value) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - - for ( ; __first != __last; ++__first) - *__first = __value; -} - -template <class _OutputIter, class _Size, class _Tp> -_OutputIter fill_n(_OutputIter __first, _Size __n, const _Tp& __value) -{ - // concept requirements - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIter,_Tp>); - - for ( ; __n > 0; --__n, ++__first) - *__first = __value; - return __first; -} -// Specialization: for one-byte types we can use memset. - -inline void fill(unsigned char* __first, unsigned char* __last, - const unsigned char& __c) -{ - unsigned char __tmp = __c; - memset(__first, __tmp, __last - __first); -} - -inline void fill(signed char* __first, signed char* __last, - const signed char& __c) -{ - signed char __tmp = __c; - memset(__first, static_cast<unsigned char>(__tmp), __last - __first); -} - -inline void fill(char* __first, char* __last, const char& __c) -{ - char __tmp = __c; - memset(__first, static_cast<unsigned char>(__tmp), __last - __first); -} - -template <class _Size> -inline unsigned char* fill_n(unsigned char* __first, _Size __n, - const unsigned char& __c) -{ - fill(__first, __first + __n, __c); - return __first + __n; -} - -template <class _Size> -inline signed char* fill_n(char* __first, _Size __n, - const signed char& __c) -{ - fill(__first, __first + __n, __c); - return __first + __n; -} - -template <class _Size> -inline char* fill_n(char* __first, _Size __n, const char& __c) -{ - fill(__first, __first + __n, __c); - return __first + __n; -} - - -//-------------------------------------------------- -// equal and mismatch - -template <class _InputIter1, class _InputIter2> -pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, - _InputIter1 __last1, - _InputIter2 __first2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_EqualityComparableConcept< - typename iterator_traits<_InputIter2>::value_type>); - - while (__first1 != __last1 && *__first1 == *__first2) { - ++__first1; - ++__first2; + inline void + fill(signed char* __first, signed char* __last, const signed char& __c) + { + signed char __tmp = __c; + memset(__first, static_cast<unsigned char>(__tmp), __last - __first); } - return pair<_InputIter1, _InputIter2>(__first1, __first2); -} - -template <class _InputIter1, class _InputIter2, class _BinaryPredicate> -pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, - _InputIter1 __last1, - _InputIter2 __first2, - _BinaryPredicate __binary_pred) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { - ++__first1; - ++__first2; + inline void + fill(char* __first, char* __last, const char& __c) + { + char __tmp = __c; + memset(__first, static_cast<unsigned char>(__tmp), __last - __first); } - return pair<_InputIter1, _InputIter2>(__first1, __first2); -} -template <class _InputIter1, class _InputIter2> -inline bool equal(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_EqualOpConcept< - typename iterator_traits<_InputIter1>::value_type, - typename iterator_traits<_InputIter2>::value_type>); - - for ( ; __first1 != __last1; ++__first1, ++__first2) - if (!(*__first1 == *__first2)) - return false; - return true; -} - -template <class _InputIter1, class _InputIter2, class _BinaryPredicate> -inline bool equal(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _BinaryPredicate __binary_pred) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - - for ( ; __first1 != __last1; ++__first1, ++__first2) - if (!__binary_pred(*__first1, *__first2)) - return false; - return true; -} - -//-------------------------------------------------- -// lexicographical_compare and lexicographical_compare_3way. -// (the latter is not part of the C++ standard.) - -template <class _InputIter1, class _InputIter2> -bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter2>::value_type>); - - for ( ; __first1 != __last1 && __first2 != __last2 - ; ++__first1, ++__first2) { - if (*__first1 < *__first2) + template<typename _Size> + inline unsigned char* + fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) + { + fill(__first, __first + __n, __c); + return __first + __n; + } + + template<typename _Size> + inline signed char* + fill_n(char* __first, _Size __n, const signed char& __c) + { + fill(__first, __first + __n, __c); + return __first + __n; + } + + template<typename _Size> + inline char* + fill_n(char* __first, _Size __n, const char& __c) + { + fill(__first, __first + __n, __c); + return __first + __n; + } + + + //-------------------------------------------------- + // equal and mismatch + + template<typename _InputIter1, typename _InputIter2> + pair<_InputIter1, _InputIter2> + mismatch(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_EqualityComparableConcept< + typename iterator_traits<_InputIter2>::value_type>); + + while (__first1 != __last1 && *__first1 == *__first2) { + ++__first1; + ++__first2; + } + return pair<_InputIter1, _InputIter2>(__first1, __first2); + } + + template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate> + pair<_InputIter1, _InputIter2> + mismatch(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, + _BinaryPredicate __binary_pred) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + + while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { + ++__first1; + ++__first2; + } + return pair<_InputIter1, _InputIter2>(__first1, __first2); + } + + template<typename _InputIter1, typename _InputIter2> + inline bool + equal(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_EqualOpConcept< + typename iterator_traits<_InputIter1>::value_type, + typename iterator_traits<_InputIter2>::value_type>); + + for ( ; __first1 != __last1; ++__first1, ++__first2) + if (!(*__first1 == *__first2)) + return false; return true; - if (*__first2 < *__first1) - return false; - } - return __first1 == __last1 && __first2 != __last2; -} - -template <class _InputIter1, class _InputIter2, class _Compare> -bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - - for ( ; __first1 != __last1 && __first2 != __last2 - ; ++__first1, ++__first2) { - if (__comp(*__first1, *__first2)) + } + + template<typename _InputIter1, typename _InputIter2, typename _BinaryPredicate> + inline bool + equal(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, + _BinaryPredicate __binary_pred) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + + for ( ; __first1 != __last1; ++__first1, ++__first2) + if (!__binary_pred(*__first1, *__first2)) + return false; return true; - if (__comp(*__first2, *__first1)) - return false; + } + + //-------------------------------------------------- + // lexicographical_compare and lexicographical_compare_3way. + // (the latter is not part of the C++ standard.) + + template<typename _InputIter1, typename _InputIter2> + bool + lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter2>::value_type>); + + for ( ; __first1 != __last1 && __first2 != __last2 + ; ++__first1, ++__first2) { + if (*__first1 < *__first2) + return true; + if (*__first2 < *__first1) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + template<typename _InputIter1, typename _InputIter2, typename _Compare> + bool + lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + + for ( ; __first1 != __last1 && __first2 != __last2 + ; ++__first1, ++__first2) { + if (__comp(*__first1, *__first2)) + return true; + if (__comp(*__first2, *__first1)) + return false; + } + return __first1 == __last1 && __first2 != __last2; + } + + inline bool + lexicographical_compare(const unsigned char* __first1, const unsigned char* __last1, + const unsigned char* __first2, const unsigned char* __last2) + { + const size_t __len1 = __last1 - __first1; + const size_t __len2 = __last2 - __first2; + const int __result = memcmp(__first1, __first2, min(__len1, __len2)); + return __result != 0 ? __result < 0 : __len1 < __len2; } - return __first1 == __last1 && __first2 != __last2; -} - -inline bool -lexicographical_compare(const unsigned char* __first1, - const unsigned char* __last1, - const unsigned char* __first2, - const unsigned char* __last2) -{ - const size_t __len1 = __last1 - __first1; - const size_t __len2 = __last2 - __first2; - const int __result = memcmp(__first1, __first2, min(__len1, __len2)); - return __result != 0 ? __result < 0 : __len1 < __len2; -} - -inline bool lexicographical_compare(const char* __first1, const char* __last1, - const char* __first2, const char* __last2) -{ + + inline bool + lexicographical_compare(const char* __first1, const char* __last1, + const char* __first2, const char* __last2) + { #if CHAR_MAX == SCHAR_MAX - return lexicographical_compare((const signed char*) __first1, - (const signed char*) __last1, - (const signed char*) __first2, - (const signed char*) __last2); + return lexicographical_compare((const signed char*) __first1, + (const signed char*) __last1, + (const signed char*) __first2, + (const signed char*) __last2); #else /* CHAR_MAX == SCHAR_MAX */ - return lexicographical_compare((const unsigned char*) __first1, - (const unsigned char*) __last1, - (const unsigned char*) __first2, - (const unsigned char*) __last2); + return lexicographical_compare((const unsigned char*) __first1, + (const unsigned char*) __last1, + (const unsigned char*) __first2, + (const unsigned char*) __last2); #endif /* CHAR_MAX == SCHAR_MAX */ -} - -template <class _InputIter1, class _InputIter2> -int __lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) -{ - while (__first1 != __last1 && __first2 != __last2) { - if (*__first1 < *__first2) - return -1; - if (*__first2 < *__first1) - return 1; - ++__first1; - ++__first2; - } - if (__first2 == __last2) { - return !(__first1 == __last1); } - else { - return -1; + + template<typename _InputIter1, typename _InputIter2> + int + __lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2) + { + while (__first1 != __last1 && __first2 != __last2) { + if (*__first1 < *__first2) + return -1; + if (*__first2 < *__first1) + return 1; + ++__first1; + ++__first2; + } + if (__first2 == __last2) { + return !(__first1 == __last1); + } + else { + return -1; + } + } + + inline int + __lexicographical_compare_3way(const unsigned char* __first1, + const unsigned char* __last1, + const unsigned char* __first2, + const unsigned char* __last2) + { + const ptrdiff_t __len1 = __last1 - __first1; + const ptrdiff_t __len2 = __last2 - __first2; + const int __result = memcmp(__first1, __first2, min(__len1, __len2)); + return __result != 0 ? __result + : (__len1 == __len2 ? 0 : (__len1 < __len2 ? -1 : 1)); } -} -inline int -__lexicographical_compare_3way(const unsigned char* __first1, - const unsigned char* __last1, - const unsigned char* __first2, - const unsigned char* __last2) -{ - const ptrdiff_t __len1 = __last1 - __first1; - const ptrdiff_t __len2 = __last2 - __first2; - const int __result = memcmp(__first1, __first2, min(__len1, __len2)); - return __result != 0 ? __result - : (__len1 == __len2 ? 0 : (__len1 < __len2 ? -1 : 1)); -} - -inline int -__lexicographical_compare_3way(const char* __first1, const char* __last1, - const char* __first2, const char* __last2) -{ + inline int + __lexicographical_compare_3way(const char* __first1, const char* __last1, + const char* __first2, const char* __last2) + { #if CHAR_MAX == SCHAR_MAX - return __lexicographical_compare_3way( - (const signed char*) __first1, - (const signed char*) __last1, - (const signed char*) __first2, - (const signed char*) __last2); + return __lexicographical_compare_3way( + (const signed char*) __first1, + (const signed char*) __last1, + (const signed char*) __first2, + (const signed char*) __last2); #else - return __lexicographical_compare_3way((const unsigned char*) __first1, - (const unsigned char*) __last1, - (const unsigned char*) __first2, - (const unsigned char*) __last2); + return __lexicographical_compare_3way((const unsigned char*) __first1, + (const unsigned char*) __last1, + (const unsigned char*) __first2, + (const unsigned char*) __last2); #endif -} + } -template <class _InputIter1, class _InputIter2> -int lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter1>::value_type>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_InputIter2>::value_type>); - - return __lexicographical_compare_3way(__first1, __last1, __first2, __last2); -} + template<typename _InputIter1, typename _InputIter2> + int + lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIter2>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter1>::value_type>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_InputIter2>::value_type>); + + return __lexicographical_compare_3way(__first1, __last1, __first2, __last2); + } } // namespace std diff --git a/libstdc++-v3/include/bits/stl_heap.h b/libstdc++-v3/include/bits/stl_heap.h index 20d0f00..eebf2ca 100644 --- a/libstdc++-v3/include/bits/stl_heap.h +++ b/libstdc++-v3/include/bits/stl_heap.h @@ -62,277 +62,241 @@ namespace std { -// Heap-manipulation functions: push_heap, pop_heap, make_heap, sort_heap. - -template <class _RandomAccessIterator, class _Distance, class _Tp> -void -__push_heap(_RandomAccessIterator __first, - _Distance __holeIndex, _Distance __topIndex, _Tp __value) -{ - _Distance __parent = (__holeIndex - 1) / 2; - while (__holeIndex > __topIndex && *(__first + __parent) < __value) { - *(__first + __holeIndex) = *(__first + __parent); - __holeIndex = __parent; - __parent = (__holeIndex - 1) / 2; - } - *(__first + __holeIndex) = __value; -} - -template <class _RandomAccessIterator, class _Distance, class _Tp> -inline void -__push_heap_aux(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Distance*, _Tp*) -{ - __push_heap(__first, _Distance((__last - __first) - 1), _Distance(0), - _Tp(*(__last - 1))); -} - -template <class _RandomAccessIterator> -inline void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIterator>::value_type>); - - __push_heap_aux(__first, __last, - __distance_type(__first), __value_type(__first)); -} - -template <class _RandomAccessIterator, class _Distance, class _Tp, - class _Compare> -void -__push_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __topIndex, _Tp __value, _Compare __comp) -{ - _Distance __parent = (__holeIndex - 1) / 2; - while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { - *(__first + __holeIndex) = *(__first + __parent); - __holeIndex = __parent; - __parent = (__holeIndex - 1) / 2; - } - *(__first + __holeIndex) = __value; -} - -template <class _RandomAccessIterator, class _Compare, - class _Distance, class _Tp> -inline void -__push_heap_aux(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp, - _Distance*, _Tp*) -{ - __push_heap(__first, _Distance((__last - __first) - 1), _Distance(0), - _Tp(*(__last - 1)), __comp); -} - -template <class _RandomAccessIterator, class _Compare> -inline void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - - __push_heap_aux(__first, __last, __comp, - __distance_type(__first), __value_type(__first)); -} - -template <class _RandomAccessIterator, class _Distance, class _Tp> -void -__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __value) -{ - _Distance __topIndex = __holeIndex; - _Distance __secondChild = 2 * __holeIndex + 2; - while (__secondChild < __len) { - if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) - __secondChild--; - *(__first + __holeIndex) = *(__first + __secondChild); - __holeIndex = __secondChild; - __secondChild = 2 * (__secondChild + 1); - } - if (__secondChild == __len) { - *(__first + __holeIndex) = *(__first + (__secondChild - 1)); - __holeIndex = __secondChild - 1; - } - __push_heap(__first, __holeIndex, __topIndex, __value); -} - -template <class _RandomAccessIterator, class _Tp, class _Distance> -inline void -__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _RandomAccessIterator __result, _Tp __value, _Distance*) -{ - *__result = *__first; - __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value); -} - -template <class _RandomAccessIterator, class _Tp> -inline void -__pop_heap_aux(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Tp*) -{ - __pop_heap(__first, __last - 1, __last - 1, - _Tp(*(__last - 1)), __distance_type(__first)); -} - -template <class _RandomAccessIterator> -inline void pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIterator>::value_type>); - - __pop_heap_aux(__first, __last, __value_type(__first)); -} - -template <class _RandomAccessIterator, class _Distance, - class _Tp, class _Compare> -void -__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __value, _Compare __comp) -{ - _Distance __topIndex = __holeIndex; - _Distance __secondChild = 2 * __holeIndex + 2; - while (__secondChild < __len) { - if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) - __secondChild--; - *(__first + __holeIndex) = *(__first + __secondChild); - __holeIndex = __secondChild; - __secondChild = 2 * (__secondChild + 1); - } - if (__secondChild == __len) { - *(__first + __holeIndex) = *(__first + (__secondChild - 1)); - __holeIndex = __secondChild - 1; - } - __push_heap(__first, __holeIndex, __topIndex, __value, __comp); -} - -template <class _RandomAccessIterator, class _Tp, class _Compare, - class _Distance> -inline void -__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _RandomAccessIterator __result, _Tp __value, _Compare __comp, - _Distance*) -{ - *__result = *__first; - __adjust_heap(__first, _Distance(0), _Distance(__last - __first), - __value, __comp); -} - -template <class _RandomAccessIterator, class _Tp, class _Compare> -inline void -__pop_heap_aux(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Tp*, _Compare __comp) -{ - __pop_heap(__first, __last - 1, __last - 1, _Tp(*(__last - 1)), __comp, - __distance_type(__first)); -} - -template <class _RandomAccessIterator, class _Compare> -inline void -pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - - __pop_heap_aux(__first, __last, __value_type(__first), __comp); -} - -template <class _RandomAccessIterator, class _Tp, class _Distance> -void -__make_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Tp*, _Distance*) -{ - if (__last - __first < 2) return; - _Distance __len = __last - __first; - _Distance __parent = (__len - 2)/2; - - while (true) { - __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent))); - if (__parent == 0) return; - __parent--; - } -} - -template <class _RandomAccessIterator> -inline void -make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIterator>::value_type>); - - __make_heap(__first, __last, - __value_type(__first), __distance_type(__first)); -} - -template <class _RandomAccessIterator, class _Compare, - class _Tp, class _Distance> -void -__make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp, _Tp*, _Distance*) -{ - if (__last - __first < 2) return; - _Distance __len = __last - __first; - _Distance __parent = (__len - 2)/2; - - while (true) { - __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent)), - __comp); - if (__parent == 0) return; - __parent--; - } -} - -template <class _RandomAccessIterator, class _Compare> -inline void -make_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - - __make_heap(__first, __last, __comp, - __value_type(__first), __distance_type(__first)); -} - -template <class _RandomAccessIterator> -void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - __glibcpp_function_requires(_LessThanComparableConcept< - typename iterator_traits<_RandomAccessIterator>::value_type>); - - while (__last - __first > 1) - pop_heap(__first, __last--); -} - -template <class _RandomAccessIterator, class _Compare> -void -sort_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< - _RandomAccessIterator>); - - while (__last - __first > 1) - pop_heap(__first, __last--, __comp); -} + // Heap-manipulation functions: push_heap, pop_heap, make_heap, sort_heap. + + template<typename _RandomAccessIterator, typename _Distance, typename _Tp> + void + __push_heap(_RandomAccessIterator __first, + _Distance __holeIndex, _Distance __topIndex, _Tp __value) + { + _Distance __parent = (__holeIndex - 1) / 2; + while (__holeIndex > __topIndex && *(__first + __parent) < __value) { + *(__first + __holeIndex) = *(__first + __parent); + __holeIndex = __parent; + __parent = (__holeIndex - 1) / 2; + } + *(__first + __holeIndex) = __value; + } + + template<typename _RandomAccessIterator> + inline void + push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + __push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), + _ValueType(*(__last - 1))); + } + + template<typename _RandomAccessIterator, typename _Distance, typename _Tp, + typename _Compare> + void + __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, + _Distance __topIndex, _Tp __value, _Compare __comp) + { + _Distance __parent = (__holeIndex - 1) / 2; + while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) { + *(__first + __holeIndex) = *(__first + __parent); + __holeIndex = __parent; + __parent = (__holeIndex - 1) / 2; + } + *(__first + __holeIndex) = __value; + } + + template<typename _RandomAccessIterator, typename _Compare> + inline void + push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + + __push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), + _ValueType(*(__last - 1)), __comp); + } + + template<typename _RandomAccessIterator, typename _Distance, typename _Tp> + void + __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, + _Distance __len, _Tp __value) + { + _Distance __topIndex = __holeIndex; + _Distance __secondChild = 2 * __holeIndex + 2; + while (__secondChild < __len) { + if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) + __secondChild--; + *(__first + __holeIndex) = *(__first + __secondChild); + __holeIndex = __secondChild; + __secondChild = 2 * (__secondChild + 1); + } + if (__secondChild == __len) { + *(__first + __holeIndex) = *(__first + (__secondChild - 1)); + __holeIndex = __secondChild - 1; + } + __push_heap(__first, __holeIndex, __topIndex, __value); + } + + template<typename _RandomAccessIterator, typename _Tp> + inline void + __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _RandomAccessIterator __result, _Tp __value) + { + typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; + *__result = *__first; + __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value); + } + + template<typename _RandomAccessIterator> + inline void + pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1))); + } + + template<typename _RandomAccessIterator, typename _Distance, + typename _Tp, typename _Compare> + void + __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, + _Distance __len, _Tp __value, _Compare __comp) + { + _Distance __topIndex = __holeIndex; + _Distance __secondChild = 2 * __holeIndex + 2; + while (__secondChild < __len) { + if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) + __secondChild--; + *(__first + __holeIndex) = *(__first + __secondChild); + __holeIndex = __secondChild; + __secondChild = 2 * (__secondChild + 1); + } + if (__secondChild == __len) { + *(__first + __holeIndex) = *(__first + (__secondChild - 1)); + __holeIndex = __secondChild - 1; + } + __push_heap(__first, __holeIndex, __topIndex, __value, __comp); + } + + template<typename _RandomAccessIterator, typename _Tp, typename _Compare> + inline void + __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _RandomAccessIterator __result, _Tp __value, _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance; + *__result = *__first; + __adjust_heap(__first, _Distance(0), _Distance(__last - __first), + __value, __comp); + } + + template<typename _RandomAccessIterator, typename _Compare> + inline void + pop_heap(_RandomAccessIterator __first, + _RandomAccessIterator __last, _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + + typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType; + __pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1)), __comp); + } + + template<typename _RandomAccessIterator> + void + make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + __glibcpp_function_requires(_LessThanComparableConcept<_ValueType>); + + if (__last - __first < 2) return; + _DistanceType __len = __last - __first; + _DistanceType __parent = (__len - 2)/2; + + while (true) { + __adjust_heap(__first, __parent, __len, _ValueType(*(__first + __parent))); + if (__parent == 0) return; + __parent--; + } + } + + template<typename _RandomAccessIterator, typename _Compare> + inline void + make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + typedef typename iterator_traits<_RandomAccessIterator>::value_type + _ValueType; + typedef typename iterator_traits<_RandomAccessIterator>::difference_type + _DistanceType; + + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + + if (__last - __first < 2) return; + _DistanceType __len = __last - __first; + _DistanceType __parent = (__len - 2)/2; + + while (true) { + __adjust_heap(__first, __parent, __len, + _ValueType(*(__first + __parent)), __comp); + if (__parent == 0) return; + __parent--; + } + } + + template<typename _RandomAccessIterator> + void + sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) + { + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + __glibcpp_function_requires(_LessThanComparableConcept< + typename iterator_traits<_RandomAccessIterator>::value_type>); + + while (__last - __first > 1) + pop_heap(__first, __last--); + } + + template<typename _RandomAccessIterator, typename _Compare> + void + sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Compare __comp) + { + // concept requirements + __glibcpp_function_requires(_Mutable_RandomAccessIteratorConcept< + _RandomAccessIterator>); + + while (__last - __first > 1) + pop_heap(__first, __last--, __comp); + } } // namespace std diff --git a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h index 5d3816f..97eb8b5 100644 --- a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h +++ b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h @@ -71,105 +71,107 @@ namespace std { -// There are two signatures for distance. In addition to the one taking -// two iterators and returning a result, there is another taking two -// iterators and a reference-to-result variable, and returning nothing. -// The latter seems to be an SGI extension. -- pedwards -template <class _InputIterator, class _Distance> -inline void __distance(_InputIterator __first, _InputIterator __last, - _Distance& __n, input_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - while (__first != __last) { ++__first; ++__n; } -} - -template <class _RandomAccessIterator, class _Distance> -inline void __distance(_RandomAccessIterator __first, - _RandomAccessIterator __last, - _Distance& __n, random_access_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>); - __n += __last - __first; -} - -template <class _InputIterator, class _Distance> -inline void distance(_InputIterator __first, - _InputIterator __last, _Distance& __n) -{ - // concept requirements -- taken care of in __distance - __distance(__first, __last, __n, iterator_category(__first)); -} - -template <class _InputIterator> -inline typename iterator_traits<_InputIterator>::difference_type -__distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - typename iterator_traits<_InputIterator>::difference_type __n = 0; - while (__first != __last) { - ++__first; ++__n; - } - return __n; -} - -template <class _RandomAccessIterator> -inline typename iterator_traits<_RandomAccessIterator>::difference_type -__distance(_RandomAccessIterator __first, _RandomAccessIterator __last, - random_access_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>); - return __last - __first; -} - -template <class _InputIterator> -inline typename iterator_traits<_InputIterator>::difference_type -distance(_InputIterator __first, _InputIterator __last) -{ - // concept requirements -- taken care of in __distance - typedef typename iterator_traits<_InputIterator>::iterator_category - _Category; - return __distance(__first, __last, _Category()); -} - -template <class _InputIter, class _Distance> -inline void __advance(_InputIter& __i, _Distance __n, input_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); - while (__n--) ++__i; -} - -template <class _BidirectionalIterator, class _Distance> -inline void __advance(_BidirectionalIterator& __i, _Distance __n, - bidirectional_iterator_tag) -{ - // concept requirements -__glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>); - if (__n > 0) - while (__n--) ++__i; - else - while (__n++) --__i; -} - -template <class _RandomAccessIterator, class _Distance> -inline void __advance(_RandomAccessIterator& __i, _Distance __n, - random_access_iterator_tag) -{ - // concept requirements - __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>); - __i += __n; -} - -template <class _InputIterator, class _Distance> -inline void advance(_InputIterator& __i, _Distance __n) -{ - // concept requirements -- taken care of in __advance - __advance(__i, __n, iterator_category(__i)); -} + // There are two signatures for distance. In addition to the one taking + // two iterators and returning a result, there is another taking two + // iterators and a reference-to-result variable, and returning nothing. + // The latter seems to be an SGI extension. -- pedwards + template<typename _InputIterator, typename _Distance> + inline void + __distance(_InputIterator __first, _InputIterator __last, + _Distance& __n, input_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + while (__first != __last) { ++__first; ++__n; } + } + + template<typename _RandomAccessIterator, typename _Distance> + inline void + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + _Distance& __n, random_access_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>); + __n += __last - __first; + } + + template<typename _InputIterator, typename _Distance> + inline void + distance(_InputIterator __first, _InputIterator __last, + _Distance& __n) + { + // concept requirements -- taken care of in __distance + __distance(__first, __last, __n, __iterator_category(__first)); + } + + template<typename _InputIterator> + inline typename iterator_traits<_InputIterator>::difference_type + __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + typename iterator_traits<_InputIterator>::difference_type __n = 0; + while (__first != __last) { + ++__first; ++__n; + } + return __n; + } + + template<typename _RandomAccessIterator> + inline typename iterator_traits<_RandomAccessIterator>::difference_type + __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, + random_access_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>); + return __last - __first; + } + + template<typename _InputIterator> + inline typename iterator_traits<_InputIterator>::difference_type + distance(_InputIterator __first, _InputIterator __last) + { + // concept requirements -- taken care of in __distance + return __distance(__first, __last, __iterator_category(__first)); + } + + template<typename _InputIter, typename _Distance> + inline void + __advance(_InputIter& __i, _Distance __n, input_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIter>); + while (__n--) ++__i; + } + + template<typename _BidirectionalIterator, typename _Distance> + inline void + __advance(_BidirectionalIterator& __i, _Distance __n, bidirectional_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>); + if (__n > 0) + while (__n--) ++__i; + else + while (__n++) --__i; + } + + template<typename _RandomAccessIterator, typename _Distance> + inline void + __advance(_RandomAccessIterator& __i, _Distance __n, random_access_iterator_tag) + { + // concept requirements + __glibcpp_function_requires(_RandomAccessIteratorConcept<_RandomAccessIterator>); + __i += __n; + } + + template<typename _InputIterator, typename _Distance> + inline void + advance(_InputIterator& __i, _Distance __n) + { + // concept requirements -- taken care of in __advance + __advance(__i, __n, __iterator_category(__i)); + } } // namespace std diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h index a5539d1..bb6b8ea 100644 --- a/libstdc++-v3/include/bits/stl_iterator_base_types.h +++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h @@ -67,142 +67,108 @@ #pragma GCC system_header -#include <bits/std_cstddef.h> // for ptrdiff_t - - namespace std { -struct input_iterator_tag {}; -struct output_iterator_tag {}; -struct forward_iterator_tag : public input_iterator_tag {}; -struct bidirectional_iterator_tag : public forward_iterator_tag {}; -struct random_access_iterator_tag : public bidirectional_iterator_tag {}; - -// The base classes input_iterator, output_iterator, forward_iterator, -// bidirectional_iterator, and random_access_iterator are not part of -// the C++ standard. (They have been replaced by struct iterator.) -// They are included for backward compatibility with the HP STL. - -template <class _Tp, class _Distance> struct input_iterator { - typedef input_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; -}; - -struct output_iterator { - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; -}; - -template <class _Tp, class _Distance> struct forward_iterator { - typedef forward_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; -}; - - -template <class _Tp, class _Distance> struct bidirectional_iterator { - typedef bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; -}; - -template <class _Tp, class _Distance> struct random_access_iterator { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; -}; - -template <class _Category, class _Tp, class _Distance = ptrdiff_t, - class _Pointer = _Tp*, class _Reference = _Tp&> -struct iterator { - typedef _Category iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Pointer pointer; - typedef _Reference reference; -}; - -template <class _Iterator> -struct iterator_traits { - typedef typename _Iterator::iterator_category iterator_category; - typedef typename _Iterator::value_type value_type; - typedef typename _Iterator::difference_type difference_type; - typedef typename _Iterator::pointer pointer; - typedef typename _Iterator::reference reference; -}; - -template <class _Tp> -struct iterator_traits<_Tp*> { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; -}; - -template <class _Tp> -struct iterator_traits<const _Tp*> { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; -}; - -// The overloaded functions iterator_category, distance_type, and -// value_type are not part of the C++ standard. (They have been -// replaced by struct iterator_traits.) They are included for -// backward compatibility with the HP STL. - -// We introduce internal names for these functions. - -template <class _Iter> -inline typename iterator_traits<_Iter>::iterator_category -__iterator_category(const _Iter&) -{ - typedef typename iterator_traits<_Iter>::iterator_category _Category; - return _Category(); -} - -template <class _Iter> -inline typename iterator_traits<_Iter>::difference_type* -__distance_type(const _Iter&) -{ - return static_cast<typename iterator_traits<_Iter>::difference_type*>(0); -} - -template <class _Iter> -inline typename iterator_traits<_Iter>::value_type* -__value_type(const _Iter&) -{ - return static_cast<typename iterator_traits<_Iter>::value_type*>(0); -} - -template <class _Iter> -inline typename iterator_traits<_Iter>::iterator_category -iterator_category(const _Iter& __i) { return __iterator_category(__i); } - - -template <class _Iter> -inline typename iterator_traits<_Iter>::difference_type* -distance_type(const _Iter& __i) { return __distance_type(__i); } - -template <class _Iter> -inline typename iterator_traits<_Iter>::value_type* -value_type(const _Iter& __i) { return __value_type(__i); } + struct input_iterator_tag {}; + struct output_iterator_tag {}; + struct forward_iterator_tag : public input_iterator_tag {}; + struct bidirectional_iterator_tag : public forward_iterator_tag {}; + struct random_access_iterator_tag : public bidirectional_iterator_tag {}; + + // The base classes input_iterator, output_iterator, forward_iterator, + // bidirectional_iterator, and random_access_iterator are not part of + // the C++ standard. (They have been replaced by struct iterator.) + // They are included for backward compatibility with the HP STL. + + template<typename _Tp, typename _Distance> + struct input_iterator { + typedef input_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _Distance difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + struct output_iterator { + typedef output_iterator_tag iterator_category; + typedef void value_type; + typedef void difference_type; + typedef void pointer; + typedef void reference; + }; + + template<typename _Tp, typename _Distance> + struct forward_iterator { + typedef forward_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _Distance difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + template<typename _Tp, typename _Distance> + struct bidirectional_iterator { + typedef bidirectional_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _Distance difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + template<typename _Tp, typename _Distance> + struct random_access_iterator { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef _Distance difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, + typename _Pointer = _Tp*, typename _Reference = _Tp&> + struct iterator { + typedef _Category iterator_category; + typedef _Tp value_type; + typedef _Distance difference_type; + typedef _Pointer pointer; + typedef _Reference reference; + }; + + template<typename _Iterator> + struct iterator_traits { + typedef typename _Iterator::iterator_category iterator_category; + typedef typename _Iterator::value_type value_type; + typedef typename _Iterator::difference_type difference_type; + typedef typename _Iterator::pointer pointer; + typedef typename _Iterator::reference reference; + }; + + template<typename _Tp> + struct iterator_traits<_Tp*> { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef _Tp* pointer; + typedef _Tp& reference; + }; + + template<typename _Tp> + struct iterator_traits<const _Tp*> { + typedef random_access_iterator_tag iterator_category; + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + }; + + // This function is not a part of the C++ standard but is syntactic + // sugar for internal library use only. + + template<typename _Iter> + inline typename iterator_traits<_Iter>::iterator_category + __iterator_category(const _Iter&) + { return typename iterator_traits<_Iter>::iterator_category(); } } // namespace std diff --git a/libstdc++-v3/include/bits/stl_numeric.h b/libstdc++-v3/include/bits/stl_numeric.h index 500a265..8681431 100644 --- a/libstdc++-v3/include/bits/stl_numeric.h +++ b/libstdc++-v3/include/bits/stl_numeric.h @@ -64,240 +64,208 @@ namespace std { -template <class _InputIterator, class _Tp> -_Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - - for ( ; __first != __last; ++__first) - __init = __init + *__first; - return __init; -} - -template <class _InputIterator, class _Tp, class _BinaryOperation> -_Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, - _BinaryOperation __binary_op) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + template<typename _InputIterator, typename _Tp> + _Tp + accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + + for ( ; __first != __last; ++__first) + __init = __init + *__first; + return __init; + } - for ( ; __first != __last; ++__first) - __init = __binary_op(__init, *__first); - return __init; -} + template<typename _InputIterator, typename _Tp, typename _BinaryOperation> + _Tp + accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, + _BinaryOperation __binary_op) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + + for ( ; __first != __last; ++__first) + __init = __binary_op(__init, *__first); + return __init; + } -template <class _InputIterator1, class _InputIterator2, class _Tp> -_Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _Tp __init) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator2>); - - for ( ; __first1 != __last1; ++__first1, ++__first2) - __init = __init + (*__first1 * *__first2); - return __init; -} - -template <class _InputIterator1, class _InputIterator2, class _Tp, - class _BinaryOperation1, class _BinaryOperation2> -_Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _Tp __init, - _BinaryOperation1 __binary_op1, - _BinaryOperation2 __binary_op2) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator1>); - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator2>); - - for ( ; __first1 != __last1; ++__first1, ++__first2) - __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); - return __init; -} - -template <class _InputIterator, class _OutputIterator, class _Tp> -_OutputIterator -__partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*) -{ - _Tp __value = *__first; - while (++__first != __last) { - __value = __value + *__first; - *++__result = __value; - } - return ++__result; -} - -template <class _InputIterator, class _OutputIterator> -_OutputIterator -partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, - typename iterator_traits<_InputIterator>::value_type>); - - if (__first == __last) return __result; - *__result = *__first; - return __partial_sum(__first, __last, __result, __value_type(__first)); -} - -template <class _InputIterator, class _OutputIterator, class _Tp, - class _BinaryOperation> -_OutputIterator -__partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*, _BinaryOperation __binary_op) -{ - _Tp __value = *__first; - while (++__first != __last) { - __value = __binary_op(__value, *__first); - *++__result = __value; - } - return ++__result; -} - -template <class _InputIterator, class _OutputIterator, class _BinaryOperation> -_OutputIterator -partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _BinaryOperation __binary_op) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, - typename iterator_traits<_InputIterator>::value_type>); - - if (__first == __last) return __result; - *__result = *__first; - return __partial_sum(__first, __last, __result, __value_type(__first), - __binary_op); -} - -template <class _InputIterator, class _OutputIterator, class _Tp> -_OutputIterator -__adjacent_difference(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*) -{ - _Tp __value = *__first; - while (++__first != __last) { - _Tp __tmp = *__first; - *++__result = __tmp - __value; - __value = __tmp; - } - return ++__result; -} - -template <class _InputIterator, class _OutputIterator> -_OutputIterator -adjacent_difference(_InputIterator __first, - _InputIterator __last, _OutputIterator __result) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, - typename iterator_traits<_InputIterator>::value_type>); - - if (__first == __last) return __result; - *__result = *__first; - return __adjacent_difference(__first, __last, __result, - __value_type(__first)); -} - -template <class _InputIterator, class _OutputIterator, class _Tp, - class _BinaryOperation> -_OutputIterator -__adjacent_difference(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*, - _BinaryOperation __binary_op) { - _Tp __value = *__first; - while (++__first != __last) { - _Tp __tmp = *__first; - *++__result = __binary_op(__tmp, __value); - __value = __tmp; - } - return ++__result; -} - -template <class _InputIterator, class _OutputIterator, class _BinaryOperation> -_OutputIterator -adjacent_difference(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _BinaryOperation __binary_op) -{ - // concept requirements - __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); - __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, - typename iterator_traits<_InputIterator>::value_type>); - - if (__first == __last) return __result; - *__result = *__first; - return __adjacent_difference(__first, __last, __result, - __value_type(__first), - __binary_op); -} - -// Returns __x ** __n, where __n >= 0. _Note that "multiplication" -// is required to be associative, but not necessarily commutative. - - -template <class _Tp, class _Integer, class _MonoidOperation> -_Tp __power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op) -{ - if (__n == 0) - return identity_element(__monoid_op); - else { - while ((__n & 1) == 0) { - __n >>= 1; - __x = __monoid_op(__x, __x); + template<typename _InputIterator1, typename _InputIterator2, typename _Tp> + _Tp + inner_product(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _Tp __init) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator2>); + + for ( ; __first1 != __last1; ++__first1, ++__first2) + __init = __init + (*__first1 * *__first2); + return __init; } - _Tp __result = __x; - __n >>= 1; - while (__n != 0) { - __x = __monoid_op(__x, __x); - if ((__n & 1) != 0) - __result = __monoid_op(__result, __x); - __n >>= 1; + template<typename _InputIterator1, typename _InputIterator2, typename _Tp, + typename _BinaryOperation1, typename _BinaryOperation2> + _Tp + inner_product(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _Tp __init, + _BinaryOperation1 __binary_op1, + _BinaryOperation2 __binary_op2) + { + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator1>); + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator2>); + + for ( ; __first1 != __last1; ++__first1, ++__first2) + __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); + return __init; } - return __result; - } -} -template <class _Tp, class _Integer> -inline _Tp __power(_Tp __x, _Integer __n) -{ - return __power(__x, __n, multiplies<_Tp>()); -} + template<typename _InputIterator, typename _OutputIterator> + _OutputIterator + partial_sum(_InputIterator __first, _InputIterator __last, + _OutputIterator __result) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, _ValueType>); + + if (__first == __last) return __result; + *__result = *__first; + _ValueType __value = *__first; + while (++__first != __last) { + __value = __value + *__first; + *++__result = __value; + } + return ++__result; + } -// Alias for the internal name __power. Note that power is an extension, -// not part of the C++ standard. + template<typename _InputIterator, typename _OutputIterator, typename _BinaryOperation> + _OutputIterator + partial_sum(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _BinaryOperation __binary_op) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, _ValueType>); + + if (__first == __last) return __result; + *__result = *__first; + _ValueType __value = *__first; + while (++__first != __last) { + __value = __binary_op(__value, *__first); + *++__result = __value; + } + return ++__result; + } -template <class _Tp, class _Integer, class _MonoidOperation> -inline _Tp power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op) -{ - return __power(__x, __n, __monoid_op); -} + template<typename _InputIterator, typename _OutputIterator> + _OutputIterator + adjacent_difference(_InputIterator __first, + _InputIterator __last, _OutputIterator __result) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, _ValueType>); + + if (__first == __last) return __result; + *__result = *__first; + _ValueType __value = *__first; + while (++__first != __last) { + _ValueType __tmp = *__first; + *++__result = __tmp - __value; + __value = __tmp; + } + return ++__result; + } -template <class _Tp, class _Integer> -inline _Tp power(_Tp __x, _Integer __n) -{ - return __power(__x, __n); -} + template<typename _InputIterator, typename _OutputIterator, typename _BinaryOperation> + _OutputIterator + adjacent_difference(_InputIterator __first, _InputIterator __last, + _OutputIterator __result, _BinaryOperation __binary_op) + { + typedef typename iterator_traits<_InputIterator>::value_type _ValueType; + + // concept requirements + __glibcpp_function_requires(_InputIteratorConcept<_InputIterator>); + __glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator, _ValueType>); + + if (__first == __last) return __result; + *__result = *__first; + _ValueType __value = *__first; + while (++__first != __last) { + _ValueType __tmp = *__first; + *++__result = __binary_op(__tmp, __value); + __value = __tmp; + } + return ++__result; + } -// iota is not part of the C++ standard. It is an extension. + // Returns __x ** __n, where __n >= 0. _Note that "multiplication" + // is required to be associative, but not necessarily commutative. + + + template<typename _Tp, typename _Integer, typename _MonoidOperation> + _Tp + __power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op) + { + if (__n == 0) + return identity_element(__monoid_op); + else { + while ((__n & 1) == 0) { + __n >>= 1; + __x = __monoid_op(__x, __x); + } + + _Tp __result = __x; + __n >>= 1; + while (__n != 0) { + __x = __monoid_op(__x, __x); + if ((__n & 1) != 0) + __result = __monoid_op(__result, __x); + __n >>= 1; + } + return __result; + } + } -template <class _ForwardIter, class _Tp> -void -iota(_ForwardIter __first, _ForwardIter __last, _Tp __value) -{ - // concept requirements - __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); - __glibcpp_function_requires(_ConvertibleConcept<_Tp, - typename iterator_traits<_ForwardIter>::value_type>); - - while (__first != __last) - *__first++ = __value++; -} + template<typename _Tp, typename _Integer> + inline _Tp + __power(_Tp __x, _Integer __n) + { return __power(__x, __n, multiplies<_Tp>()); } + + // Alias for the internal name __power. Note that power is an extension, + // not part of the C++ standard. + + template<typename _Tp, typename _Integer, typename _MonoidOperation> + inline _Tp + power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op) + { return __power(__x, __n, __monoid_op); } + + template<typename _Tp, typename _Integer> + inline _Tp + power(_Tp __x, _Integer __n) + { return __power(__x, __n); } + + // iota is not part of the C++ standard. It is an extension. + + template<typename _ForwardIter, typename _Tp> + void + iota(_ForwardIter __first, _ForwardIter __last, _Tp __value) + { + // concept requirements + __glibcpp_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>); + __glibcpp_function_requires(_ConvertibleConcept<_Tp, + typename iterator_traits<_ForwardIter>::value_type>); + + while (__first != __last) + *__first++ = __value++; + } } // namespace std diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h index f4dbac4..f623640 100644 --- a/libstdc++-v3/include/bits/stl_uninitialized.h +++ b/libstdc++-v3/include/bits/stl_uninitialized.h @@ -65,242 +65,214 @@ namespace std { -// uninitialized_copy - -// Valid if copy construction is equivalent to assignment, and if the -// destructor is trivial. -template <class _InputIter, class _ForwardIter> -inline _ForwardIter -__uninitialized_copy_aux(_InputIter __first, _InputIter __last, - _ForwardIter __result, - __true_type) -{ - return copy(__first, __last, __result); -} - -template <class _InputIter, class _ForwardIter> -_ForwardIter -__uninitialized_copy_aux(_InputIter __first, _InputIter __last, - _ForwardIter __result, - __false_type) -{ - _ForwardIter __cur = __result; - __STL_TRY { - for ( ; __first != __last; ++__first, ++__cur) - _Construct(&*__cur, *__first); - return __cur; + // uninitialized_copy + + template<typename _InputIter, typename _ForwardIter> + inline _ForwardIter + __uninitialized_copy_aux(_InputIter __first, _InputIter __last, + _ForwardIter __result, + __true_type) + { return copy(__first, __last, __result); } + + template<typename _InputIter, typename _ForwardIter> + _ForwardIter + __uninitialized_copy_aux(_InputIter __first, _InputIter __last, + _ForwardIter __result, + __false_type) + { + _ForwardIter __cur = __result; + __STL_TRY { + for ( ; __first != __last; ++__first, ++__cur) + _Construct(&*__cur, *__first); + return __cur; + } + __STL_UNWIND(_Destroy(__result, __cur)); + } + + template<typename _InputIter, typename _ForwardIter> + inline _ForwardIter + uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) + { + typedef typename iterator_traits<_InputIter>::value_type _ValueType; + typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; + return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); + } + + inline char* + uninitialized_copy(const char* __first, const char* __last, char* __result) + { + memmove(__result, __first, __last - __first); + return __result + (__last - __first); } - __STL_UNWIND(_Destroy(__result, __cur)); -} - - -template <class _InputIter, class _ForwardIter, class _Tp> -inline _ForwardIter -__uninitialized_copy(_InputIter __first, _InputIter __last, - _ForwardIter __result, _Tp*) -{ - typedef typename __type_traits<_Tp>::is_POD_type _Is_POD; - return __uninitialized_copy_aux(__first, __last, __result, _Is_POD()); -} - -template <class _InputIter, class _ForwardIter> -inline _ForwardIter - uninitialized_copy(_InputIter __first, _InputIter __last, - _ForwardIter __result) -{ - return __uninitialized_copy(__first, __last, __result, - __value_type(__result)); -} - -inline char* uninitialized_copy(const char* __first, const char* __last, - char* __result) { - memmove(__result, __first, __last - __first); - return __result + (__last - __first); -} - -inline wchar_t* -uninitialized_copy(const wchar_t* __first, const wchar_t* __last, - wchar_t* __result) -{ - memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); - return __result + (__last - __first); -} - -// uninitialized_copy_n (not part of the C++ standard) -template <class _InputIter, class _Size, class _ForwardIter> -pair<_InputIter, _ForwardIter> -__uninitialized_copy_n(_InputIter __first, _Size __count, - _ForwardIter __result, - input_iterator_tag) -{ - _ForwardIter __cur = __result; - __STL_TRY { - for ( ; __count > 0 ; --__count, ++__first, ++__cur) - _Construct(&*__cur, *__first); - return pair<_InputIter, _ForwardIter>(__first, __cur); + inline wchar_t* + uninitialized_copy(const wchar_t* __first, const wchar_t* __last, + wchar_t* __result) + { + memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); + return __result + (__last - __first); } - __STL_UNWIND(_Destroy(__result, __cur)); -} - -template <class _RandomAccessIter, class _Size, class _ForwardIter> -inline pair<_RandomAccessIter, _ForwardIter> -__uninitialized_copy_n(_RandomAccessIter __first, _Size __count, - _ForwardIter __result, - random_access_iterator_tag) { - _RandomAccessIter __last = __first + __count; - return pair<_RandomAccessIter, _ForwardIter>( - __last, - uninitialized_copy(__first, __last, __result)); -} - -template <class _InputIter, class _Size, class _ForwardIter> -inline pair<_InputIter, _ForwardIter> -__uninitialized_copy_n(_InputIter __first, _Size __count, - _ForwardIter __result) { - return __uninitialized_copy_n(__first, __count, __result, - __iterator_category(__first)); -} - -template <class _InputIter, class _Size, class _ForwardIter> -inline pair<_InputIter, _ForwardIter> -uninitialized_copy_n(_InputIter __first, _Size __count, - _ForwardIter __result) { - return __uninitialized_copy_n(__first, __count, __result, - __iterator_category(__first)); -} - -// Valid if copy construction is equivalent to assignment, and if the -// destructor is trivial. -template <class _ForwardIter, class _Tp> -inline void -__uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, - const _Tp& __x, __true_type) -{ - fill(__first, __last, __x); -} -template <class _ForwardIter, class _Tp> -void -__uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, - const _Tp& __x, __false_type) -{ - _ForwardIter __cur = __first; - __STL_TRY { - for ( ; __cur != __last; ++__cur) - _Construct(&*__cur, __x); - } - __STL_UNWIND(_Destroy(__first, __cur)); -} - -template <class _ForwardIter, class _Tp, class _Tp1> -inline void __uninitialized_fill(_ForwardIter __first, - _ForwardIter __last, const _Tp& __x, _Tp1*) -{ - typedef typename __type_traits<_Tp1>::is_POD_type _Is_POD; - __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); - -} - -template <class _ForwardIter, class _Tp> -inline void uninitialized_fill(_ForwardIter __first, - _ForwardIter __last, - const _Tp& __x) -{ - __uninitialized_fill(__first, __last, __x, __value_type(__first)); -} - -// Valid if copy construction is equivalent to assignment, and if the -// destructor is trivial. -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter -__uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, - const _Tp& __x, __true_type) -{ - return fill_n(__first, __n, __x); -} - -template <class _ForwardIter, class _Size, class _Tp> -_ForwardIter -__uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, - const _Tp& __x, __false_type) -{ - _ForwardIter __cur = __first; - __STL_TRY { - for ( ; __n > 0; --__n, ++__cur) - _Construct(&*__cur, __x); - return __cur; - } - __STL_UNWIND(_Destroy(__first, __cur)); -} - -template <class _ForwardIter, class _Size, class _Tp, class _Tp1> -inline _ForwardIter -__uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x, _Tp1*) -{ - typedef typename __type_traits<_Tp1>::is_POD_type _Is_POD; - return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); -} - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter -uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) -{ - return __uninitialized_fill_n(__first, __n, __x, __value_type(__first)); -} - -// Extensions: __uninitialized_copy_copy, __uninitialized_copy_fill, -// __uninitialized_fill_copy. - -// __uninitialized_copy_copy -// Copies [first1, last1) into [result, result + (last1 - first1)), and -// copies [first2, last2) into -// [result, result + (last1 - first1) + (last2 - first2)). - -template <class _InputIter1, class _InputIter2, class _ForwardIter> -inline _ForwardIter -__uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _ForwardIter __result) -{ - _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); - __STL_TRY { - return uninitialized_copy(__first2, __last2, __mid); - } - __STL_UNWIND(_Destroy(__result, __mid)); -} - -// __uninitialized_fill_copy -// Fills [result, mid) with x, and copies [first, last) into -// [mid, mid + (last - first)). -template <class _ForwardIter, class _Tp, class _InputIter> -inline _ForwardIter -__uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, - const _Tp& __x, - _InputIter __first, _InputIter __last) -{ - uninitialized_fill(__result, __mid, __x); - __STL_TRY { - return uninitialized_copy(__first, __last, __mid); - } - __STL_UNWIND(_Destroy(__result, __mid)); -} - -// __uninitialized_copy_fill -// Copies [first1, last1) into [first2, first2 + (last1 - first1)), and -// fills [first2 + (last1 - first1), last2) with x. -template <class _InputIter, class _ForwardIter, class _Tp> -inline void -__uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2, - const _Tp& __x) -{ - _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); - __STL_TRY { - uninitialized_fill(__mid2, __last2, __x); - } - __STL_UNWIND(_Destroy(__first2, __mid2)); -} + // uninitialized_copy_n (not part of the C++ standard) + + template<typename _InputIter, typename _Size, typename _ForwardIter> + pair<_InputIter, _ForwardIter> + __uninitialized_copy_n(_InputIter __first, _Size __count, + _ForwardIter __result, + input_iterator_tag) + { + _ForwardIter __cur = __result; + __STL_TRY { + for ( ; __count > 0 ; --__count, ++__first, ++__cur) + _Construct(&*__cur, *__first); + return pair<_InputIter, _ForwardIter>(__first, __cur); + } + __STL_UNWIND(_Destroy(__result, __cur)); + } + + template<typename _RandomAccessIter, typename _Size, typename _ForwardIter> + inline pair<_RandomAccessIter, _ForwardIter> + __uninitialized_copy_n(_RandomAccessIter __first, _Size __count, + _ForwardIter __result, + random_access_iterator_tag) + { + _RandomAccessIter __last = __first + __count; + return pair<_RandomAccessIter, _ForwardIter>( + __last, + uninitialized_copy(__first, __last, __result)); + } + + template<typename _InputIter, typename _Size, typename _ForwardIter> + inline pair<_InputIter, _ForwardIter> + __uninitialized_copy_n(_InputIter __first, _Size __count, + _ForwardIter __result) { + return __uninitialized_copy_n(__first, __count, __result, + __iterator_category(__first)); + } + + template<typename _InputIter, typename _Size, typename _ForwardIter> + inline pair<_InputIter, _ForwardIter> + uninitialized_copy_n(_InputIter __first, _Size __count, + _ForwardIter __result) { + return __uninitialized_copy_n(__first, __count, __result, + __iterator_category(__first)); + } + + // Valid if copy construction is equivalent to assignment, and if the + // destructor is trivial. + template<typename _ForwardIter, typename _Tp> + inline void + __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, + const _Tp& __x, __true_type) + { fill(__first, __last, __x); } + + template<typename _ForwardIter, typename _Tp> + void + __uninitialized_fill_aux(_ForwardIter __first, _ForwardIter __last, + const _Tp& __x, __false_type) + { + _ForwardIter __cur = __first; + __STL_TRY { + for ( ; __cur != __last; ++__cur) + _Construct(&*__cur, __x); + } + __STL_UNWIND(_Destroy(__first, __cur)); + } + + template<typename _ForwardIter, typename _Tp> + inline void + uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; + __uninitialized_fill_aux(__first, __last, __x, _Is_POD()); + } + + // Valid if copy construction is equivalent to assignment, and if the + // destructor is trivial. + template<typename _ForwardIter, typename _Size, typename _Tp> + inline _ForwardIter + __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, + const _Tp& __x, __true_type) + { + return fill_n(__first, __n, __x); + } + + template<typename _ForwardIter, typename _Size, typename _Tp> + _ForwardIter + __uninitialized_fill_n_aux(_ForwardIter __first, _Size __n, + const _Tp& __x, __false_type) + { + _ForwardIter __cur = __first; + __STL_TRY { + for ( ; __n > 0; --__n, ++__cur) + _Construct(&*__cur, __x); + return __cur; + } + __STL_UNWIND(_Destroy(__first, __cur)); + } + + template<typename _ForwardIter, typename _Size, typename _Tp> + inline _ForwardIter + uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) + { + typedef typename iterator_traits<_ForwardIter>::value_type _ValueType; + typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD; + return __uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); + } + + // Extensions: __uninitialized_copy_copy, __uninitialized_copy_fill, + // __uninitialized_fill_copy. + + // __uninitialized_copy_copy + // Copies [first1, last1) into [result, result + (last1 - first1)), and + // copies [first2, last2) into + // [result, result + (last1 - first1) + (last2 - first2)). + + template<typename _InputIter1, typename _InputIter2, typename _ForwardIter> + inline _ForwardIter + __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, + _InputIter2 __first2, _InputIter2 __last2, + _ForwardIter __result) + { + _ForwardIter __mid = uninitialized_copy(__first1, __last1, __result); + __STL_TRY { + return uninitialized_copy(__first2, __last2, __mid); + } + __STL_UNWIND(_Destroy(__result, __mid)); + } + + // __uninitialized_fill_copy + // Fills [result, mid) with x, and copies [first, last) into + // [mid, mid + (last - first)). + template<typename _ForwardIter, typename _Tp, typename _InputIter> + inline _ForwardIter + __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, + const _Tp& __x, + _InputIter __first, _InputIter __last) + { + uninitialized_fill(__result, __mid, __x); + __STL_TRY { + return uninitialized_copy(__first, __last, __mid); + } + __STL_UNWIND(_Destroy(__result, __mid)); + } + + // __uninitialized_copy_fill + // Copies [first1, last1) into [first2, first2 + (last1 - first1)), and + // fills [first2 + (last1 - first1), last2) with x. + template<typename _InputIter, typename _ForwardIter, typename _Tp> + inline void + __uninitialized_copy_fill(_InputIter __first1, _InputIter __last1, + _ForwardIter __first2, _ForwardIter __last2, + const _Tp& __x) + { + _ForwardIter __mid2 = uninitialized_copy(__first1, __last1, __first2); + __STL_TRY { + uninitialized_fill(__mid2, __last2, __x); + } + __STL_UNWIND(_Destroy(__first2, __mid2)); + } } // namespace std diff --git a/libstdc++-v3/libio/Makefile.in b/libstdc++-v3/libio/Makefile.in index 53b9a86..17e886c 100644 --- a/libstdc++-v3/libio/Makefile.in +++ b/libstdc++-v3/libio/Makefile.in @@ -124,7 +124,7 @@ toplevel_srcdir = @toplevel_srcdir@ AUTOMAKE_OPTIONS = 1.3 cygnus mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs -@GLIBCPP_BUILD_LIBIO_TRUE@noinst_LTLIBRARIES = @GLIBCPP_BUILD_LIBIO_TRUE@libio.la +@GLIBCPP_BUILD_LIBIO_TRUE@noinst_LTLIBRARIES = libio.la @GLIBCPP_BUILD_LIBIO_FALSE@noinst_LTLIBRARIES = # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES @@ -132,20 +132,14 @@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ -INCLUDES = \ - -nostdinc++ \ - $(GLIBCPP_INCLUDES) $(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES) +INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES) -libio_headers = \ - libio.h libioP.h iolibio.h +libio_headers = libio.h libioP.h iolibio.h -@GLIBCPP_NEED_LIBIO_TRUE@LIBIO_SRCS = @GLIBCPP_NEED_LIBIO_TRUE@\ -@GLIBCPP_NEED_LIBIO_TRUE@ filedoalloc.c genops.c fileops.c stdfiles.c c_codecvt.c \ -@GLIBCPP_NEED_LIBIO_TRUE@ iofclose.c iofopen.c +@GLIBCPP_NEED_LIBIO_TRUE@LIBIO_SRCS = filedoalloc.c genops.c fileops.c stdfiles.c c_codecvt.c iofclose.c iofopen.c @GLIBCPP_NEED_LIBIO_FALSE@LIBIO_SRCS = -@GLIBCPP_NEED_WLIBIO_TRUE@LIBIO_WSRCS = @GLIBCPP_NEED_WLIBIO_TRUE@\ -@GLIBCPP_NEED_WLIBIO_TRUE@ wfiledoalloc.c wfileops.c wgenops.c iofwide.c +@GLIBCPP_NEED_WLIBIO_TRUE@LIBIO_WSRCS = wfiledoalloc.c wfileops.c wgenops.c iofwide.c @GLIBCPP_NEED_WLIBIO_FALSE@LIBIO_WSRCS = EXTRA_DIST = iostreamP.h diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in index ecdd410..17581f2 100644 --- a/libstdc++-v3/libmath/Makefile.in +++ b/libstdc++-v3/libmath/Makefile.in @@ -129,18 +129,13 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs noinst_LTLIBRARIES = libmath.la -EXTRA_LONG_DOUBLE_yes = \ - hypotl.c signbitl.c +EXTRA_LONG_DOUBLE_yes = hypotl.c signbitl.c -EXTRA_DIST = \ - hypot.c hypotf.c \ - $(EXTRA_LONG_DOUBLE_yes) +EXTRA_DIST = hypot.c hypotf.c $(EXTRA_LONG_DOUBLE_yes) -libmath_la_LIBADD = \ - @LIBMATHOBJS@ \ - $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE)) +libmath_la_LIBADD = @LIBMATHOBJS@ $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE)) libmath_la_DEPENDENCIES = $(libmath_la_LIBADD) @@ -152,8 +147,7 @@ LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ -INCLUDES = \ - $(TOPLEVEL_INCLUDES) +INCLUDES = $(TOPLEVEL_INCLUDES) CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index c41b4f3..10197f5 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -144,50 +144,24 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ # These bits are all figured out from configure. Look in acinclude.m4 # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. -CONFIG_CXXFLAGS = \ - @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ +CONFIG_CXXFLAGS = @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. -WARN_CXXFLAGS = \ - @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once +WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ -INCLUDES = \ - -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \ - $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) - - -headers = \ - exception new typeinfo cxxabi.h exception_defines.h - - -sources = \ - del_op.cc \ - del_opnt.cc \ - del_opv.cc \ - del_opvnt.cc \ - eh_alloc.cc \ - eh_aux_runtime.cc \ - eh_catch.cc \ - eh_exception.cc \ - eh_globals.cc \ - eh_personality.cc \ - eh_terminate.cc \ - eh_throw.cc \ - new_handler.cc \ - new_op.cc \ - new_opnt.cc \ - new_opv.cc \ - new_opvnt.cc \ - pure.cc \ - tinfo.cc \ - tinfo2.cc \ - vec.cc +INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) + + +headers = exception new typeinfo cxxabi.h exception_defines.h + + +sources = del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc eh_globals.cc eh_personality.cc eh_terminate.cc eh_throw.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc vec.cc libsupc___la_SOURCES = $(sources) @@ -203,12 +177,7 @@ LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS) # set this option because CONFIG_CXXFLAGS has to be after # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # as the occasion call for it. (ie, --enable-debug) -AM_CXXFLAGS = \ - -fno-implicit-templates \ - $(LIBSUPCXX_CXXFLAGS) \ - $(WARN_CXXFLAGS) \ - $(OPTIMIZE_CXXFLAGS) \ - $(CONFIG_CXXFLAGS) +AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) # libstdc++ libtool notes @@ -232,9 +201,7 @@ AM_CXXFLAGS = \ # # We have to put --tag disable-shared after --tag CXX lest things # CXX undo the affect of disable-shared. -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \ - --mode=compile $(CXX) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # 3) We'd have a problem when building the shared libstdc++ object if @@ -243,9 +210,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \ # course is problematic at this point. So, we get the top-level # directory to configure libstdc++-v3 to use gcc as the C++ # compilation driver. -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared \ - --mode=link $(CXX) \ - @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared --mode=link $(CXX) @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 1c9304e..f6c3124 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -134,13 +134,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ # These bits are all figured out from configure. Look in acinclude.m4 # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. -CONFIG_CXXFLAGS = \ - @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ +CONFIG_CXXFLAGS = @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ # Warning flags to use. -WARN_CXXFLAGS = \ - @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once +WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES @@ -150,28 +148,17 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ LIBIO_INCLUDES = @LIBIO_INCLUDES@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ -INCLUDES = \ - -nostdinc++ \ - $(GLIBCPP_INCLUDES) \ - $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \ - $(TOPLEVEL_INCLUDES) +INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) $(TOPLEVEL_INCLUDES) -sources = \ - basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc \ - complex_io.cc functexcept.cc globals.cc ios.cc limitsMEMBERS.cc \ - locale.cc locale-inst.cc localename.cc misc-inst.cc stdexcept.cc \ - stl-inst.cc string-inst.cc strstream.cc valarray-inst.cc \ - wstring-inst.cc +sources = basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc complex_io.cc functexcept.cc globals.cc ios.cc limitsMEMBERS.cc locale.cc locale-inst.cc localename.cc misc-inst.cc stdexcept.cc stl-inst.cc string-inst.cc strstream.cc valarray-inst.cc wstring-inst.cc VPATH = $(top_srcdir):$(top_srcdir)/src libstdc___la_SOURCES = $(sources) -libstdc___la_LIBADD = \ - ../libmath/libmath.la @libio_la@ \ - ../libsupc++/libsupc++convenience.la +libstdc___la_LIBADD = ../libmath/libmath.la @libio_la@ ../libsupc++/libsupc++convenience.la libstdc___la_LDFLAGS = -version-info 3:0:0 -lm @@ -191,12 +178,7 @@ GLIBCPP_INCLUDE_DIR = @glibcpp_builddir@/include # The no-implicit-templates flag will generate unresolved references to # the concept-checking symbols. So we must disable the checks while # actually building the library. -AM_CXXFLAGS = \ - -fno-implicit-templates \ - $(LIBSUPCXX_CXXFLAGS) \ - $(WARN_CXXFLAGS) \ - $(OPTIMIZE_CXXFLAGS) \ - $(CONFIG_CXXFLAGS) +AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) # libstdc++ libtool notes @@ -217,8 +199,7 @@ AM_CXXFLAGS = \ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # 3) We'd have a problem when building the shared libstdc++ object if @@ -227,8 +208,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ # course is problematic at this point. So, we get the top-level # directory to configure libstdc++-v3 to use gcc as the C++ # compilation driver. -CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \ - @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ CONFIG_HEADER = ../config.h CONFIG_CLEAN_FILES = diff --git a/libstdc++-v3/testsuite/23_containers/vector_ctor.cc b/libstdc++-v3/testsuite/23_containers/vector_ctor.cc index 6e97159..94782bf 100644 --- a/libstdc++-v3/testsuite/23_containers/vector_ctor.cc +++ b/libstdc++-v3/testsuite/23_containers/vector_ctor.cc @@ -1,7 +1,6 @@ -// 1999-06-29 -// bkoz +// 1999-06-29 bkoz -// Copyright (C) 1999, 2000 Free Software Foundation, Inc. +// Copyright (C) 1999-2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -57,10 +56,36 @@ void test02() std::vector<int> v2 (v1); } +// test range constructors and range-fill constructor +void +test03() +{ + const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; + const int B[] = {7, 7, 7, 7, 7}; + const int N = sizeof(A) / sizeof(int); + const int M = sizeof(B) / sizeof(int); + bool test = true; + + std::vector<int> v3(A, A + N); + VERIFY(std::equal(v3.begin(), v3.end(), A)); + + std::vector<int> v4(v3.begin(), v3.end()); + VERIFY(std::equal(v4.begin(), v4.end(), A)); + + std::vector<int> v5(M, 7); + VERIFY(std::equal(v5.begin(), v5.end(), B)); + VERIFY(std::equal(B, B + M, v5.begin())); + +#ifdef DEBUG_ASSERT + assert(test); +#endif +} int main() { test01(); test02(); + test03(); + return 0; } diff --git a/libstdc++-v3/testsuite/23_containers/vector_modifiers.cc b/libstdc++-v3/testsuite/23_containers/vector_modifiers.cc index 7ca7cf6..db18b9a 100644 --- a/libstdc++-v3/testsuite/23_containers/vector_modifiers.cc +++ b/libstdc++-v3/testsuite/23_containers/vector_modifiers.cc @@ -1,6 +1,6 @@ // 1999-11-09 bkoz -// Copyright (C) 1999 Free Software Foundation, Inc. +// Copyright (C) 1999, 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -21,7 +21,9 @@ // 23.2.4.3 vector modifiers #include <vector> -#include <debug_assert.h> +#include "debug_assert.h" + +bool test = true; template<typename T> struct A { }; @@ -29,10 +31,9 @@ template<typename T> struct B { }; // vector::insert(iterator, inputiterator first, inputiterator last) -bool test01() +void +test01() { - bool test = true; - // POD types typedef std::vector<int> vec_POD; vec_POD vec01; @@ -46,20 +47,42 @@ bool test01() A<B> np01; A<B>* pnp01 = &np01; vec02.insert(vec02.begin(), pnp01, pnp01 + 1); +} + +// test the assign() function +void +test03() +{ + const int K = 417; + const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; + const int B[] = {K, K, K, K, K}; + const int N = sizeof(A) / sizeof(int); + const int M = sizeof(B) / sizeof(int); + bool test = true; + + // assign from pointer range + std::vector<int> v3; + v3.assign(A, A + N); + VERIFY(std::equal(v3.begin(), v3.end(), A)); + VERIFY(v3.size() == N); - // Test that assign compiles. - vec01.assign (pi01, pi01 + 1); + // assign from iterator range + std::vector<int> v4; + v4.assign(v3.begin(), v3.end()); + VERIFY(std::equal(v4.begin(), v4.end(), A)); + VERIFY(std::equal(A, A + N, v4.begin())); -#ifdef DEBUG_ASSERT - assert(test); -#endif - - return test; + // assign from initializer range with resize + v4.assign(M, K); + VERIFY(std::equal(v4.begin(), v4.end(), B)); + VERIFY(std::equal(B, B + M, v4.begin())); + VERIFY((v4.size() == M) && (M != N)); } int main() { test01(); + test03(); - return 0; + return !test; } diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search.cc new file mode 100644 index 0000000..7e4396b --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/binary_search.cc @@ -0,0 +1,183 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 25.3.3 [lib.alg.binary.search] Binary search algorithms. + +#include <algorithm> +#include <debug_assert.h> + +bool test = true; + +const int A[] = {1, 2, 3, 3, 3, 5, 8}; +const int C[] = {8, 5, 3, 3, 3, 2, 1}; +const int N = sizeof(A) / sizeof(int); + +// A comparison, equalivalent to std::greater<int> without the +// dependency on <functional>. + +struct gt +{ + bool + operator()(const int& x, const int& y) const + { return x > y; } +}; + +// Each test performs general-case, bookend, not-found condition, +// and predicate functional checks. + +// 25.3.3.1 lower_bound, with and without comparison predicate +void +test01() +{ + using std::lower_bound; + + const int first = A[0]; + const int last = A[N - 1]; + + const int* p = lower_bound(A, A + N, 3); + VERIFY(p == A + 2); + + const int* q = lower_bound(A, A + N, first); + VERIFY(q == A + 0); + + const int* r = lower_bound(A, A + N, last); + VERIFY(r == A + N - 1); + + const int* s = lower_bound(A, A + N, 4); + VERIFY(s == A + 5); + + const int* t = lower_bound(C, C + N, 3, gt()); + VERIFY(t == C + 2); + + const int* u = lower_bound(C, C + N, first, gt()); + VERIFY(u == C + N - 1); + + const int* v = lower_bound(C, C + N, last, gt()); + VERIFY(v == C + 0); + + const int* w = lower_bound(C, C + N, 4, gt()); + VERIFY(w == C + 2); +} + +// 25.3.3.2 upper_bound, with and without comparison predicate +void +test02() +{ + using std::upper_bound; + + const int first = A[0]; + const int last = A[N - 1]; + + const int* p = upper_bound(A, A + N, 3); + VERIFY(p == A + 5); + + const int* q = upper_bound(A, A + N, first); + VERIFY(q == A + 1); + + const int* r = upper_bound(A, A + N, last); + VERIFY(r == A + N); + + const int* s = upper_bound(A, A + N, 4); + VERIFY(s == A + 5); + + const int* t = upper_bound(C, C + N, 3, gt()); + VERIFY(t == C + 5); + + const int* u = upper_bound(C, C + N, first, gt()); + VERIFY(u == C + N); + + const int* v = upper_bound(C, C + N, last, gt()); + VERIFY(v == C + 1); + + const int* w = upper_bound(C, C + N, 4, gt()); + VERIFY(w == C + 2); +} + +// 25.3.3.3 equal_range, with and without comparison predicate +void +test03() +{ + using std::equal_range; + typedef std::pair<const int*, const int*> Ipair; + + const int first = A[0]; + const int last = A[N - 1]; + + Ipair p = equal_range(A, A + N, 3); + VERIFY(p.first == A + 2); + VERIFY(p.second == A + 5); + + Ipair q = equal_range(A, A + N, first); + VERIFY(q.first == A + 0); + VERIFY(q.second == A + 1); + + Ipair r = equal_range(A, A + N, last); + VERIFY(r.first == A + N - 1); + VERIFY(r.second == A + N); + + Ipair s = equal_range(A, A + N, 4); + VERIFY(s.first == A + 5); + VERIFY(s.second == A + 5); + + Ipair t = equal_range(C, C + N, 3, gt()); + VERIFY(t.first == C + 2); + VERIFY(t.second == C + 5); + + Ipair u = equal_range(C, C + N, first, gt()); + VERIFY(u.first == C + N - 1); + VERIFY(u.second == C + N); + + Ipair v = equal_range(C, C + N, last, gt()); + VERIFY(v.first == C + 0); + VERIFY(v.second == C + 1); + + Ipair w = equal_range(C, C + N, 4, gt()); + VERIFY(w.first == C + 2); + VERIFY(w.second == C + 2); +} + +// 25.3.3.4 binary_search, with and without comparison predicate +void +test04() +{ + using std::binary_search; + + const int first = A[0]; + const int last = A[N - 1]; + + VERIFY(binary_search(A, A + N, 5)); + VERIFY(binary_search(A, A + N, first)); + VERIFY(binary_search(A, A + N, last)); + VERIFY(!binary_search(A, A + N, 4)); + + VERIFY(binary_search(C, C + N, 5, gt())); + VERIFY(binary_search(C, C + N, first, gt())); + VERIFY(binary_search(C, C + N, last, gt())); + VERIFY(!binary_search(C, C + N, 4, gt())); +} + +int +main(int argc, char* argv[]) +{ + test01(); + test02(); + test03(); + test04(); + + return !test; +} diff --git a/libstdc++-v3/testsuite/25_algorithms/copy.cc b/libstdc++-v3/testsuite/25_algorithms/copy.cc new file mode 100644 index 0000000..f08694f --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/copy.cc @@ -0,0 +1,58 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 25.2.12 [lib.alg.partitions] Partitions. + +#include <algorithm> +#include <debug_assert.h> + +bool test = true; + +const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; +const int N = sizeof(A) / sizeof(int); + +// copy +void +test01() +{ + using std::copy; + + int s1[N]; + copy(A, A + N, s1); + VERIFY(std::equal(s1, s1 + N, A)); +} + +// copy_backward +void +test02() +{ + using std::copy_backward; + + int s1[N]; + copy_backward(A, A + N, s1 + N); + VERIFY(std::equal(s1, s1 + N, A)); +} + +int +main(int argc, char* argv[]) +{ + test01(); + test02(); + + return !test; +} diff --git a/libstdc++-v3/testsuite/25_algorithms/heap.cc b/libstdc++-v3/testsuite/25_algorithms/heap.cc new file mode 100644 index 0000000..452b6aa --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/heap.cc @@ -0,0 +1,132 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 25.3.6 Heap operations [lib.alg.heap.operations] + +#include <algorithm> +//#include <cmath> +#include <debug_assert.h> + +bool test = true; + +const int A[] = {1, 11, 12, 3, 10, 6, 17, 4, 8, 2, 5, 13, 9, 15, 14, 16, 7}; +const int B[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; +const int C[] = {17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; +const int N = sizeof(A) / sizeof(int); + +// This functor has the equivalent functionality of std::geater<>, +// but there is no dependency on <functional> and it also tracks the +// number of invocations since creation. +class Gt +{ +public: + static int count() { return itsCount; } + static void reset() { itsCount = 0; } + + bool + operator()(const int& x, const int& y) + { + ++itsCount; + return x > y; + } + +private: + static int itsCount; +}; + +int Gt::itsCount = 0; + +// Exercise all of the heap functions for operator<. The +// intermediate results between push_heap and pop_heap and +// make_heap and sort_heap are not checked (they could be). +void +test01() +{ + // sort array s1 using push_heap/pop_heap + int s1[N]; + std::copy(A, A + N, s1); + VERIFY(std::equal(s1, s1 + N, A)); + + for (int i = 2; i <= N; ++i) { + std::push_heap(s1, s1 + i); + } + for (int i = N; i >= 2; --i) { + std::pop_heap(s1, s1 + i); + } + VERIFY(std::equal(s1, s1 + N, B)); + + // sort array s2 using make_heap/sort_heap + int s2[N]; + std::copy(A, A + N, s2); + VERIFY(std::equal(s2, s2 + N, A)); + + std::make_heap(s2, s2 + N); + std::sort_heap(s2, s2 + N); + VERIFY(std::equal(s2, s2 + N, B)); +} + +// Perform same tests as above but with the comparison predicate +// versions, and add complexity constraint checks. +void +test02() +{ + Gt gt; +// const int logN = static_cast<int>(std::log(static_cast<double>(N)) + 0.5); + const int logN = 3; + + int s1[N]; + std::copy(A, A + N, s1); + VERIFY(std::equal(s1, s1 + N, A)); + + for (int i = 2; i <= N; ++i) { + std::push_heap(s1, s1 + i, gt); + VERIFY(gt.count() <= logN); + gt.reset(); + } + + for (int i = N; i >= 2; --i) { + std::pop_heap(s1, s1 + i, gt); + VERIFY(gt.count() <= 2 * logN); + gt.reset(); + } + + VERIFY(std::equal(s1, s1 + N, C)); + + // sort array s2 using make_heap/sort_heap + int s2[N]; + std::copy(A, A + N, s2); + VERIFY(std::equal(s2, s2 + N, A)); + + std::make_heap(s2, s2 + N, gt); + VERIFY(gt.count() <= 3 * N); + gt.reset(); + + std::sort_heap(s2, s2 + N, gt); + VERIFY(gt.count() <= N * logN); + + VERIFY(std::equal(s2, s2 + N, C)); +} + +int +main(int argc, char* argv[]) +{ + test01(); + test02(); + + return !test; +} diff --git a/libstdc++-v3/testsuite/25_algorithms/partition.cc b/libstdc++-v3/testsuite/25_algorithms/partition.cc new file mode 100644 index 0000000..6623cd3 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/partition.cc @@ -0,0 +1,73 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 25.2.12 [lib.alg.partitions] Partitions. + +#include <algorithm> +#include <functional> +#include <debug_assert.h> + +bool test = true; + +const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; +const int B[] = {2, 4, 6, 8, 10, 12, 14, 16, 1, 3, 5, 7, 9, 11, 13, 15, 17}; +const int N = sizeof(A) / sizeof(int); + +struct Pred +{ + bool + operator()(const int& x) const + { return (x % 2) == 0; } +}; + +// 25.2.12 partition() +void +test01() +{ + using std::partition; + + int s1[N]; + std::copy(A, A + N, s1); + + Pred pred; + int* m = partition(s1, s1 + N, pred); + for (const int* i = s1; i < m; ++i) VERIFY(pred(*i)); + for (const int* i = m; i < s1 + N; ++i) VERIFY(!pred(*i)); +} + +// 25.2.12 stable_partition() +void +test02() +{ + using std::stable_partition; + + int s1[N]; + std::copy(A, A + N, s1); + + stable_partition(s1, s1 + N, Pred()); + VERIFY(std::equal(s1, s1 + N, B)); +} + +int +main(int argc, char* argv[]) +{ + test01(); + test02(); + + return !test; +} diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate.cc b/libstdc++-v3/testsuite/25_algorithms/rotate.cc new file mode 100644 index 0000000..e80d3cd --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/rotate.cc @@ -0,0 +1,80 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 25.?? algorithms, rotate() + +#include <algorithm> +#include <debug_assert.h> +#include <list> + +bool test = true; + +int A[] = {1, 2, 3, 4, 5, 6, 7}; +int B[] = {2, 3, 4, 5, 6, 7, 1}; +int C[] = {1, 2, 3, 4, 5, 6, 7}; +int D[] = {5, 6, 7, 1, 2, 3, 4}; +const int N = sizeof(A) / sizeof(int); + +/* need a test for a forward iterator -- can't think of one that makes sense */ + +/* biderectional iterator */ +void +test02() +{ + using std::rotate; + typedef std::list<int> Container; + + Container a(A, A + N); + VERIFY(std::equal(a.begin(), a.end(), A)); + + Container::iterator i = a.begin(); + rotate(a.begin(), ++i, a.end()); + VERIFY(std::equal(a.begin(), a.end(), B)); + + i = a.end(); + rotate(a.begin(), --i, a.end()); + VERIFY(std::equal(a.begin(), a.end(), C)); + + i = a.begin(); + std::advance(i, 3); + rotate(a.begin(), ++i, a.end()); + VERIFY(std::equal(a.begin(), a.end(), D)); +} + +/* random iterator */ +void +test03() +{ + using std::rotate; + rotate(A, A + 1, A + N); + VERIFY(std::equal(A, A + N, B)); + + rotate(A, A + N - 1, A + N); + VERIFY(std::equal(A, A + N, C)); + + rotate(A, A + 4, A + N); + VERIFY(std::equal(A, A + N, D)); +} + +int +main(int argc, char* argv[]) +{ + test02(); + test03(); + return !test; +} diff --git a/libstdc++-v3/testsuite/25_algorithms/sort.cc b/libstdc++-v3/testsuite/25_algorithms/sort.cc new file mode 100644 index 0000000..f26dd01 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/sort.cc @@ -0,0 +1,171 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 25.3.1 algorithms, sort() + +#include <algorithm> +#include <debug_assert.h> + +bool test = true; + +const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}; +const int B[] = {10, 20, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19}; +const int C[] = {20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; +const int N = sizeof(A) / sizeof(int); +const int logN = 3; // ln(N) rounded up +const int P = 7; + +// comparison predicate for stable_sort: order by rightmost digit +struct CompLast +{ + bool + operator()(const int x, const int y) + { return x % 10 < y % 10; } +}; + +// This functor has the equivalent functionality of std::geater<>, +// but there is no dependency on <functional> and it also tracks the +// number of invocations since creation. +class Gt +{ +public: + static int count() { return itsCount; } + static void reset() { itsCount = 0; } + + bool + operator()(const int& x, const int& y) + { + ++itsCount; + return x > y; + } + +private: + static int itsCount; +}; + +int Gt::itsCount = 0; + + +// 25.3.1.1 sort() +void +test01() +{ + int s1[N]; + std::copy(B, B + N, s1); + VERIFY(std::equal(s1, s1 + N, B)); + + std::sort(s1, s1 + N); + VERIFY(std::equal(s1, s1 + N, A)); + + Gt gt; + gt.reset(); + std::sort(s1, s1 + N, gt); + VERIFY(std::equal(s1, s1 + N, C)); +} + +// 25.3.1.2 stable_sort() +void +test02() +{ + int s1[N]; + std::copy(A, A + N, s1); + VERIFY(std::equal(s1, s1 + N, A)); + + std::stable_sort(s1, s1 + N, CompLast()); + VERIFY(std::equal(s1, s1 + N, B)); + + std::stable_sort(s1, s1 + N); + VERIFY(std::equal(s1, s1 + N, A)); + + Gt gt; + gt.reset(); + std::stable_sort(s1, s1 + N, gt); + VERIFY(std::equal(s1, s1 + N, C)); + VERIFY(gt.count() <= N * logN * logN); +} + +// 25.3.1.3 partial_sort() +void +test03() +{ + int s1[N]; + std::copy(B, B + N, s1); + VERIFY(std::equal(s1, s1 + N, B)); + + std::partial_sort(s1, s1 + P, s1 + N); + VERIFY(std::equal(s1, s1 + P, A)); + + Gt gt; + gt.reset(); + std::partial_sort(s1, s1 + P, s1 + N, gt); + VERIFY(std::equal(s1, s1 + P, C)); +} + +// 25.3.1.4 partial_sort_copy() +void +test04() +{ + using std::partial_sort_copy; + + int s1[N]; + std::copy(B, B + N, s1); + VERIFY(std::equal(s1, s1 + N, B)); + + int s2[2*N]; + + partial_sort_copy(s1, s1 + N, s2, s2 + P); + VERIFY(std::equal(s2, s2 + P, A)); + + Gt gt; + gt.reset(); + partial_sort_copy(s1, s1 + N, s2, s2 + P, gt); + VERIFY(std::equal(s2, s2 + P, C)); + + VERIFY(std::equal(s2, partial_sort_copy(s1, s1 + N, s2, s2 + 2*N), A)); +} + +// 25.3.2 nth_element() +void +test05() +{ + using std::nth_element; + + int s1[N]; + std::copy(B, B + N, s1); + VERIFY(std::equal(s1, s1 + N, B)); + + int* pn = s1 + (N / 2) - 1; + nth_element(s1, pn, s1 + N); + for (const int* i = pn; i < s1 + N; ++i) VERIFY(!(*i < *pn)); + + CompLast pred; + nth_element(s1, pn, s1 + N, pred); + for (const int* i = pn; i < s1 + N; ++i) VERIFY(!pred(*i, *pn)); +} + +int +main(int argc, char* argv[]) +{ + test01(); + test02(); + test03(); + test04(); + test05(); + + return !test; +} diff --git a/libstdc++-v3/testsuite/26_numerics/sum_diff.cc b/libstdc++-v3/testsuite/26_numerics/sum_diff.cc new file mode 100644 index 0000000..ffc4e63 --- /dev/null +++ b/libstdc++-v3/testsuite/26_numerics/sum_diff.cc @@ -0,0 +1,47 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 26.4.3 [lib.partial.sum] +// 26.4.4 [lib.adjacent.difference] + +#include <algorithm> +#include <numeric> +#include <cassert> + +int A[] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}; +int B[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}; +const int N = sizeof(A) / sizeof(int); + +void +test01() +{ + int D[N]; + + std::adjacent_difference(A, A + N, D); + assert(std::equal(D, D + N, B)); + + std::partial_sum(D, D + N, D); + assert(std::equal(D, D + N, A)); +} + +int +main(int argc, char* argv[]) +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index 2c350e5..1af4d4e 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -128,14 +128,10 @@ AUTOMAKE_OPTIONS = foreign dejagnu DEJATOOL = libstdc++-v3 -EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then \ - echo @glibcpp_builddir@/../../expect/expect ; \ - else echo expect ; fi` +EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then echo @glibcpp_builddir@/../../expect/expect ; else echo expect ; fi` -RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then \ - echo @glibcpp_srcdir@/../dejagnu/runtest ; \ - else echo runtest; fi` +RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then echo @glibcpp_srcdir@/../dejagnu/runtest ; else echo runtest; fi` RUNTESTFLAGS = |
