summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Cerqueira <ricardo@cyngn.com>2015-11-04 21:13:33 +0000
committerRicardo Cerqueira <ricardo@cyngn.com>2015-11-04 21:13:33 +0000
commit5c874ef768f1112f01f4436b3ec03452e9fd654c (patch)
tree8fd3e22b8eefb38628c7b8ff69c2f033c95da230
parent67c32f79eb2f4e3c9ae0110baaa9a5bf14fb0827 (diff)
downloadandroid_external_connectivity-5c874ef768f1112f01f4436b3ec03452e9fd654c.tar.gz
android_external_connectivity-5c874ef768f1112f01f4436b3ec03452e9fd654c.tar.bz2
android_external_connectivity-5c874ef768f1112f01f4436b3ec03452e9fd654c.zip
Adjust to cm-13/M
No moar stlport
-rw-r--r--cnefeatureconfig/Android.mk5
-rw-r--r--stlport/README64
-rwxr-xr-xstlport/configure333
-rw-r--r--stlport/libstlport.mk12
-rw-r--r--stlport/stlport/algorithm62
-rw-r--r--stlport/stlport/assert.h50
-rw-r--r--stlport/stlport/bitset70
-rw-r--r--stlport/stlport/cctype47
-rw-r--r--stlport/stlport/cfloat45
-rw-r--r--stlport/stlport/climits53
-rw-r--r--stlport/stlport/cstdarg47
-rw-r--r--stlport/stlport/cstddef47
-rw-r--r--stlport/stlport/cstdio53
-rw-r--r--stlport/stlport/cstring47
-rw-r--r--stlport/stlport/ctype.h114
-rw-r--r--stlport/stlport/deque57
-rw-r--r--stlport/stlport/errno.h70
-rw-r--r--stlport/stlport/exception68
-rw-r--r--stlport/stlport/float.h52
-rw-r--r--stlport/stlport/hash_map49
-rw-r--r--stlport/stlport/hash_set49
-rw-r--r--stlport/stlport/iterator61
-rw-r--r--stlport/stlport/limits50
-rw-r--r--stlport/stlport/limits.h39
-rw-r--r--stlport/stlport/list57
-rw-r--r--stlport/stlport/map57
-rw-r--r--stlport/stlport/math.h53
-rw-r--r--stlport/stlport/memory130
-rw-r--r--stlport/stlport/new47
-rw-r--r--stlport/stlport/pthread.h46
-rw-r--r--stlport/stlport/queue57
-rw-r--r--stlport/stlport/set57
-rw-r--r--stlport/stlport/signal.h39
-rw-r--r--stlport/stlport/slist54
-rw-r--r--stlport/stlport/stack57
-rw-r--r--stlport/stlport/stdarg.h47
-rw-r--r--stlport/stlport/stddef.h44
-rw-r--r--stlport/stlport/stdio.h57
-rw-r--r--stlport/stlport/stdlib.h67
-rw-r--r--stlport/stlport/stl/_algo.c2028
-rw-r--r--stlport/stlport/stl/_algo.h745
-rw-r--r--stlport/stlport/stl/_algobase.c483
-rw-r--r--stlport/stlport/stl/_algobase.h728
-rw-r--r--stlport/stlport/stl/_alloc.c87
-rw-r--r--stlport/stlport/stl/_alloc.h580
-rw-r--r--stlport/stlport/stl/_auto_ptr.h133
-rw-r--r--stlport/stlport/stl/_bitset.c235
-rw-r--r--stlport/stlport/stl/_bitset.h880
-rw-r--r--stlport/stlport/stl/_bvector.h841
-rw-r--r--stlport/stlport/stl/_carray.h61
-rw-r--r--stlport/stlport/stl/_cctype.h49
-rwxr-xr-xstlport/stlport/stl/_cmath.h581
-rw-r--r--stlport/stlport/stl/_config_compat_post.h51
-rw-r--r--stlport/stlport/stl/_construct.h289
-rw-r--r--stlport/stlport/stl/_cprolog.h25
-rw-r--r--stlport/stlport/stl/_cstdarg.h34
-rw-r--r--stlport/stlport/stl/_cstddef.h44
-rw-r--r--stlport/stlport/stl/_cstdio.h127
-rwxr-xr-xstlport/stlport/stl/_cstdlib.h195
-rw-r--r--stlport/stlport/stl/_cstring.h35
-rw-r--r--stlport/stlport/stl/_ctraits_fns.h91
-rw-r--r--stlport/stlport/stl/_cwchar.h342
-rw-r--r--stlport/stlport/stl/_deque.c823
-rw-r--r--stlport/stlport/stl/_deque.h1115
-rw-r--r--stlport/stlport/stl/_epilog.h42
-rw-r--r--stlport/stlport/stl/_exception.h193
-rw-r--r--stlport/stlport/stl/_function.h433
-rw-r--r--stlport/stlport/stl/_function_adaptors.h783
-rw-r--r--stlport/stlport/stl/_function_base.h217
-rw-r--r--stlport/stlport/stl/_hash_fun.h146
-rw-r--r--stlport/stlport/stl/_hash_map.h500
-rw-r--r--stlport/stlport/stl/_hash_set.h495
-rw-r--r--stlport/stlport/stl/_hashtable.c553
-rw-r--r--stlport/stlport/stl/_hashtable.h658
-rw-r--r--stlport/stlport/stl/_heap.c246
-rw-r--r--stlport/stlport/stl/_heap.h125
-rw-r--r--stlport/stlport/stl/_iosfwd.h159
-rw-r--r--stlport/stlport/stl/_iterator.h265
-rw-r--r--stlport/stlport/stl/_iterator_base.h525
-rw-r--r--stlport/stlport/stl/_limits.c405
-rw-r--r--stlport/stlport/stl/_limits.h519
-rw-r--r--stlport/stlport/stl/_list.c250
-rw-r--r--stlport/stlport/stl/_list.h742
-rw-r--r--stlport/stlport/stl/_map.h435
-rw-r--r--stlport/stlport/stl/_mbstate_t.h41
-rw-r--r--stlport/stlport/stl/_move_construct_fwk.h159
-rw-r--r--stlport/stlport/stl/_new.h145
-rw-r--r--stlport/stlport/stl/_pair.h182
-rw-r--r--stlport/stlport/stl/_prolog.h18
-rw-r--r--stlport/stlport/stl/_ptrs_specialize.h83
-rw-r--r--stlport/stlport/stl/_queue.h268
-rw-r--r--stlport/stlport/stl/_range_errors.c84
-rw-r--r--stlport/stlport/stl/_range_errors.h60
-rw-r--r--stlport/stlport/stl/_raw_storage_iter.h80
-rw-r--r--stlport/stlport/stl/_relops_cont.h29
-rw-r--r--stlport/stlport/stl/_relops_hash_cont.h13
-rw-r--r--stlport/stlport/stl/_set.h412
-rw-r--r--stlport/stlport/stl/_slist.c231
-rw-r--r--stlport/stlport/stl/_slist.h914
-rw-r--r--stlport/stlport/stl/_slist_base.c104
-rw-r--r--stlport/stlport/stl/_slist_base.h90
-rw-r--r--stlport/stlport/stl/_stack.h133
-rw-r--r--stlport/stlport/stl/_stlport_version.h30
-rw-r--r--stlport/stlport/stl/_stream_iterator.h253
-rw-r--r--stlport/stlport/stl/_string.c673
-rw-r--r--stlport/stlport/stl/_string.h1182
-rw-r--r--stlport/stlport/stl/_string_base.h231
-rw-r--r--stlport/stlport/stl/_string_fwd.h60
-rw-r--r--stlport/stlport/stl/_string_hash.h71
-rw-r--r--stlport/stlport/stl/_string_npos.h27
-rw-r--r--stlport/stlport/stl/_string_operators.h602
-rw-r--r--stlport/stlport/stl/_tempbuf.c57
-rw-r--r--stlport/stlport/stl/_tempbuf.h167
-rw-r--r--stlport/stlport/stl/_tree.c730
-rw-r--r--stlport/stlport/stl/_tree.h684
-rw-r--r--stlport/stlport/stl/_uninitialized.h443
-rw-r--r--stlport/stlport/stl/_unordered_map.h443
-rw-r--r--stlport/stlport/stl/_vector.c242
-rw-r--r--stlport/stlport/stl/_vector.h773
-rw-r--r--stlport/stlport/stl/char_traits.h278
-rwxr-xr-xstlport/stlport/stl/config/_android.h98
-rw-r--r--stlport/stlport/stl/config/_auto_link.h61
-rw-r--r--stlport/stlport/stl/config/_detect_dll_or_lib.h74
-rw-r--r--stlport/stlport/stl/config/_epilog.h29
-rw-r--r--stlport/stlport/stl/config/_feedback.h43
-rw-r--r--stlport/stlport/stl/config/_gcc.h198
-rw-r--r--stlport/stlport/stl/config/_msvc.h265
-rw-r--r--stlport/stlport/stl/config/_native_headers.h50
-rw-r--r--stlport/stlport/stl/config/_prolog.h43
-rwxr-xr-xstlport/stlport/stl/config/_system.h175
-rw-r--r--stlport/stlport/stl/config/_warnings_off.h51
-rw-r--r--stlport/stlport/stl/config/_windows.h291
-rw-r--r--stlport/stlport/stl/config/compat.h80
-rw-r--r--stlport/stlport/stl/config/features.h1079
-rw-r--r--stlport/stlport/stl/config/host.h342
-rw-r--r--stlport/stlport/stl/config/stl_confix.h97
-rwxr-xr-xstlport/stlport/stl/config/user_config.h323
-rw-r--r--stlport/stlport/stl/debug/_debug.h473
-rw-r--r--stlport/stlport/stl/type_manips.h321
-rwxr-xr-xstlport/stlport/stl/type_traits.h588
-rw-r--r--stlport/stlport/string59
-rw-r--r--stlport/stlport/string.h66
-rw-r--r--stlport/stlport/time.h44
-rw-r--r--stlport/stlport/using/cstring60
-rw-r--r--stlport/stlport/utility60
-rw-r--r--stlport/stlport/vector59
-rw-r--r--stlport/stlport/wchar.h64
147 files changed, 1 insertions, 35790 deletions
diff --git a/cnefeatureconfig/Android.mk b/cnefeatureconfig/Android.mk
index 951e134..30f5c5f 100644
--- a/cnefeatureconfig/Android.mk
+++ b/cnefeatureconfig/Android.mk
@@ -8,15 +8,12 @@ LOCAL_SRC_FILES:= \
LOCAL_MODULE:= libcnefeatureconfig
LOCAL_MODULE_TAGS := optional
-LOCAL_SHARED_LIBRARIES := libc libcutils libstlport \
+LOCAL_SHARED_LIBRARIES := libc libcutils
LOCAL_C_INCLUDES := \
external/connectivity/cnefeatureconfig/inc \
external/connectivity/stlport/stlport
-LOCAL_REQUIRED_MODULES := \
- external/connectivity/stlport
-
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)
diff --git a/stlport/README b/stlport/README
deleted file mode 100644
index a759495..0000000
--- a/stlport/README
+++ /dev/null
@@ -1,64 +0,0 @@
-**********************************************************************
-* README file for STLport 5.0 *
-* *
-**********************************************************************
-
-This directory contains the STLport-5.0 release.
-
-What's inside :
-
-README - this file
-INSTALL - installation instructions
-
-bin - installation directory for STLport unit tests;
- it may contain more subdirs, if you use
- crosscompilation
-build/lib - build directory for STLport library (if you use
- STLport iostreams and/or locale only)
-build/test/unit - build directory for regression (unit) tests
-build/test/eh - build directory for exception handling tests
-stlport - main STLport include directory
-src - source for iostreams implementation and other parts
- that aren't pure template code
-lib - installation directory for STLport library (if you
- use STLport iostreams and/or locale only);
- it may contain more subdirs, if you use
- crosscompilation
-test/unit - unit (regression) tests
-test/eh - exception handling test using STLport iostreams
-etc - miscellanous files (ChangeLog, TODO, scripts, etc.)
-
-GETTING STLPORT
-
-To download the latest version of STLport, please be sure to visit
-https://sourceforge.net/project/showfiles.php?group_id=146814
-
-LEGALESE
-
-This software is being distributed under the following terms:
-
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999-2003
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
-
-**********************************************************************
diff --git a/stlport/configure b/stlport/configure
deleted file mode 100755
index 2f48511..0000000
--- a/stlport/configure
+++ /dev/null
@@ -1,333 +0,0 @@
-#!/bin/sh
-
-# Time-stamp: <08/06/07 15:22:19 yeti>
-
-base=`cd \`dirname $0\`; echo $PWD`
-
-configmak=$base/build/Makefiles/gmake/config.mak
-
-write_option() {
- target=`echo $1 | sed -e 's/^[^=]*=//'`
- echo $2 := $3$target >> ${configmak}
-}
-
-write_over_option() {
- target=`echo $1 | sed -e 's/^[^=]*=//'`
- echo $2 ?= $target >> ${configmak}
-}
-
-print_help() {
- cat <<EOF
-Configuration utility.
-
-Usage:
-
- configure [options]
-
-Available options:
-
- --prefix=<dir> base install path (/usr/local/)
- --bindir=<dir> install path for executables (PREFIX/bin)
- --libdir=<dir> install path for libraries (PREFIX/lib)
- --includedir=<dir> install path for headers (PREFIX/include)
-
- --target=<target> target platform (cross-compiling)
-
- --help print this help message and exit
-
- --with-stlport=<dir> use STLport in catalog <dir>
- --without-stlport compile without STLport
- --with-boost=<dir> use boost headers in catalog <dir>
- --with-system-boost use boost installed on this system
- --with-msvc=<dir> use MS VC from this catalog
- --with-mssdk=<dir> use MS SDK from this catalog
- --with-extra-cxxflags=<options>
- pass extra options to C++ compiler
- --with-extra-cflags=<options>
- pass extra options to C compiler
- --with-extra-ldflags=<options>
- pass extra options to linker (via C/C++)
- --use-static-gcc use static gcc libs instead of shared libgcc_s (useful for gcc compiler,
- that was builded with --enable-shared [default]; if compiler was builded
- with --disable-shared, static libraries will be used in any case)
- --clean remove custom settings (file ${configmak})
- and use default values
- --with-cxx=<name> use <name> as C++ compiler (use --target= for cross-compilation)
- --with-cc=<name> use <name> as C compiler (use --target= for cross-compilation)
- --use-compiler-family=<name> use compiler family; one of:
- gcc GNU compilers (default)
- icc Intel compilers
- aCC HP's aCC compilers
- CC SunPro's CC compilers
- bcc Borland's compilers
- --without-debug don't build debug variant
- --without-stldebug don't build STLport's STLP_DEBUG mode
- --enable-static build static
- --disable-shared don't build shared
- --with-lib-motif=<motif>
- Use this option to customize the generated library name.
- The motif will be used in the last place before version information,
- separated by an underscore, ex:
- stlportd_MOTIF.5.0.lib
- stlportstld_static_MOTIF.5.1.lib
- --without-thread Per default STLport libraries are built in order to be usable
- in a multithreaded context. If you don't need this you can ask
- for a not thread safe version with this option.
- --without-rtti Disable RTTI when building libraries.
- --with-static-rtl
- --with-dynamic-rtl
- Enables usage of static (libc.lib family) or dynamic (msvcrt.lib family)
- C/C++ runtime library when linking with STLport. If you want your appli/dll
- to link statically with STLport but using the dynamic C runtime use
- --with-dynamic-rtl; if you want to link dynamicaly with STLport but using the
- static C runtime use --with-static-rtl. See README.options for details.
- Don't forget to signal the link method when building your appli or dll, in
- stlport/stl/config/host.h set the following macro depending on the configure
- option:
- --with-static-rtl -> _STLP_USE_DYNAMIC_LIB"
- --with-dynamic-rtl -> _STLP_USE_STATIC_LIB"
- --windows-platform=<name>
- Targetted OS when building for Windows; one of:
- win95 Windows 95
- win98 Windows 98
- winxp Windows XP and later (default)
-
-Environment variables:
-
- \$CXX C++ compiler name (use --target= for cross-compilation)
- \$CC C compiler name (use --target= for cross-compilation)
- \$CXXFLAGS pass extra options to C++ compiler
- \$CFLAGS pass extra options to C compiler
- \$LDFLAGS pass extra options to linker (via C/C++)
-
- Options has preference over environment variables.
-
-EOF
-}
-
-default_settings () {
- # if [ "$boost_set" = "" ]; then
- # write_option "${PWD}/external/boost" BOOST_DIR
- # fi
-
- # if [ -z "${stlport_set}" ]; then
- # write_over_option "$base" STLPORT_DIR
- # fi
-
- # Set in Makefiles/gmake/top.mak
- if [ -z "${compiler_family_set}" ]; then
- # write_option gcc COMPILER_NAME
- echo include gcc.mak > ${base}/build/lib/Makefile
- echo include gcc.mak > ${base}/build/test/unit/Makefile
- echo include gcc.mak > ${base}/build/test/eh/Makefile
- fi
-
- # Set in Makefiles/gmake/targetdirs.mak
- # if [ -z "${prefix_set}" ]; then
- # write_option "/usr/local" BASE_INSTALL_DIR '${DESTDIR}'
- # fi
-}
-
-[ $# -eq 0 ] && { >${configmak}; default_settings; exit 0; }
-
-for a in $@ ; do
- case $a in
- --help)
- print_help
- exit 0
- ;;
- --clean)
- rm -f ${configmak}
- exit 0
- ;;
- esac
-done
-
->${configmak}
-
-while :
-do
- case $# in
- 0)
- break
- ;;
- esac
- option="$1"
- shift
- case $option in
- --target=*)
- write_option "$option" TARGET_OS
- target_set=y
- ;;
- --with-stlport=*)
- write_option "$option" STLPORT_DIR
- stlport_set=y
- ;;
- --without-stlport)
- write_option 1 WITHOUT_STLPORT
- stlport_set=y
- ;;
- --with-boost=*)
- write_option "$option" BOOST_DIR
- ;;
- --with-system-boost)
- write_option 1 USE_SYSTEM_BOOST
- ;;
- --with-msvc=*)
- write_option "$option" MSVC_DIR
- ;;
- --with-mssdk=*)
- write_option "$option" MSSDK_DIR
- ;;
- --with-extra-cxxflags=*)
- write_option "$option" EXTRA_CXXFLAGS
- cxxflags_set=y
- ;;
- --with-extra-cflags=*)
- write_option "$option" EXTRA_CFLAGS
- cflags_set=y
- ;;
- --with-extra-ldflags=*)
- write_option "$option" EXTRA_LDFLAGS
- ldflags_set=y
- ;;
- --with-lib-motif=*)
- echo "Using $option in generated library names"
- write_option "$option" LIB_MOTIF
- ;;
- --without-thread)
- write_option 1 WITHOUT_THREAD
- ;;
- --without-rtti)
- write_option 1 WITHOUT_RTTI
- ;;
- --with-dynamic-rtl)
- write_option 1 WITH_DYNAMIC_RTL
- ;;
- --with-static-rtl)
- write_option 1 WITH_STATIC_RTL
- ;;
- --use-static-gcc)
- write_option 1 USE_STATIC_LIBGCC
- ;;
- --without-debug)
- write_option 1 _NO_DBG_BUILD
- ;;
- --without-stldebug)
- write_option 1 _NO_STLDBG_BUILD
- ;;
- --enable-static)
- write_option 1 _STATIC_BUILD
- ;;
- --disable-shared)
- write_option 1 _NO_SHARED_BUILD
- ;;
- --with-cxx=*)
- write_option "$option" _FORCE_CXX
- cxx_set=y
- ;;
- --with-cc=*)
- write_option "$option" _FORCE_CC
- cc_set=y
- ;;
- --use-compiler-family=*)
- case `echo $option | sed -e 's/^[^=]*=//'` in
- gcc|icc|aCC|CC|bcc|dmc)
- target=`echo $option | sed -e 's/^[^=]*=//'`
- echo COMPILER_NAME := $target >> ${configmak}
- echo include $target.mak > ${base}/build/lib/Makefile
- echo include $target.mak > ${base}/build/test/unit/Makefile
- echo include $target.mak > ${base}/build/test/eh/Makefile
- ;;
- *)
- echo "Not supported compilers family"
- exit -1
- ;;
- esac
- compiler_family_set=y
- ;;
- --prefix=*)
- write_option "$option" BASE_INSTALL_DIR '${DESTDIR}'
- prefix_set=y
- ;;
- --bindir=*)
- write_option "$option" INSTALL_BIN_DIR '${DESTDIR}'
- ;;
- --libdir=*)
- write_option "$option" INSTALL_LIB_DIR '${DESTDIR}'
- ;;
- --includedir=*)
- write_option "$option" INSTALL_HDR_DIR '${DESTDIR}'
- ;;
- --windows-platform=*)
- case `echo $option | sed -e 's/^[^=]*=//'` in
- win95)
- write_option 0x0400 WINVER
- ;;
- win98)
- write_option 0x0410 WINVER
- ;;
- winxp)
- write_option 0x0501 WINVER
- ;;
- *)
- echo "Not supported windows platform"
- exit -1
- ;;
- esac
- ;;
- *)
- echo "Unknown configuration option '$option'"
- exit -1
- ;;
- esac
-done
-
-if [ -n "${CXX}" ]; then
- if [ -n "${cxx_set}" ]; then
- echo "Both --with-cxx and \$CXX set, using the first"
- elif [ -z "${target_set}" ]; then
- write_option "${CXX}" _FORCE_CXX
- else
- echo "For cross-compilation with gcc use --target option only"
- fi
- if [ -z "${CC}" -a -z "${cc_set}" ]; then
- echo "\$CXX set, but I don't see \$CC!"
- fi
-fi
-
-if [ -n "${CC}" ]; then
- if [ -n "${cxx_set}" ]; then
- echo "Both --with-cc and \$CC set, using the first"
- else
- write_option "${CC}" _FORCE_CC
- fi
-fi
-
-if [ -n "${CXXFLAGS}" ]; then
- if [ -z "${cxxflags_set}" ]; then
- write_option "${CXXFLAGS}" EXTRA_CXXFLAGS
- else
- echo "Both --with-extra-cxxflags and \$CXXFLAGS set, using the first"
- fi
-fi
-
-if [ -n "${CFLAGS}" ]; then
- if [ -z "${cflags_set}" ]; then
- write_option "${CFLAGS}" EXTRA_CFLAGS
- else
- echo "Both --with-extra-cflags and \$CFLAGS set, using the first"
- fi
-fi
-
-if [ -n "${LDFLAGS}" ]; then
- if [ -z "${ldflags_set}" ]; then
- write_option "${LDFLAGS}" EXTRA_LDFLAGS
- else
- echo "Both --with-extra-ldflags and \$LDFLAGS set, using the first"
- fi
-fi
-
-# default settings
-
-default_settings
diff --git a/stlport/libstlport.mk b/stlport/libstlport.mk
deleted file mode 100644
index 8321d4a..0000000
--- a/stlport/libstlport.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Add a couple include paths to use stlport.
-
-# Only use this on the device or emulator.
-ifeq ($(TARGET_SIMULATOR),true)
-$(error STLPort not suitable for the simulator! $(LOCAL_PATH))
-endif
-
-# Make sure bionic is first so we can include system headers.
-LOCAL_C_INCLUDES := \
- bionic \
- external/connectivity/stlport/stlport \
- $(LOCAL_C_INCLUDES)
diff --git a/stlport/stlport/algorithm b/stlport/stlport/algorithm
deleted file mode 100644
index c653d8c..0000000
--- a/stlport/stlport/algorithm
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_ALGORITHM
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x1
-# include <stl/_prolog.h>
-# define _STLP_ALGORITHM
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x1)
-# ifndef _STLP_INTERNAL_CSTDIO
-// remove() conflicts, <cstdio> should always go first
-# include <stl/_cstdio.h>
-# endif
-
-# ifndef _STLP_INTERNAL_ALGO_H
-# include <stl/_algo.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x1) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <algorithm>
-# else
-# include _STLP_NATIVE_HEADER(algorithm)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x1 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_ALGORITHM */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/assert.h b/stlport/stlport/assert.h
deleted file mode 100644
index 112dd26..0000000
--- a/stlport/stlport/assert.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x202
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x202) && ! defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-/* evc3 doesn't have assert.h; macro assert() is defined in stl_evc.h */
-#ifndef _STLP_WCE_EVC3
-# if !defined (assert)
-# define _STLP_NATIVE_ASSERT_H_INCLUDED
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <assert.h>
-# else
-# include _STLP_NATIVE_C_HEADER(assert.h)
-# endif
-# endif
-# if !defined (_STLP_NATIVE_ASSERT_H_INCLUDED)
-/* See errno.h for additional information about this #error */
-# error assert has been defined before inclusion of assert.h header.
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x202)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# endif
-# undef _STLP_DONT_POP_HEADER_ID
-#endif
-
-/* Local Variables:
- * mode:C++
- * End:
- */
diff --git a/stlport/stlport/bitset b/stlport/stlport/bitset
deleted file mode 100644
index 1d7fcf3..0000000
--- a/stlport/stlport/bitset
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_BITSET
-
-// This implementation of bitset<> has a second template parameter,
-// _WordT, which defaults to unsigned long. *YOU SHOULD NOT USE
-// THIS FEATURE*. It is experimental, and it may be removed in
-// future releases.
-
-// A bitset of size N, using words of type _WordT, will have
-// N % (sizeof(_WordT) * CHAR_BIT) unused bits. (They are the high-
-// order bits in the highest word.) It is a class invariant
-// of class bitset<> that those unused bits are always zero.
-
-// Most of the actual code isn't contained in bitset<> itself, but in the
-// base class _Base_bitset. The base class works with whole words, not with
-// individual bits. This allows us to specialize _Base_bitset for the
-// important special case where the bitset is only a single word.
-
-// The C++ standard does not define the precise semantics of operator[].
-// In this implementation the const version of operator[] is equivalent
-// to test(), except that it does no range checking. The non-const version
-// returns a reference to a bit, again without doing any range checking.
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x2
-# include <stl/_prolog.h>
-# define _STLP_BITSET
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x2)
-# ifndef _STLP_INTERNAL_BITSET
-# include <stl/_bitset.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x2) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <bitset>
-# else
-# include _STLP_NATIVE_HEADER(bitset)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x2 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_BITSET */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/cctype b/stlport/stlport/cctype
deleted file mode 100644
index 513512e..0000000
--- a/stlport/stlport/cctype
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CCTYPE
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x104
-# define _STLP_CCTYPE
-# include <stl/_prolog.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x104 )
-# ifndef _STLP_INTERNAL_CCTYPE
-# include <stl/_cctype.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x104) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cctype>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cctype)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x104 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_CCTYPE */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/cfloat b/stlport/stlport/cfloat
deleted file mode 100644
index cb2e0cd..0000000
--- a/stlport/stlport/cfloat
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CFLOAT
-#define _STLP_CFLOAT
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x106
-# include <stl/_prolog.h>
-#endif
-
-// Borland defines some implementation constants in std:: namespace,
-// we do not want to import them.
-#if defined (_STLP_USE_NEW_C_HEADERS) && !defined (__BORLANDC__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cfloat>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cfloat)
-# endif
-#else
-# include <float.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x106 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_CFLOAT */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/climits b/stlport/stlport/climits
deleted file mode 100644
index 86bc413..0000000
--- a/stlport/stlport/climits
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CLIMITS
-# define _STLP_CLIMITS
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x108
-# include <stl/_prolog.h>
-#endif
-
-#if defined (__SUNPRO_CC) && ((__SUNPRO_CC == 0x500) && (__SUNPRO_CC_COMPAT > 4))
-# include </usr/include/limits.h>
-#elif defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <climits>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(climits)
-# endif
-#else
-# if defined (__BORLANDC__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <limits.h>
-# else
-# include _STLP_NATIVE_C_HEADER(limits.h)
-# endif
-# else
-# include <limits.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x108 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_CLIMITS */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/cstdarg b/stlport/stlport/cstdarg
deleted file mode 100644
index 6882bbd..0000000
--- a/stlport/stlport/cstdarg
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CSTDARG
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x113
-# define _STLP_CSTDARG
-# include <stl/_prolog.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x113)
-# ifndef _STLP_INTERNAL_CSTDARG
-# include <stl/_cstdarg.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x113) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstdarg>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstdarg)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x113 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_CSTDARG */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/cstddef b/stlport/stlport/cstddef
deleted file mode 100644
index 0a66f0e..0000000
--- a/stlport/stlport/cstddef
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CSTDDEF
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x114
-# define _STLP_CSTDDEF
-# include <stl/_prolog.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x114)
-# ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x114) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstddef>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstddef)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x114 )
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_CSTDDEF */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/cstdio b/stlport/stlport/cstdio
deleted file mode 100644
index e20c8ff..0000000
--- a/stlport/stlport/cstdio
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CSTDIO
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x15
-# include <stl/_prolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x15) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-# define _STLP_CSTDIO
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x15) && !defined (_STLP_DONT_POP_HEADER_ID)
-# ifndef _STLP_INTERNAL_CSTDIO
-# include <stl/_cstdio.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x15) || defined (_STLP_DONT_POP_HEADER_ID) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstdio>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstdio)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x15)
-# if !defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
-
-#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/cstring b/stlport/stlport/cstring
deleted file mode 100644
index d5cf58d..0000000
--- a/stlport/stlport/cstring
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CSTRING
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x117
-# define _STLP_CSTRING
-# include <stl/_prolog.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x117)
-# ifndef _STLP_INTERNAL_CSTRING
-# include <stl/_cstring.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x117) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstring>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstring)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x117)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_CSTRING */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/ctype.h b/stlport/stlport/ctype.h
deleted file mode 100644
index f9d1000..0000000
--- a/stlport/stlport/ctype.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CTYPE_H
-
-/* Workaround for a "misbehaviour" when compiling resource scripts using
- * eMbedded Visual C++. The standard .rc file includes windows header files,
- * which in turn include ctype.h, which results in warnings and errors
- */
-#if !defined(RC_INVOKED)
-
-# if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x219
-# include <stl/_prolog.h>
-# elif (_STLP_OUTERMOST_HEADER_ID == 0x219)
-# define _STLP_DONT_POP_HEADER_ID
-# define _STLP_CTYPE_H
-# endif
-
-# if defined(_STLP_WCE_EVC3)
-struct _exception;
-# endif
-
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <ctype.h>
-# else
-# include _STLP_NATIVE_C_HEADER(ctype.h)
-# endif
-
-/* on evc4 including ctype.h also defines setjmp macro */
-# if defined (_STLP_WCE)
-# define _STLP_NATIVE_SETJMP_H_INCLUDED
-# endif
-
-# ifndef _STLP_CTYPE_H_SEEN
-# define _STLP_CTYPE_H_SEEN
-
-/* Undef convenience interfaces */
-# undef isspace
-# undef isprint
-# undef iscntrl
-# undef isupper
-# undef islower
-# undef isalpha
-# undef isdigit
-# undef ispunct
-# undef isxdigit
-# undef isalnum
-# undef isgraph
-# undef toupper
-# undef tolower
-
-# if defined (UNDER_CE)
-
-# if (_WIN32_WCE < 300) /* Only wide chars for older versions */
-# define _isctype iswctype
-# endif
-
-__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); }
-__inline int (isupper)(int c) { return _isctype(c, _UPPER); }
-__inline int (islower)(int c) { return _isctype(c, _LOWER); }
-__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); }
-__inline int (isxdigit)(int c) { return _isctype(c, _HEX); }
-__inline int (isspace)(int c) { return _isctype(c, _SPACE); }
-__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); }
-__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); }
-__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); }
-__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); }
-__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); }
-__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); }
-
-# undef _isctype
-
-__inline int (iswalpha)(int c) { return iswctype((unsigned short)(c), _ALPHA); }
-__inline int (iswupper)(int c) { return iswctype((unsigned short)(c), _UPPER); }
-__inline int (iswlower)(int c) { return iswctype((unsigned short)(c), _LOWER); }
-__inline int (iswdigit)(int c) { return iswctype((unsigned short)(c), _DIGIT); }
-__inline int (iswxdigit)(int c) { return iswctype((unsigned short)(c), _HEX); }
-__inline int (iswspace)(int c) { return iswctype((unsigned short)(c), _SPACE); }
-__inline int (iswpunct)(int c) { return iswctype((unsigned short)(c), _PUNCT); }
-__inline int (iswalnum)(int c) { return iswctype((unsigned short)(c), _ALPHA|_DIGIT); }
-__inline int (iswprint)(int c) { return iswctype((unsigned short)(c), _BLANK|_PUNCT|_ALPHA|_DIGIT); }
-__inline int (iswgraph)(int c) { return iswctype((unsigned short)(c), _PUNCT|_ALPHA|_DIGIT); }
-__inline int (iswcntrl)(int c) { return iswctype((unsigned short)(c), _CONTROL); }
-__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); }
-
-# endif /* UNDER_CE */
-
-# endif /* _STLP_CTYPE_H_SEEN */
-
-# if (_STLP_OUTERMOST_HEADER_ID == 0x219)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-# endif
-
-#endif /* RC_INVOKED */
-
-#endif /* _STLP_CTYPE_H */
diff --git a/stlport/stlport/deque b/stlport/stlport/deque
deleted file mode 100644
index 448f159..0000000
--- a/stlport/stlport/deque
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_DEQUE
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x22
-# include <stl/_prolog.h>
-# define _STLP_DEQUE
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x22)
-# ifndef _STLP_INTERNAL_DEQUE_H
-# include <stl/_deque.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x22) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <deque>
-# else
-# include _STLP_NATIVE_HEADER(deque)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x22)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_DEQUE */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/errno.h b/stlport/stlport/errno.h
deleted file mode 100644
index bb7999b..0000000
--- a/stlport/stlport/errno.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x205
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x205) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#ifdef _STLP_WCE
-/* only show message when directly including this file in a non-library build */
-# if !defined(__BUILDING_STLPORT) && (_STLP_OUTERMOST_HEADER_ID == 0x205)
-# pragma message("eMbedded Visual C++ 3 and .NET don't have a errno.h header; STLport won't include native errno.h here")
-# endif
-#else
-# ifndef errno
-/* We define the following macro first to guaranty the header reentrancy: */
-# define _STLP_NATIVE_ERRNO_H_INCLUDED
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <errno.h>
-# else
-# include _STLP_NATIVE_C_HEADER(errno.h)
-# endif
-# if defined (__BORLANDC__) && (__BORLANDC__ >= 0x590) && defined (__cplusplus)
-_STLP_BEGIN_NAMESPACE
-using _STLP_VENDOR_CSTD::__errno;
-_STLP_END_NAMESPACE
-# endif
-# endif /* errno */
-
-# if !defined (_STLP_NATIVE_ERRNO_H_INCLUDED)
-/* If errno has been defined before inclusion of native errno.h including it from STLport errno.h
- * becomes impossible because if:
- * #define errno foo
- * then
- * #include _STLP_NATIVE_C_HEADER(errno.h)
- * becomes:
- * #include _STLP_NATIVE_C_HEADER(foo.h)
- *
- * To fix this problem you have to find where this definition comes from and include errno.h before it.
- */
-# error errno has been defined before inclusion of errno.h header.
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x205)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# endif
-# undef _STLP_DONT_POP_HEADER_ID
-#endif
-
-/* Local Variables:
- * mode: C
- * End:
- */
diff --git a/stlport/stlport/exception b/stlport/stlport/exception
deleted file mode 100644
index 47822e9..0000000
--- a/stlport/stlport/exception
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-// This header exists solely for portability. Normally it just includes
-// the native header <exception>.
-
-#ifndef _STLP_EXCEPTION
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x423
-# include <stl/_prolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x423)
-# define _STLP_DONT_POP_HEADER_ID
-# define _STLP_EXCEPTION
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x423) && !defined (_STLP_DONT_POP_HEADER_ID)
-# ifndef _STLP_INTERNAL_EXCEPTION
-# include <stl/_exception.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x423) || defined (_STLP_DONT_POP_HEADER_ID) || defined (_STLP_IMPORT_VENDOR_STD)
-/* If we are here it means that we are in an include called
- * from the native lib which means that we can simply forward this
- * call to the native exception header:
- */
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <exception>
-# else
-# if defined (__DMC__) && (_STLP_OUTERMOST_HEADER_ID == 0x874)
-// Workaround to DMC harcoded typeinfo.h inclusion.
-# include <../include/exception>
-# else
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception)
-# endif
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x423)
-# if !defined(_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
-
-#endif /* _STLP_EXCEPTION */
-
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/float.h b/stlport/stlport/float.h
deleted file mode 100644
index 70fe3ad..0000000
--- a/stlport/stlport/float.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x203
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x203) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x203)
-# error This header is only reentrant once, it should be modified if it has to be included more.
-#endif
-
-#if defined (_STLP_WCE_EVC3)
-struct _exception;
-#endif
-
-#if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <float.h>
-#else
-# include _STLP_NATIVE_C_HEADER(float.h)
-#endif
-
-#if !defined (__linux__)
-# if defined(__BORLANDC__) && defined (__cplusplus) && (__BORLANDC__ >= 0x560)
-_STLP_BEGIN_NAMESPACE
-using ::_max_dble;
-using ::_max_flt;
-using ::_max_ldble;
-using ::_tiny_ldble;
-_STLP_END_NAMESPACE
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x203)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# endif
-# undef _STLP_DONT_POP_HEADER_ID
-#endif
diff --git a/stlport/stlport/hash_map b/stlport/stlport/hash_map
deleted file mode 100644
index 0e2422d..0000000
--- a/stlport/stlport/hash_map
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_HASH_MAP
-#define _STLP_HASH_MAP
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x4028
-# include <stl/_prolog.h>
-#endif
-
-#ifdef _STLP_PRAGMA_ONCE
-# pragma once
-#endif
-
-#if defined (_STLP_NO_EXTENSIONS)
-/* Comment following if you want to use hash constainers even if you ask for
- * no extension.
- */
-# error The hash_map and hash_multimap class are STLport extensions.
-#endif
-
-#include <stl/_hash_map.h>
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x4028)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_HASH_MAP */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/hash_set b/stlport/stlport/hash_set
deleted file mode 100644
index 0fc89ec..0000000
--- a/stlport/stlport/hash_set
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_HASH_SET
-#define _STLP_HASH_SET
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x4029
-# include <stl/_prolog.h>
-#endif
-
-#ifdef _STLP_PRAGMA_ONCE
-# pragma once
-#endif
-
-#if defined (_STLP_NO_EXTENSIONS)
-/* Comment following if you want to use hash constainers even if you ask for
- * no extension.
- */
-# error The hash_set and hash_multiset class are STLport extensions.
-#endif
-
-#include <stl/_hash_set.h>
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x4029)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_HASH_SET */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/iterator b/stlport/stlport/iterator
deleted file mode 100644
index f8d3dee..0000000
--- a/stlport/stlport/iterator
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_ITERATOR
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x38
-# include <stl/_prolog.h>
-# define _STLP_ITERATOR
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x38)
-# ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-# endif
-
-# ifndef _STLP_INTERNAL_STREAM_ITERATOR_H
-# include <stl/_stream_iterator.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x38) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <iterator>
-# else
-# include _STLP_NATIVE_HEADER(iterator)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x38)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_ITERATOR */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/limits b/stlport/stlport/limits
deleted file mode 100644
index 5333b14..0000000
--- a/stlport/stlport/limits
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_LIMITS
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x39
-# include <stl/_prolog.h>
-# define _STLP_LIMITS
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x39)
-# ifndef _STLP_INTERNAL_LIMITS
-# include <stl/_limits.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x39) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <limits>
-# else
-# include _STLP_NATIVE_HEADER(limits)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x39)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_LIMITS */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/limits.h b/stlport/stlport/limits.h
deleted file mode 100644
index aab553b..0000000
--- a/stlport/stlport/limits.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x201
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x201) && ! defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#if defined(_STLP_WCE_EVC3)
-struct _exception;
-#endif
-
-#if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <limits.h>
-#else
-# include _STLP_NATIVE_C_HEADER(limits.h)
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x201)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# endif
-# undef _STLP_DONT_POP_HEADER_ID
-#endif
diff --git a/stlport/stlport/list b/stlport/stlport/list
deleted file mode 100644
index 647a8be..0000000
--- a/stlport/stlport/list
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_LIST
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x40
-# include <stl/_prolog.h>
-# define _STLP_LIST
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x40)
-# ifndef _STLP_INTERNAL_LIST_H
-# include <stl/_list.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x40) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <list>
-# else
-# include _STLP_NATIVE_HEADER(list)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x40)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_LIST */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/map b/stlport/stlport/map
deleted file mode 100644
index f30c400..0000000
--- a/stlport/stlport/map
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_MAP
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x43
-# include <stl/_prolog.h>
-# define _STLP_MAP
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x43)
-# ifndef _STLP_INTERNAL_MAP_H
-# include <stl/_map.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x43) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <map>
-# else
-# include _STLP_NATIVE_HEADER(map)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x43)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_MAP */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/math.h b/stlport/stlport/math.h
deleted file mode 100644
index 32b666f..0000000
--- a/stlport/stlport/math.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x244
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x244) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#if !defined (exception) && (!defined (__KCC) || (__KCC_VERSION < 4000)) && \
- !(defined(__IBMCPP__) && (500 <= __IBMCPP__)) && !defined(_STLP_WCE_EVC3)
-# define _STLP_EXCEPTION_WAS_REDEFINED 1
-# define exception __math_exception
-#endif
-
-#if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <math.h>
-#else
-# include _STLP_NATIVE_C_HEADER(math.h)
-#endif
-
-#if defined (_STLP_EXCEPTION_WAS_REDEFINED)
-# undef exception
-# undef _STLP_EXCEPTION_WAS_REDEFINED
-#endif
-
-#ifdef _STLP_WCE_EVC3
-# undef _exception
-# define _exception exception
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x244)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
-
diff --git a/stlport/stlport/memory b/stlport/stlport/memory
deleted file mode 100644
index 3c0ceb3..0000000
--- a/stlport/stlport/memory
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_MEMORY
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x46
-# include <stl/_prolog.h>
-# define _STLP_MEMORY
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x46)
-# ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-# endif
-
-# ifndef _STLP_INTERNAL_TEMPBUF_H
-# include <stl/_tempbuf.h>
-# endif
-
-# ifndef _STLP_INTERNAL_RAW_STORAGE_ITER_H
-# include <stl/_raw_storage_iter.h>
-# endif
-
-# include <stl/_auto_ptr.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x46) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (__MSL__)
-# include _STLP_NATIVE_HEADER(limits)
-# endif
-
-# if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
-# define BOOST_TR1_MEMORY_INCLUDED
-# define BOOST_TR1_FULL_MEMORY_INCLUDED
-# endif
-
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <memory>
-# else
-# include _STLP_NATIVE_HEADER(memory)
-# endif
-
-# if defined (__MSL__) && (__MSL__ >= 0x2405 && __MSL__ < 0x5201)
-/* 980401 vss MSL 2.4 Pro 3 Release */
-# include <new_mem.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x46)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
-
-namespace boost {
-
-class bad_weak_ptr;
-template<class T> class shared_ptr;
-template<class T> class weak_ptr;
-template<class T> class enable_shared_from_this;
-template<class D, class T> D * get_deleter(shared_ptr<T> const & p);
-template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r);
-template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r);
-template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r);
-template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b);
-template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b);
-
-namespace detail{
-class shared_count;
-class weak_count;
-}
-
-} // namespace boost
-
-# ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-# include <boost/shared_ptr.hpp>
-# endif
-# ifndef BOOST_WEAK_PTR_HPP_INCLUDED
-# include <boost/weak_ptr.hpp>
-# endif
-# ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
-# include <boost/enable_shared_from_this.hpp>
-# endif
-
-_STLP_BEGIN_NAMESPACE
-
-namespace tr1 {
-
-using ::boost::bad_weak_ptr;
-using ::boost::shared_ptr;
-using ::boost::swap;
-using ::boost::static_pointer_cast;
-using ::boost::dynamic_pointer_cast;
-using ::boost::const_pointer_cast;
-using ::boost::get_deleter;
-using ::boost::weak_ptr;
-using ::boost::enable_shared_from_this;
-
-// shared_ptr IO
-// weak_ptr IO
-
-} // namespace tr1
-
-_STLP_END_NAMESPACE
-
-#endif /* !_STLP_NO_EXTENSIONS && _STLP_USE_BOOST_SUPPORT */
-
-#endif /* _STLP_MEMORY */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/new b/stlport/stlport/new
deleted file mode 100644
index 974ca44..0000000
--- a/stlport/stlport/new
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_NEW_HEADER
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x447
-# define _STLP_NEW_HEADER
-# include <stl/_prolog.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x447)
-# ifndef _STLP_NEW_H_HEADER
-# include <stl/_new.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x447) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <new>
-# else
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x447)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_NEW */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/pthread.h b/stlport/stlport/pthread.h
deleted file mode 100644
index 4f0d90c..0000000
--- a/stlport/stlport/pthread.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x280
-# include <stl/_prolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x280) && ! defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#if defined (__SUNPRO_CC) || defined (__HP_aCC)
-# include "/usr/include/pthread.h"
-#else
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <pthread.h>
-# else
-# include _STLP_NATIVE_C_HEADER(pthread.h)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x280)
-# if !defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
-
-/*
- Local Variables:
- mode:C++
- End:
-*/
diff --git a/stlport/stlport/queue b/stlport/stlport/queue
deleted file mode 100644
index 6acd63f..0000000
--- a/stlport/stlport/queue
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_QUEUE
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x53
-# include <stl/_prolog.h>
-# define _STLP_QUEUE
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x53)
-# ifndef _STLP_INTERNAL_QUEUE_H
-# include <stl/_queue.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x53) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <queue>
-# else
-# include _STLP_NATIVE_HEADER(queue)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x53)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_QUEUE */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/set b/stlport/stlport/set
deleted file mode 100644
index ed79d89..0000000
--- a/stlport/stlport/set
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_SET
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x55
-# include <stl/_prolog.h>
-# define _STLP_SET
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x55)
-# ifndef _STLP_INTERNAL_SET_H
-# include <stl/_set.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x55) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <set>
-# else
-# include _STLP_NATIVE_HEADER(set)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x55)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_SET */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/signal.h b/stlport/stlport/signal.h
deleted file mode 100644
index 27f91be..0000000
--- a/stlport/stlport/signal.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x257
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x257) && ! defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-/* evc3 and evc4 don't have signal.h */
-#ifndef _STLP_WCE
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <signal.h>
-# else
-# include _STLP_NATIVE_C_HEADER(signal.h)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x257)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# endif
-# undef _STLP_DONT_POP_HEADER_ID
-#endif
-
diff --git a/stlport/stlport/slist b/stlport/stlport/slist
deleted file mode 100644
index c1930e4..0000000
--- a/stlport/stlport/slist
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-
-#ifndef _STLP_SLIST
-#define _STLP_SLIST
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x58
-# include <stl/_prolog.h>
-#endif
-
-#ifdef _STLP_PRAGMA_ONCE
-# pragma once
-#endif
-
-#if defined (_STLP_NO_EXTENSIONS)
-/* Comment following if you want to use the slist constainer even if you ask for
- * no extension.
- */
-# error The slist class is an STLport extension.
-#endif
-
-#ifndef _STLP_INTERNAL_SLIST_H
-# include <stl/_slist.h>
-#endif
-
-#if defined (_STLP_IMPORT_VENDOR_STD)
-//This is not a Standard header, it might failed for most of
-//the compilers so we comment it for the moment. Should be uncommented
-//on a compiler basis.
-//# include _STLP_NATIVE_HEADER(slist)
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x58)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_SLIST */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stack b/stlport/stlport/stack
deleted file mode 100644
index 253b31d..0000000
--- a/stlport/stlport/stack
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STACK
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x60
-# include <stl/_prolog.h>
-# define _STLP_STACK
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x60)
-# ifndef _STLP_INTERNAL_STACK_H
-# include <stl/_stack.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x60) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stack>
-# else
-# include _STLP_NATIVE_HEADER(stack)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x60)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_STACK */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stdarg.h b/stlport/stlport/stdarg.h
deleted file mode 100644
index 368e672..0000000
--- a/stlport/stlport/stdarg.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* Workaround for a "misbehaviour" when compiling resource scripts using
- * eMbedded Visual C++. The standard .rc file includes windows header files,
- * which in turn include stdarg.h, which results in warnings and errors
- */
-#if !defined (RC_INVOKED)
-
-# if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x261
-# include <stl/_cprolog.h>
-# elif (_STLP_OUTERMOST_HEADER_ID == 0x261) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-# endif
-
-# if defined(_STLP_WCE_EVC3)
-struct _exception;
-# endif
-
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stdarg.h>
-# else
-# include _STLP_NATIVE_C_HEADER(stdarg.h)
-# endif
-
-# if (_STLP_OUTERMOST_HEADER_ID == 0x261)
-# if !defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-# endif
-#endif /* RC_INVOKED */
diff --git a/stlport/stlport/stddef.h b/stlport/stlport/stddef.h
deleted file mode 100644
index f959c23..0000000
--- a/stlport/stlport/stddef.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x262
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x262) && ! defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#if defined (_MSC_VER) || defined (__DMC__)
-/* Native stddef.h contains errno macro definition making inclusion of native
- * errno.h in STLport errno.h impossible. We are then forced to include errno.h
- * first.
- */
-# include "errno.h"
-#endif
-
-#if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stddef.h>
-#else
-# include _STLP_NATIVE_C_HEADER(stddef.h)
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x262)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
diff --git a/stlport/stlport/stdio.h b/stlport/stlport/stdio.h
deleted file mode 100644
index e2dbdea..0000000
--- a/stlport/stlport/stdio.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* Workaround for a "misbehaviour" when compiling resource scripts using
- * eMbedded Visual C++. The standard .rc file includes windows header files,
- * which in turn include stdarg.h, which results in warnings and errors
- */
-#if !defined(RC_INVOKED)
-
-# ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x264
-# include <stl/_cprolog.h>
-# elif (_STLP_OUTERMOST_HEADER_ID == 0x264) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-# endif
-
-# if defined(_STLP_WCE_EVC3)
-struct _exception;
-# endif
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stdio.h>
-# else
-# include _STLP_NATIVE_C_HEADER(stdio.h)
-# endif
-
-# if defined (__SUNPRO_CC) && !defined (_STRUCT_FILE)
-# define _STRUCT_FILE
-# endif
-
-# if defined (__BORLANDC__) && defined (__cplusplus) && !defined (__linux__)
-_STLP_BEGIN_NAMESPACE
-using __std_alias::_streams;
-_STLP_END_NAMESPACE
-# endif
-
-# if (_STLP_OUTERMOST_HEADER_ID == 0x264)
-# if !defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-# endif
-
-#endif /* RC_INVOKED */
diff --git a/stlport/stlport/stdlib.h b/stlport/stlport/stdlib.h
deleted file mode 100644
index fd55f8a..0000000
--- a/stlport/stlport/stdlib.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* Workaround for a "misbehaviour" when compiling resource scripts using
- * eMbedded Visual C++. The standard .rc file includes windows header files,
- * which in turn include stdlib.h, which results in warnings and errors
- */
-#if !defined (RC_INVOKED)
-
-# if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x265
-# include <stl/_cprolog.h>
-# elif (_STLP_OUTERMOST_HEADER_ID == 0x265) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-# endif
-
-# if defined (_STLP_MSVC_LIB) || (defined (__GNUC__) && defined (__MINGW32__)) || \
- defined (__BORLANDC__) || defined (__DMC__) || \
- (defined (__HP_aCC) && defined (_REENTRANT))
-/* Native stdlib.h contains errno macro definition making inclusion of native
- * errno.h in STLport errno.h impossible. We are then forced to include errno.h
- * first.
- */
-# include "errno.h"
-# endif
-
-/*
- forward-declaration for _exception struct; prevents warning message
- ../include/stdlib.h(817) : warning C4115: '_exception' : named type definition in parentheses
-*/
-# if defined(_STLP_WCE_EVC3)
-struct _exception;
-# endif
-
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stdlib.h>
-# else
-# include _STLP_NATIVE_C_HEADER(stdlib.h)
-# endif
-
-/* on evc3/evc4 including stdlib.h also defines setjmp macro */
-# if defined (_STLP_WCE)
-# define _STLP_NATIVE_SETJMP_H_INCLUDED
-# endif
-
-# if (_STLP_OUTERMOST_HEADER_ID == 0x265)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-# endif
-
-#endif /* RC_INVOKED */
diff --git a/stlport/stlport/stl/_algo.c b/stlport/stlport/stl/_algo.c
deleted file mode 100644
index b58b92d..0000000
--- a/stlport/stlport/stl/_algo.c
+++ /dev/null
@@ -1,2028 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_ALGO_C
-#define _STLP_ALGO_C
-
-#if !defined (_STLP_INTERNAL_ALGO_H)
-# include <stl/_algo.h>
-#endif
-
-#ifndef _STLP_INTERNAL_TEMPBUF_H
-# include <stl/_tempbuf.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _BidirectionalIter, class _Distance, class _Compare>
-void __merge_without_buffer(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last,
- _Distance __len1, _Distance __len2,
- _Compare __comp);
-
-
-template <class _BidirectionalIter1, class _BidirectionalIter2,
- class _BidirectionalIter3, class _Compare>
-_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1,
- _BidirectionalIter1 __last1,
- _BidirectionalIter2 __first2,
- _BidirectionalIter2 __last2,
- _BidirectionalIter3 __result,
- _Compare __comp);
-
-template <class _Tp>
-#if !(defined (__SUNPRO_CC) && (__SUNPRO_CC < 0x420 ))
-inline
-#endif
-const _Tp& __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) {
- 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>
-#if !(defined (__SUNPRO_CC) && (__SUNPRO_CC < 0x420 ))
-inline
-#endif
-const _Tp&
-__median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) {
- if (__comp(__a, __b)) {
- _STLP_VERBOSE_ASSERT(!__comp(__b, __a), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- if (__comp(__b, __c)) {
- _STLP_VERBOSE_ASSERT(!__comp(__c, __b), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return __b;
- }
- else if (__comp(__a, __c)) {
- _STLP_VERBOSE_ASSERT(!__comp(__c, __a), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return __c;
- }
- else
- return __a;
- }
- else if (__comp(__a, __c)) {
- _STLP_VERBOSE_ASSERT(!__comp(__c, __a), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return __a;
- }
- else if (__comp(__b, __c)) {
- _STLP_VERBOSE_ASSERT(!__comp(__c, __b), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return __c;
- }
- else
- return __b;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter1, class _ForwardIter2>
-_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- // Test for empty ranges
- if (__first1 == __last1 || __first2 == __last2)
- return __first1;
-
- // Test for a pattern of length 1.
- _ForwardIter2 __p1(__first2);
-
- if ( ++__p1 == __last2 )
- return find(__first1, __last1, *__first2);
-
- // General case.
-
- for ( ; ; ) { // __first1 != __last1 will be checked in find below
- __first1 = find(__first1, __last1, *__first2);
- if (__first1 == __last1)
- return __last1;
-
- _ForwardIter2 __p = __p1;
- _ForwardIter1 __current = __first1;
- if (++__current == __last1)
- return __last1;
-
- while (*__current == *__p) {
- if (++__p == __last2)
- return __first1;
- if (++__current == __last1)
- return __last1;
- }
-
- ++__first1;
- }
- return __first1;
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _RandomAccessIter, class _Integer, class _Tp,
- class _BinaryPred, class _Distance>
-_RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
- _Integer __count, const _Tp& __val, _BinaryPred __pred,
- _Distance*, const random_access_iterator_tag &)
-{
- _Distance __tailSize = __last - __first;
- const _Distance __pattSize = __count;
- const _Distance __skipOffset = __pattSize - 1;
- _RandomAccessIter __backTrack;
- _Distance __remainder, __prevRemainder;
-
- for ( _RandomAccessIter __lookAhead = __first + __skipOffset; __tailSize >= __pattSize; __lookAhead += __pattSize ) { // the main loop...
- //__lookAhead here is always pointing to the last element of next possible match.
- __tailSize -= __pattSize;
-
- while ( !__pred(*__lookAhead, __val) ) { // the skip loop...
- if (__tailSize < __pattSize)
- return __last;
-
- __lookAhead += __pattSize;
- __tailSize -= __pattSize;
- }
-
- if ( __skipOffset == 0 ) {
- return (__lookAhead - __skipOffset); //Success
- }
-
- __remainder = __skipOffset;
-
- for (__backTrack = __lookAhead; __pred(*--__backTrack, __val); ) {
- if (--__remainder == 0)
- return (__lookAhead - __skipOffset); //Success
- }
-
- if (__remainder > __tailSize)
- return __last; //failure
-
- __lookAhead += __remainder;
- __tailSize -= __remainder;
-
- while ( __pred(*__lookAhead, __val) ) {
- __prevRemainder = __remainder;
- __backTrack = __lookAhead;
-
- do {
- if (--__remainder == 0)
- return (__lookAhead - __skipOffset); //Success
- } while (__pred(*--__backTrack, __val));
-
- //adjust remainder for next comparison
- __remainder += __pattSize - __prevRemainder;
-
- if (__remainder > __tailSize)
- return __last; //failure
-
- __lookAhead += __remainder;
- __tailSize -= __remainder;
- }
-
- //__lookAhead here is always pointing to the element of the last mismatch.
- }
-
- return __last; //failure
-}
-
-template <class _ForwardIter, class _Integer, class _Tp,
- class _Distance, class _BinaryPred>
-_ForwardIter __search_n(_ForwardIter __first, _ForwardIter __last,
- _Integer __count, const _Tp& __val, _BinaryPred __pred,
- _Distance*, const forward_iterator_tag &) {
- for (; (__first != __last) && !__pred(*__first, __val); ++__first) {}
- while (__first != __last) {
- _Integer __n = __count - 1;
- _ForwardIter __i = __first;
- ++__i;
- while (__i != __last && __n != 0 && __pred(*__i, __val)) {
- ++__i;
- --__n;
- }
- if (__n == 0)
- return __first;
- else if (__i != __last)
- for (__first = ++__i; (__first != __last) && !__pred(*__first, __val); ++__first) {}
- else
- break;
- }
- return __last;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-// search_n. Search for __count consecutive copies of __val.
-template <class _ForwardIter, class _Integer, class _Tp>
-_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last,
- _Integer __count, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__count <= 0)
- return __first;
- if (__count == 1)
- //We use find when __count == 1 to use potential find overload.
- return find(__first, __last, __val);
- return _STLP_PRIV __search_n(__first, __last, __count, __val, equal_to<_Tp>(),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter),
- _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
-}
-
-template <class _ForwardIter, class _Integer, class _Tp, class _BinaryPred>
-_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last,
- _Integer __count, const _Tp& __val,
- _BinaryPred __binary_pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__count <= 0)
- return __first;
- return _STLP_PRIV __search_n(__first, __last, __count, __val, __binary_pred,
- _STLP_DISTANCE_TYPE(__first, _ForwardIter),
- _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
-}
-
-template <class _ForwardIter1, class _ForwardIter2>
-_ForwardIter1
-find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- return _STLP_PRIV __find_end(__first1, __last1, __first2, __last2,
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
- _STLP_ITERATOR_CATEGORY(__first1, _ForwardIter1),
- _STLP_ITERATOR_CATEGORY(__first2, _ForwardIter2),
-#else
- forward_iterator_tag(),
- forward_iterator_tag(),
-#endif
- _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first1, _ForwardIter1))
- );
-}
-
-// unique and unique_copy
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIterator, class _OutputIterator, class _BinaryPredicate,
- class _Tp>
-_STLP_INLINE_LOOP _OutputIterator
-__unique_copy(_InputIterator __first, _InputIterator __last,
- _OutputIterator __result,
- _BinaryPredicate __binary_pred, _Tp*) {
- _Tp __val = *__first;
- *__result = __val;
- while (++__first != __last)
- if (!__binary_pred(__val, *__first)) {
- __val = *__first;
- *++__result = __val;
- }
- return ++__result;
-}
-
-template <class _InputIter, class _OutputIter, class _BinaryPredicate>
-inline _OutputIter
-__unique_copy(_InputIter __first, _InputIter __last,_OutputIter __result,
- _BinaryPredicate __binary_pred, const output_iterator_tag &) {
- return _STLP_PRIV __unique_copy(__first, __last, __result, __binary_pred,
- _STLP_VALUE_TYPE(__first, _InputIter));
-}
-
-template <class _InputIter, class _ForwardIter, class _BinaryPredicate>
-_STLP_INLINE_LOOP _ForwardIter
-__unique_copy(_InputIter __first, _InputIter __last, _ForwardIter __result,
- _BinaryPredicate __binary_pred, const forward_iterator_tag &) {
- *__result = *__first;
- while (++__first != __last)
- if (!__binary_pred(*__result, *__first)) *++__result = *__first;
- return ++__result;
-}
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _InputIterator, class _BidirectionalIterator, class _BinaryPredicate>
-inline _BidirectionalIterator
-__unique_copy(_InputIterator __first, _InputIterator __last,
- _BidirectionalIterator __result, _BinaryPredicate __binary_pred,
- const bidirectional_iterator_tag &) {
- return _STLP_PRIV __unique_copy(__first, __last, __result, __binary_pred, forward_iterator_tag());
-}
-
-template <class _InputIterator, class _RandomAccessIterator, class _BinaryPredicate>
-inline _RandomAccessIterator
-__unique_copy(_InputIterator __first, _InputIterator __last,
- _RandomAccessIterator __result, _BinaryPredicate __binary_pred,
- const random_access_iterator_tag &) {
- return _STLP_PRIV __unique_copy(__first, __last, __result, __binary_pred, forward_iterator_tag());
-}
-#endif /* _STLP_NONTEMPL_BASE_MATCH_BUG */
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _OutputIter>
-_OutputIter
-unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return __result;
- return _STLP_PRIV __unique_copy(__first, __last, __result,
- _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first, _InputIter)),
- _STLP_ITERATOR_CATEGORY(__result, _OutputIter));
-}
-
-template <class _InputIter, class _OutputIter, class _BinaryPredicate>
-_OutputIter
-unique_copy(_InputIter __first, _InputIter __last,_OutputIter __result,
- _BinaryPredicate __binary_pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return __result;
- return _STLP_PRIV __unique_copy(__first, __last, __result, __binary_pred,
- _STLP_ITERATOR_CATEGORY(__result, _OutputIter));
-}
-
-// rotate and rotate_copy, and their auxiliary functions
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Distance>
-_ForwardIter __rotate_aux(_ForwardIter __first,
- _ForwardIter __middle,
- _ForwardIter __last,
- _Distance*,
- const forward_iterator_tag &) {
- if (__first == __middle)
- return __last;
- if (__last == __middle)
- return __first;
-
- _ForwardIter __first2 = __middle;
- do {
- _STLP_STD::swap(*__first++, *__first2++);
- if (__first == __middle)
- __middle = __first2;
- } while (__first2 != __last);
-
- _ForwardIter __new_middle = __first;
-
- __first2 = __middle;
-
- while (__first2 != __last) {
- _STLP_STD::swap (*__first++, *__first2++);
- if (__first == __middle)
- __middle = __first2;
- else if (__first2 == __last)
- __first2 = __middle;
- }
-
- return __new_middle;
-}
-
-template <class _BidirectionalIter, class _Distance>
-_BidirectionalIter __rotate_aux(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last,
- _Distance*,
- const bidirectional_iterator_tag &) {
- if (__first == __middle)
- return __last;
- if (__last == __middle)
- return __first;
-
- _STLP_PRIV __reverse(__first, __middle, bidirectional_iterator_tag());
- _STLP_PRIV __reverse(__middle, __last, bidirectional_iterator_tag());
-
- while (__first != __middle && __middle != __last)
- _STLP_STD::swap(*__first++, *--__last);
-
- if (__first == __middle) {
- _STLP_PRIV __reverse(__middle, __last, bidirectional_iterator_tag());
- return __last;
- }
- else {
- _STLP_PRIV __reverse(__first, __middle, bidirectional_iterator_tag());
- return __first;
- }
-}
-
-// rotate and rotate_copy, and their auxiliary functions
-template <class _EuclideanRingElement>
-_STLP_INLINE_LOOP
-_EuclideanRingElement __gcd(_EuclideanRingElement __m,
- _EuclideanRingElement __n) {
- while (__n != 0) {
- _EuclideanRingElement __t = __m % __n;
- __m = __n;
- __n = __t;
- }
- return __m;
-}
-
-template <class _RandomAccessIter, class _Distance, class _Tp>
-_RandomAccessIter __rotate_aux(_RandomAccessIter __first,
- _RandomAccessIter __middle,
- _RandomAccessIter __last,
- _Distance *, _Tp *) {
-
- _Distance __n = __last - __first;
- _Distance __k = __middle - __first;
- _Distance __l = __n - __k;
- _RandomAccessIter __result = __first + (__last - __middle);
-
- if (__k == 0) /* __first == middle */
- return __last;
-
- if (__k == __l) {
- _STLP_STD::swap_ranges(__first, __middle, __middle);
- return __result;
- }
-
- _Distance __d = _STLP_PRIV __gcd(__n, __k);
-
- for (_Distance __i = 0; __i < __d; __i++) {
- _Tp __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;
- }
-
- return __result;
-}
-
-template <class _RandomAccessIter, class _Distance>
-inline _RandomAccessIter
-__rotate_aux(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last,
- _Distance * __dis, const random_access_iterator_tag &) {
- return _STLP_PRIV __rotate_aux(__first, __middle, __last,
- __dis, _STLP_VALUE_TYPE(__first, _RandomAccessIter));
-}
-
-template <class _ForwardIter>
-_ForwardIter
-__rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) {
- _STLP_DEBUG_CHECK(__check_range(__first, __middle))
- _STLP_DEBUG_CHECK(__check_range(__middle, __last))
- return __rotate_aux(__first, __middle, __last,
- _STLP_DISTANCE_TYPE(__first, _ForwardIter),
- _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter>
-void rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) {
- _STLP_PRIV __rotate(__first, __middle, __last);
-}
-
-// 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).
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Distance>
-inline _Distance __random_number(_Distance __n) {
-#ifdef _STLP_NO_DRAND48
- return rand() % __n;
-#else
- return lrand48() % __n;
-#endif
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-void random_shuffle(_RandomAccessIter __first,
- _RandomAccessIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return;
- for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
- iter_swap(__i, __first + _STLP_PRIV __random_number((__i - __first) + 1));
-}
-
-template <class _RandomAccessIter, class _RandomNumberGenerator>
-void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last,
- _RandomNumberGenerator &__rand) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return;
- for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
- iter_swap(__i, __first + __rand((__i - __first) + 1));
-}
-
-#if !defined (_STLP_NO_EXTENSIONS)
-// random_sample and random_sample_n (extensions, not part of the standard).
-template <class _ForwardIter, class _OutputIter, class _Distance>
-_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last,
- _OutputIter __out_ite, const _Distance __n) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _Distance __remaining = _STLP_STD::distance(__first, __last);
- _Distance __m = (min) (__n, __remaining);
-
- while (__m > 0) {
- if (_STLP_PRIV __random_number(__remaining) < __m) {
- *__out_ite = *__first;
- ++__out_ite;
- --__m;
- }
-
- --__remaining;
- ++__first;
- }
- return __out_ite;
-}
-
-
-template <class _ForwardIter, class _OutputIter, class _Distance,
- class _RandomNumberGenerator>
-_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last,
- _OutputIter __out_ite, const _Distance __n,
- _RandomNumberGenerator& __rand) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _Distance __remaining = _STLP_STD::distance(__first, __last);
- _Distance __m = (min) (__n, __remaining);
-
- while (__m > 0) {
- if (__rand(__remaining) < __m) {
- *__out_ite = *__first;
- ++__out_ite;
- --__m;
- }
-
- --__remaining;
- ++__first;
- }
- return __out_ite;
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter, class _RandomAccessIter, class _Distance>
-_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last,
- _RandomAccessIter __out_ite,
- const _Distance __n) {
- _Distance __m = 0;
- _Distance __t = __n;
- for ( ; __first != __last && __m < __n; ++__m, ++__first)
- __out_ite[__m] = *__first;
-
- while (__first != __last) {
- ++__t;
- _Distance __M = __random_number(__t);
- if (__M < __n)
- __out_ite[__M] = *__first;
- ++__first;
- }
-
- return __out_ite + __m;
-}
-
-template <class _InputIter, class _RandomAccessIter,
- class _RandomNumberGenerator, class _Distance>
-_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last,
- _RandomAccessIter __out_ite,
- _RandomNumberGenerator& __rand,
- const _Distance __n) {
- _Distance __m = 0;
- _Distance __t = __n;
- for ( ; __first != __last && __m < __n; ++__m, ++__first)
- __out_ite[__m] = *__first;
-
- while (__first != __last) {
- ++__t;
- _Distance __M = __rand(__t);
- if (__M < __n)
- __out_ite[__M] = *__first;
- ++__first;
- }
-
- return __out_ite + __m;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _RandomAccessIter>
-_RandomAccessIter
-random_sample(_InputIter __first, _InputIter __last,
- _RandomAccessIter __out_first, _RandomAccessIter __out_last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__out_first, __out_last))
- return _STLP_PRIV __random_sample(__first, __last,
- __out_first, __out_last - __out_first);
-}
-
-template <class _InputIter, class _RandomAccessIter, class _RandomNumberGenerator>
-_RandomAccessIter
-random_sample(_InputIter __first, _InputIter __last,
- _RandomAccessIter __out_first, _RandomAccessIter __out_last,
- _RandomNumberGenerator& __rand) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__out_first, __out_last))
- return _STLP_PRIV __random_sample(__first, __last,
- __out_first, __rand,
- __out_last - __out_first);
-}
-
-#endif /* _STLP_NO_EXTENSIONS */
-
-// partition, stable_partition, and their auxiliary functions
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Predicate>
-_STLP_INLINE_LOOP _ForwardIter __partition(_ForwardIter __first,
- _ForwardIter __last,
- _Predicate __pred,
- const forward_iterator_tag &) {
- if (__first == __last) return __first;
-
- while (__pred(*__first))
- if (++__first == __last) return __first;
-
- _ForwardIter __next = __first;
-
- while (++__next != __last) {
- if (__pred(*__next)) {
- _STLP_STD::swap(*__first, *__next);
- ++__first;
- }
- }
- return __first;
-}
-
-template <class _BidirectionalIter, class _Predicate>
-_STLP_INLINE_LOOP _BidirectionalIter __partition(_BidirectionalIter __first,
- _BidirectionalIter __last,
- _Predicate __pred,
- const bidirectional_iterator_tag &) {
- for (;;) {
- for (;;) {
- if (__first == __last)
- return __first;
- else if (__pred(*__first))
- ++__first;
- else
- break;
- }
- --__last;
- for (;;) {
- if (__first == __last)
- return __first;
- else if (!__pred(*__last))
- --__last;
- else
- break;
- }
- iter_swap(__first, __last);
- ++__first;
- }
-}
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _BidirectionalIter, class _Predicate>
-inline
-_BidirectionalIter __partition(_BidirectionalIter __first,
- _BidirectionalIter __last,
- _Predicate __pred,
- const random_access_iterator_tag &) {
- return __partition(__first, __last, __pred, bidirectional_iterator_tag());
-}
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Predicate>
-_ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __partition(__first, __last, __pred, _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
-}
-
-
-/* __pred_of_first: false if we know that __pred(*__first) is false,
- * true when we don't know the result of __pred(*__first).
- * __not_pred_of_before_last: true if we know that __pred(*--__last) is true,
- * false when we don't know the result of __pred(*--__last).
- */
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Predicate, class _Distance>
-_ForwardIter __inplace_stable_partition(_ForwardIter __first,
- _ForwardIter __last,
- _Predicate __pred, _Distance __len,
- bool __pred_of_first, bool __pred_of_before_last) {
- if (__len == 1)
- return (__pred_of_first && (__pred_of_before_last || __pred(*__first))) ? __last : __first;
- _ForwardIter __middle = __first;
- _Distance __half_len = __len / 2;
- _STLP_STD::advance(__middle, __half_len);
- return _STLP_PRIV __rotate(_STLP_PRIV __inplace_stable_partition(__first, __middle, __pred, __half_len, __pred_of_first, false),
- __middle,
- _STLP_PRIV __inplace_stable_partition(__middle, __last, __pred, __len - __half_len, true, __pred_of_before_last));
-}
-
-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,
- bool __pred_of_first, bool __pred_of_before_last) {
- if (__len <= __buffer_size) {
- _ForwardIter __result1 = __first;
- _Pointer __result2 = __buffer;
- if ((__first != __last) && (!__pred_of_first || __pred(*__first))) {
- *__result2 = *__first;
- ++__result2; ++__first; --__len;
- }
- for (; __first != __last ; ++__first, --__len) {
- if (((__len == 1) && (__pred_of_before_last || __pred(*__first))) ||
- ((__len != 1) && __pred(*__first))){
- *__result1 = *__first;
- ++__result1;
- }
- else {
- *__result2 = *__first;
- ++__result2;
- }
- }
- _STLP_STD::copy(__buffer, __result2, __result1);
- return __result1;
- }
- else {
- _ForwardIter __middle = __first;
- _Distance __half_len = __len / 2;
- _STLP_STD::advance(__middle, __half_len);
- return _STLP_PRIV __rotate(_STLP_PRIV __stable_partition_adaptive(__first, __middle, __pred,
- __half_len, __buffer, __buffer_size,
- __pred_of_first, false),
- __middle,
- _STLP_PRIV __stable_partition_adaptive(__middle, __last, __pred,
- __len - __half_len, __buffer, __buffer_size,
- true, __pred_of_before_last));
- }
-}
-
-template <class _ForwardIter, class _Predicate, class _Tp, class _Distance>
-inline _ForwardIter
-__stable_partition_aux_aux(_ForwardIter __first, _ForwardIter __last,
- _Predicate __pred, _Tp*, _Distance*, bool __pred_of_before_last) {
- _Temporary_buffer<_ForwardIter, _Tp> __buf(__first, __last);
- _STLP_MPWFIX_TRY //*TY 06/01/2000 - they forget to call dtor for _Temporary_buffer if no try/catch block is present
- return (__buf.size() > 0) ?
- __stable_partition_adaptive(__first, __last, __pred,
- _Distance(__buf.requested_size()),
- __buf.begin(), __buf.size(),
- false, __pred_of_before_last) :
- __inplace_stable_partition(__first, __last, __pred,
- _Distance(__buf.requested_size()),
- false, __pred_of_before_last);
- _STLP_MPWFIX_CATCH //*TY 06/01/2000 - they forget to call dtor for _Temporary_buffer if no try/catch block is present
-}
-
-template <class _ForwardIter, class _Predicate>
-_ForwardIter
-__stable_partition_aux(_ForwardIter __first, _ForwardIter __last, _Predicate __pred,
- const forward_iterator_tag &) {
- return __stable_partition_aux_aux(__first, __last, __pred,
- _STLP_VALUE_TYPE(__first, _ForwardIter),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter), false);
-}
-
-template <class _BidirectIter, class _Predicate>
-_BidirectIter
-__stable_partition_aux(_BidirectIter __first, _BidirectIter __last, _Predicate __pred,
- const bidirectional_iterator_tag &) {
- for (--__last;;) {
- if (__first == __last)
- return __first;
- else if (!__pred(*__last))
- --__last;
- else
- break;
- }
- ++__last;
- //Here we know that __pred(*--__last) is true
- return __stable_partition_aux_aux(__first, __last, __pred,
- _STLP_VALUE_TYPE(__first, _BidirectIter),
- _STLP_DISTANCE_TYPE(__first, _BidirectIter), true);
-}
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _BidirectIter, class _Predicate>
-_BidirectIter
-__stable_partition_aux(_BidirectIter __first, _BidirectIter __last, _Predicate __pred,
- const random_access_iterator_tag &) {
- return __stable_partition_aux(__first, __last, __pred, bidirectional_iterator_tag());
-}
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Predicate>
-_ForwardIter
-stable_partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for (;;) {
- if (__first == __last)
- return __first;
- else if (__pred(*__first))
- ++__first;
- else
- break;
- }
- return _STLP_PRIV __stable_partition_aux(__first, __last, __pred,
- _STLP_ITERATOR_CATEGORY(__first, _ForwardIter));
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _RandomAccessIter, class _Tp, class _Compare>
-_RandomAccessIter __unguarded_partition(_RandomAccessIter __first,
- _RandomAccessIter __last,
- _Tp __pivot, _Compare __comp) {
- for (;;) {
- while (__comp(*__first, __pivot)) {
- _STLP_VERBOSE_ASSERT(!__comp(__pivot, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- ++__first;
- }
- --__last;
- while (__comp(__pivot, *__last)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__last, __pivot), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- --__last;
- }
- if (!(__first < __last))
- return __first;
- iter_swap(__first, __last);
- ++__first;
- }
-}
-
-// sort() and its auxiliary functions.
-#define __stl_threshold 16
-
-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)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__next, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *__last = *__next;
- __last = __next;
- --__next;
- }
- *__last = __val;
-}
-
-template <class _RandomAccessIter, class _Tp, class _Compare>
-inline void __linear_insert(_RandomAccessIter __first,
- _RandomAccessIter __last, _Tp __val, _Compare __comp) {
- //*TY 12/26/1998 - added __val as a paramter
- // _Tp __val = *__last; //*TY 12/26/1998 - __val supplied by caller
- if (__comp(__val, *__first)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- copy_backward(__first, __last, __last + 1);
- *__first = __val;
- }
- else
- __unguarded_linear_insert(__last, __val, __comp);
-}
-
-template <class _RandomAccessIter, class _Tp, class _Compare>
-void __insertion_sort(_RandomAccessIter __first,
- _RandomAccessIter __last,
- _Tp *, _Compare __comp) {
- if (__first == __last) return;
- for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i)
- __linear_insert<_RandomAccessIter, _Tp, _Compare>(__first, __i, *__i, __comp); //*TY 12/26/1998 - supply *__i as __val
-}
-
-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<_RandomAccessIter, _Tp, _Compare>(__i, *__i, __comp);
-}
-
-template <class _RandomAccessIter, class _Compare>
-inline void __unguarded_insertion_sort(_RandomAccessIter __first,
- _RandomAccessIter __last,
- _Compare __comp) {
- __unguarded_insertion_sort_aux(__first, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp);
-}
-
-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, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp);
- __unguarded_insertion_sort(__first + __stl_threshold, __last, __comp);
- }
- else
- __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp);
-}
-
-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;
- }
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-void sort(_RandomAccessIter __first, _RandomAccessIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first != __last) {
- _STLP_PRIV __introsort_loop(__first, __last,
- _STLP_VALUE_TYPE(__first, _RandomAccessIter),
- _STLP_PRIV __lg(__last - __first) * 2,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
- _STLP_PRIV __final_insertion_sort(__first, __last,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
- }
-}
-
-template <class _RandomAccessIter, class _Compare>
-void sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first != __last) {
- _STLP_PRIV __introsort_loop(__first, __last,
- _STLP_VALUE_TYPE(__first, _RandomAccessIter),
- _STLP_PRIV __lg(__last - __first) * 2, __comp);
- _STLP_PRIV __final_insertion_sort(__first, __last, __comp);
- }
-}
-
-// stable_sort() and its auxiliary functions.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _RandomAccessIter, class _Compare>
-void __inplace_stable_sort(_RandomAccessIter __first,
- _RandomAccessIter __last, _Compare __comp) {
- if (__last - __first < 15) {
- __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __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, 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, 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,
- _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp);
- __first += __chunk_size;
- }
- __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp);
-}
-
-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 _BidirectionalIter1, class _BidirectionalIter2,
- class _Distance>
-_BidirectionalIter1 __rotate_adaptive(_BidirectionalIter1 __first,
- _BidirectionalIter1 __middle,
- _BidirectionalIter1 __last,
- _Distance __len1, _Distance __len2,
- _BidirectionalIter2 __buffer,
- _Distance __buffer_size) {
- if (__len1 > __len2 && __len2 <= __buffer_size) {
- _BidirectionalIter2 __buffer_end = _STLP_STD::copy(__middle, __last, __buffer);
- _STLP_STD::copy_backward(__first, __middle, __last);
- return _STLP_STD::copy(__buffer, __buffer_end, __first);
- }
- else if (__len1 <= __buffer_size) {
- _BidirectionalIter2 __buffer_end = _STLP_STD::copy(__first, __middle, __buffer);
- _STLP_STD::copy(__middle, __last, __first);
- return _STLP_STD::copy_backward(__buffer, __buffer_end, __last);
- }
- else
- return _STLP_PRIV __rotate(__first, __middle, __last);
-}
-
-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 = _STLP_STD::copy(__first, __middle, __buffer);
- _STLP_STD::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
- }
- else if (__len2 <= __buffer_size) {
- _Pointer __buffer_end = _STLP_STD::copy(__middle, __last, __buffer);
- _STLP_PRIV __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;
- _STLP_STD::advance(__first_cut, __len11);
- __second_cut = _STLP_STD::lower_bound(__middle, __last, *__first_cut, __comp);
- __len22 += _STLP_STD::distance(__middle, __second_cut);
- }
- else {
- __len22 = __len2 / 2;
- _STLP_STD::advance(__second_cut, __len22);
- __first_cut = _STLP_STD::upper_bound(__first, __middle, *__second_cut, __comp);
- __len11 += _STLP_STD::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 <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,
- __comp);
- __merge_sort_with_buffer(__middle, __last, __buffer, (_Distance*)0,
- __comp);
- }
- __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first),
- _Distance(__last - __middle), __buffer, __buffer_size,
- __comp);
-}
-
-template <class _RandomAccessIter, class _Tp, class _Distance, class _Compare>
-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);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-void stable_sort(_RandomAccessIter __first,
- _RandomAccessIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_PRIV __stable_sort_aux(__first, __last,
- _STLP_VALUE_TYPE(__first, _RandomAccessIter),
- _STLP_DISTANCE_TYPE(__first, _RandomAccessIter),
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
-}
-
-template <class _RandomAccessIter, class _Compare>
-void stable_sort(_RandomAccessIter __first,
- _RandomAccessIter __last, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_PRIV __stable_sort_aux(__first, __last,
- _STLP_VALUE_TYPE(__first, _RandomAccessIter),
- _STLP_DISTANCE_TYPE(__first, _RandomAccessIter),
- __comp);
-}
-
-// partial_sort, partial_sort_copy, and auxiliary functions.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first, *__i), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __pop_heap(__first, __middle, __i, _Tp(*__i), __comp,
- _STLP_DISTANCE_TYPE(__first, _RandomAccessIter));
- }
- }
- sort_heap(__first, __middle, __comp);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-void partial_sort(_RandomAccessIter __first,_RandomAccessIter __middle,
- _RandomAccessIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
- _STLP_PRIV __partial_sort(__first, __middle, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter),
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
-}
-
-template <class _RandomAccessIter, class _Compare>
-void partial_sort(_RandomAccessIter __first,_RandomAccessIter __middle,
- _RandomAccessIter __last, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
- _STLP_PRIV __partial_sort(__first, __middle, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__result_first, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __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;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _RandomAccessIter>
-_RandomAccessIter
-partial_sort_copy(_InputIter __first, _InputIter __last,
- _RandomAccessIter __result_first, _RandomAccessIter __result_last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__result_first, __result_last))
- return _STLP_PRIV __partial_sort_copy(__first, __last, __result_first, __result_last,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _InputIter)),
- _STLP_DISTANCE_TYPE(__result_first, _RandomAccessIter),
- _STLP_VALUE_TYPE(__first, _InputIter));
-}
-
-template <class _InputIter, class _RandomAccessIter, class _Compare>
-_RandomAccessIter
-partial_sort_copy(_InputIter __first, _InputIter __last,
- _RandomAccessIter __result_first,
- _RandomAccessIter __result_last, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__result_first, __result_last))
- return _STLP_PRIV __partial_sort_copy(__first, __last, __result_first, __result_last,
- __comp,
- _STLP_DISTANCE_TYPE(__result_first, _RandomAccessIter),
- _STLP_VALUE_TYPE(__first, _InputIter));
-}
-
-// nth_element() and its auxiliary functions.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth,
- _RandomAccessIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __nth))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__nth, __last))
- _STLP_PRIV __nth_element(__first, __nth, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter),
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)));
-}
-
-template <class _RandomAccessIter, class _Compare>
-void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth,
- _RandomAccessIter __last, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __nth))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__nth, __last))
- _STLP_PRIV __nth_element(__first, __nth, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp);
-}
-
-// Binary search (lower_bound, upper_bound, equal_range, binary_search).
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Tp,
- class _Compare1, class _Compare2, class _Distance>
-_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- _Compare1 __comp1, _Compare2 __comp2, _Distance*) {
- _Distance __len = _STLP_STD::distance(__first, __last);
- _Distance __half;
-
- while (__len > 0) {
- __half = __len >> 1;
- _ForwardIter __middle = __first;
- _STLP_STD::advance(__middle, __half);
- if (__comp2(__val, *__middle)) {
- _STLP_VERBOSE_ASSERT(!__comp1(*__middle, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __len = __half;
- }
- else {
- __first = __middle;
- ++__first;
- __len = __len - __half - 1;
- }
- }
- return __first;
-}
-
-template <class _ForwardIter, class _Tp,
- class _Compare1, class _Compare2, class _Distance>
-pair<_ForwardIter, _ForwardIter>
-__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- _Compare1 __comp1, _Compare2 __comp2, _Distance* __dist) {
- _Distance __len = _STLP_STD::distance(__first, __last);
- _Distance __half;
-
- while (__len > 0) {
- __half = __len >> 1;
- _ForwardIter __middle = __first;
- _STLP_STD::advance(__middle, __half);
- if (__comp1(*__middle, __val)) {
- _STLP_VERBOSE_ASSERT(!__comp2(__val, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __first = __middle;
- ++__first;
- __len = __len - __half - 1;
- }
- else if (__comp2(__val, *__middle)) {
- _STLP_VERBOSE_ASSERT(!__comp1(*__middle, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __len = __half;
- }
- else {
- _ForwardIter __left = _STLP_PRIV __lower_bound(__first, __middle, __val, __comp1, __comp2, __dist);
- //Small optim: If lower_bound haven't found an equivalent value
- //there is no need to call upper_bound.
- if (__comp1(*__left, __val)) {
- _STLP_VERBOSE_ASSERT(!__comp2(__val, *__left), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return pair<_ForwardIter, _ForwardIter>(__left, __left);
- }
- _STLP_STD::advance(__first, __len);
- _ForwardIter __right = _STLP_PRIV __upper_bound(++__middle, __first, __val, __comp1, __comp2, __dist);
- return pair<_ForwardIter, _ForwardIter>(__left, __right);
- }
- }
- return pair<_ForwardIter, _ForwardIter>(__first, __first);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2) {
- if (*__first2 < *__first1) {
- *__result = *__first2;
- ++__first2;
- }
- else {
- *__result = *__first1;
- ++__first1;
- }
- ++__result;
- }
- return _STLP_STD::copy(__first2, __last2, _STLP_STD::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) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2) {
- if (__comp(*__first2, *__first1)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *__result = *__first2;
- ++__first2;
- }
- else {
- *__result = *__first1;
- ++__first1;
- }
- ++__result;
- }
- return _STLP_STD::copy(__first2, __last2, _STLP_STD::copy(__first1, __last1, __result));
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- 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;
- _STLP_STD::advance(__first_cut, __len11);
- __second_cut = _STLP_STD::lower_bound(__middle, __last, *__first_cut, __comp);
- __len22 += _STLP_STD::distance(__middle, __second_cut);
- }
- else {
- __len22 = __len2 / 2;
- _STLP_STD::advance(__second_cut, __len22);
- __first_cut = _STLP_STD::upper_bound(__first, __middle, *__second_cut, __comp);
- __len11 += _STLP_STD::distance(__first, __first_cut);
- }
- _BidirectionalIter __new_middle
- = _STLP_PRIV __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 _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;
- for (;;) {
- if (__comp(*__last2, *__last1)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__last1, *__last2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *--__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 _Tp,
- class _Distance, class _Compare>
-inline void __inplace_merge_aux(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last, _Tp*, _Distance*,
- _Compare __comp) {
- _Distance __len1 = _STLP_STD::distance(__first, __middle);
- _Distance __len2 = _STLP_STD::distance(__middle, __last);
-
- _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);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _BidirectionalIter>
-void inplace_merge(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
- if (__first == __middle || __middle == __last)
- return;
- _STLP_PRIV __inplace_merge_aux(__first, __middle, __last,
- _STLP_VALUE_TYPE(__first, _BidirectionalIter), _STLP_DISTANCE_TYPE(__first, _BidirectionalIter),
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter)));
-}
-
-template <class _BidirectionalIter, class _Compare>
-void inplace_merge(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last))
- if (__first == __middle || __middle == __last)
- return;
- _STLP_PRIV __inplace_merge_aux(__first, __middle, __last,
- _STLP_VALUE_TYPE(__first, _BidirectionalIter), _STLP_DISTANCE_TYPE(__first, _BidirectionalIter),
- __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _Compare>
-bool __includes(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2)
- if (__comp(*__first2, *__first1)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return false;
- }
- else if (__comp(*__first1, *__first2))
- ++__first1;
- else
- ++__first1, ++__first2;
-
- return __first2 == __last2;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _Compare>
-bool includes(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) {
- return _STLP_PRIV __includes(__first1, __last1, __first2, __last2, __comp);
-}
-
-template <class _InputIter1, class _InputIter2>
-bool includes(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2) {
- return _STLP_PRIV __includes(__first1, __last1, __first2, __last2,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter __set_union(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2) {
- if (__comp(*__first1, *__first2)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *__result = *__first1;
- ++__first1;
- }
- else if (__comp(*__first2, *__first1)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *__result = *__first2;
- ++__first2;
- }
- else {
- *__result = *__first1;
- ++__first1;
- ++__first2;
- }
- ++__result;
- }
- return _STLP_STD::copy(__first2, __last2, _STLP_STD::copy(__first1, __last1, __result));
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result) {
- return _STLP_PRIV __set_union(__first1, __last1, __first2, __last2, __result,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
-}
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp) {
- return _STLP_PRIV __set_union(__first1, __last1, __first2, __last2, __result, __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter __set_intersection(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2)
- if (__comp(*__first1, *__first2)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- ++__first1;
- }
- else if (__comp(*__first2, *__first1))
- ++__first2;
- else {
- *__result = *__first1;
- ++__first1;
- ++__first2;
- ++__result;
- }
- return __result;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result) {
- return _STLP_PRIV __set_intersection(__first1, __last1, __first2, __last2, __result,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
-}
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp) {
- return _STLP_PRIV __set_intersection(__first1, __last1, __first2, __last2, __result, __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter __set_difference(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2)
- if (__comp(*__first1, *__first2)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *__result = *__first1;
- ++__first1;
- ++__result;
- }
- else if (__comp(*__first2, *__first1))
- ++__first2;
- else {
- ++__first1;
- ++__first2;
- }
- return _STLP_STD::copy(__first1, __last1, __result);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result) {
- return _STLP_PRIV __set_difference(__first1, __last1, __first2, __last2, __result,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
-}
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp) {
- return _STLP_PRIV __set_difference(__first1, __last1, __first2, __last2, __result, __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- while (__first1 != __last1 && __first2 != __last2) {
- if (__comp(*__first1, *__first2)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *__result = *__first1;
- ++__first1;
- ++__result;
- }
- else if (__comp(*__first2, *__first1)) {
- *__result = *__first2;
- ++__first2;
- ++__result;
- }
- else {
- ++__first1;
- ++__first2;
- }
- }
- return _STLP_STD::copy(__first2, __last2, _STLP_STD::copy(__first1, __last1, __result));
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter
-set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result) {
- return _STLP_PRIV __set_symmetric_difference(__first1, __last1, __first2, __last2, __result,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1)));
-}
-
-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) {
- return _STLP_PRIV __set_symmetric_difference(__first1, __last1, __first2, __last2, __result, __comp);
-}
-
-// min_element and max_element, with and without an explicitly supplied
-// comparison function.
-
-template <class _ForwardIter>
-_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return __first;
- _ForwardIter __result = __first;
- while (++__first != __last)
- if (*__result < *__first) {
- _STLP_VERBOSE_ASSERT(!(*__first < *__result), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __result = __first;
- }
- return __result;
-}
-
-template <class _ForwardIter, class _Compare>
-_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return __first;
- _ForwardIter __result = __first;
- while (++__first != __last) {
- if (__comp(*__result, *__first)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first, *__result), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __result = __first;
- }
- }
- return __result;
-}
-
-template <class _ForwardIter>
-_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return __first;
- _ForwardIter __result = __first;
- while (++__first != __last)
- if (*__first < *__result) {
- _STLP_VERBOSE_ASSERT(!(*__result < *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __result = __first;
- }
- return __result;
-}
-
-template <class _ForwardIter, class _Compare>
-_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last) return __first;
- _ForwardIter __result = __first;
- while (++__first != __last) {
- if (__comp(*__first, *__result)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__result, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __result = __first;
- }
- }
- return __result;
-}
-
-// next_permutation and prev_permutation, with and without an explicitly
-// supplied comparison function.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _BidirectionalIter, class _Compare>
-bool __next_permutation(_BidirectionalIter __first, _BidirectionalIter __last,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- 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)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__ii, *__i), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- _BidirectionalIter __j = __last;
- while (!__comp(*__i, *--__j)) {}
- iter_swap(__i, __j);
- reverse(__ii, __last);
- return true;
- }
- if (__i == __first) {
- reverse(__first, __last);
- return false;
- }
- }
-#if defined (_STLP_NEED_UNREACHABLE_RETURN)
- return false;
-#endif
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _BidirectionalIter>
-bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __next_permutation(__first, __last,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter)));
-}
-
-template <class _BidirectionalIter, class _Compare>
-bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __next_permutation(__first, __last, __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _BidirectionalIter, class _Compare>
-bool __prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last,
- _Compare __comp) {
- 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)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__i, *__ii), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- _BidirectionalIter __j = __last;
- while (!__comp(*--__j, *__i)) {}
- iter_swap(__i, __j);
- reverse(__ii, __last);
- return true;
- }
- if (__i == __first) {
- reverse(__first, __last);
- return false;
- }
- }
-#if defined (_STLP_NEED_UNREACHABLE_RETURN)
- return false;
-#endif
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _BidirectionalIter>
-bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __prev_permutation(__first, __last,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter)));
-}
-
-template <class _BidirectionalIter, class _Compare>
-bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __prev_permutation(__first, __last, __comp);
-}
-
-#if !defined (_STLP_NO_EXTENSIONS)
-
-// is_heap, a predicate testing whether or not a range is
-// a heap. This function is an extension, not part of the C++
-// standard.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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])) {
- _STLP_VERBOSE_ASSERT(!__comp(__first[__child], __first[__parent]), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return false;
- }
- if ((__child & 1) == 0)
- ++__parent;
- }
- return true;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __is_heap(__first, _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)), __last - __first);
-}
-
-template <class _RandomAccessIter, class _StrictWeakOrdering>
-bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last,
- _StrictWeakOrdering __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __is_heap(__first, __comp, __last - __first);
-}
-
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _StrictWeakOrdering>
-bool __is_sorted(_ForwardIter __first, _ForwardIter __last,
- _StrictWeakOrdering __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last)
- return true;
-
- _ForwardIter __next = __first;
- for (++__next; __next != __last; __first = __next, ++__next) {
- if (__comp(*__next, *__first)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first, *__next), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return false;
- }
- }
-
- return true;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif /* _STLP_NO_EXTENSIONS */
-
-_STLP_END_NAMESPACE
-
-#undef __stl_threshold
-
-#endif /* _STLP_ALGO_C */
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_algo.h b/stlport/stlport/stl/_algo.h
deleted file mode 100644
index 01e5f93..0000000
--- a/stlport/stlport/stl/_algo.h
+++ /dev/null
@@ -1,745 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_ALGO_H
-#define _STLP_INTERNAL_ALGO_H
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_HEAP_H
-# include <stl/_heap.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-#if defined (__SUNPRO_CC) && !defined (_STLP_INTERNAL_CSTDIO)
-// remove() conflict
-# include <stl/_cstdio.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-// for_each. Apply a function to every element of a range.
-template <class _InputIter, class _Function>
-_STLP_INLINE_LOOP _Function
-for_each(_InputIter __first, _InputIter __last, _Function __f) {
- for ( ; __first != __last; ++__first)
- __f(*__first);
- return __f;
-}
-
-// count_if
-template <class _InputIter, class _Predicate>
-_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_InputIter)
-count_if(_InputIter __first, _InputIter __last, _Predicate __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_DIFFERENCE_TYPE(_InputIter) __n = 0;
- for ( ; __first != __last; ++__first) {
- if (__pred(*__first))
- ++__n;
- }
- return __n;
-}
-
-// adjacent_find.
-
-template <class _ForwardIter, class _BinaryPredicate>
-_STLP_INLINE_LOOP _ForwardIter
-adjacent_find(_ForwardIter __first, _ForwardIter __last,
- _BinaryPredicate __binary_pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- if (__first == __last)
- return __last;
- _ForwardIter __next = __first;
- while(++__next != __last) {
- if (__binary_pred(*__first, *__next))
- return __first;
- __first = __next;
- }
- return __last;
-}
-
-template <class _ForwardIter>
-_STLP_INLINE_LOOP _ForwardIter
-adjacent_find(_ForwardIter __first, _ForwardIter __last) {
- return adjacent_find(__first, __last,
- _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first, _ForwardIter)));
-}
-
-#if !defined (_STLP_NO_ANACHRONISMS)
-template <class _InputIter, class _Tp, class _Size>
-_STLP_INLINE_LOOP void
-count(_InputIter __first, _InputIter __last, const _Tp& __val, _Size& __n) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first)
- if (*__first == __val)
- ++__n;
-}
-
-template <class _InputIter, class _Predicate, class _Size>
-_STLP_INLINE_LOOP void
-count_if(_InputIter __first, _InputIter __last, _Predicate __pred, _Size& __n) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first)
- if (__pred(*__first))
- ++__n;
-}
-#endif
-
-template <class _ForwardIter1, class _ForwardIter2>
-_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2);
-
-// search_n. Search for __count consecutive copies of __val.
-template <class _ForwardIter, class _Integer, class _Tp>
-_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last,
- _Integer __count, const _Tp& __val);
-template <class _ForwardIter, class _Integer, class _Tp, class _BinaryPred>
-_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last,
- _Integer __count, const _Tp& __val, _BinaryPred __binary_pred);
-
-template <class _InputIter, class _ForwardIter>
-inline _InputIter find_first_of(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2);
-}
-
-template <class _InputIter, class _ForwardIter, class _BinaryPredicate>
-inline _InputIter
-find_first_of(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2, _BinaryPredicate __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2, __comp);
-}
-
-template <class _ForwardIter1, class _ForwardIter2>
-_ForwardIter1
-find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2);
-
-// swap_ranges
-template <class _ForwardIter1, class _ForwardIter2>
-_STLP_INLINE_LOOP _ForwardIter2
-swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- for ( ; __first1 != __last1; ++__first1, ++__first2)
- iter_swap(__first1, __first2);
- return __first2;
-}
-
-// transform
-template <class _InputIter, class _OutputIter, class _UnaryOperation>
-_STLP_INLINE_LOOP _OutputIter
-transform(_InputIter __first, _InputIter __last, _OutputIter __result, _UnaryOperation __opr) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first, ++__result)
- *__result = __opr(*__first);
- return __result;
-}
-template <class _InputIter1, class _InputIter2, class _OutputIter, class _BinaryOperation>
-_STLP_INLINE_LOOP _OutputIter
-transform(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _OutputIter __result,_BinaryOperation __binary_op) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
- *__result = __binary_op(*__first1, *__first2);
- return __result;
-}
-
-// replace_if, replace_copy, replace_copy_if
-
-template <class _ForwardIter, class _Predicate, class _Tp>
-_STLP_INLINE_LOOP void
-replace_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, const _Tp& __new_value) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first)
- if (__pred(*__first))
- *__first = __new_value;
-}
-
-template <class _InputIter, class _OutputIter, class _Tp>
-_STLP_INLINE_LOOP _OutputIter
-replace_copy(_InputIter __first, _InputIter __last,_OutputIter __result,
- const _Tp& __old_value, const _Tp& __new_value) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first, ++__result)
- *__result = *__first == __old_value ? __new_value : *__first;
- return __result;
-}
-
-template <class _Iterator, class _OutputIter, class _Predicate, class _Tp>
-_STLP_INLINE_LOOP _OutputIter
-replace_copy_if(_Iterator __first, _Iterator __last,
- _OutputIter __result,
- _Predicate __pred, const _Tp& __new_value) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first, ++__result)
- *__result = __pred(*__first) ? __new_value : *__first;
- return __result;
-}
-
-// generate and generate_n
-
-template <class _ForwardIter, class _Generator>
-_STLP_INLINE_LOOP void
-generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first)
- *__first = __gen();
-}
-
-template <class _OutputIter, class _Size, class _Generator>
-_STLP_INLINE_LOOP void
-generate_n(_OutputIter __first, _Size __n, _Generator __gen) {
- for ( ; __n > 0; --__n, ++__first)
- *__first = __gen();
-}
-
-// remove, remove_if, remove_copy, remove_copy_if
-
-template <class _InputIter, class _OutputIter, class _Tp>
-_STLP_INLINE_LOOP _OutputIter
-remove_copy(_InputIter __first, _InputIter __last,_OutputIter __result, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first) {
- if (!(*__first == __val)) {
- *__result = *__first;
- ++__result;
- }
- }
- return __result;
-}
-
-template <class _InputIter, class _OutputIter, class _Predicate>
-_STLP_INLINE_LOOP _OutputIter
-remove_copy_if(_InputIter __first, _InputIter __last, _OutputIter __result, _Predicate __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first) {
- if (!__pred(*__first)) {
- *__result = *__first;
- ++__result;
- }
- }
- return __result;
-}
-
-template <class _ForwardIter, class _Tp>
-_STLP_INLINE_LOOP _ForwardIter
-remove(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- __first = find(__first, __last, __val);
- if (__first == __last)
- return __first;
- else {
- _ForwardIter __next = __first;
- return remove_copy(++__next, __last, __first, __val);
- }
-}
-
-template <class _ForwardIter, class _Predicate>
-_STLP_INLINE_LOOP _ForwardIter
-remove_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- __first = find_if(__first, __last, __pred);
- if ( __first == __last )
- return __first;
- else {
- _ForwardIter __next = __first;
- return remove_copy_if(++__next, __last, __first, __pred);
- }
-}
-
-// unique and unique_copy
-template <class _InputIter, class _OutputIter>
-_OutputIter unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result);
-
-template <class _InputIter, class _OutputIter, class _BinaryPredicate>
-_OutputIter unique_copy(_InputIter __first, _InputIter __last,_OutputIter __result,
- _BinaryPredicate __binary_pred);
-
-template <class _ForwardIter>
-inline _ForwardIter unique(_ForwardIter __first, _ForwardIter __last) {
- __first = adjacent_find(__first, __last);
- return unique_copy(__first, __last, __first);
-}
-
-template <class _ForwardIter, class _BinaryPredicate>
-inline _ForwardIter unique(_ForwardIter __first, _ForwardIter __last,
- _BinaryPredicate __binary_pred) {
- __first = adjacent_find(__first, __last, __binary_pred);
- return unique_copy(__first, __last, __first, __binary_pred);
-}
-
-// reverse and reverse_copy, and their auxiliary functions
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _BidirectionalIter>
-_STLP_INLINE_LOOP void
-__reverse(_BidirectionalIter __first, _BidirectionalIter __last, const bidirectional_iterator_tag &) {
- for (; __first != __last && __first != --__last; ++__first)
- _STLP_STD::iter_swap(__first,__last);
-}
-
-template <class _RandomAccessIter>
-_STLP_INLINE_LOOP void
-__reverse(_RandomAccessIter __first, _RandomAccessIter __last, const random_access_iterator_tag &) {
- for (; __first < __last; ++__first)
- _STLP_STD::iter_swap(__first, --__last);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _BidirectionalIter>
-inline void
-reverse(_BidirectionalIter __first, _BidirectionalIter __last) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_PRIV __reverse(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _BidirectionalIter));
-}
-
-template <class _BidirectionalIter, class _OutputIter>
-_STLP_INLINE_LOOP
-_OutputIter reverse_copy(_BidirectionalIter __first,
- _BidirectionalIter __last,
- _OutputIter __result) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- while (__first != __last) {
- --__last;
- *__result = *__last;
- ++__result;
- }
- return __result;
-}
-
-template <class _ForwardIter>
-void rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last);
-
-template <class _ForwardIter, class _OutputIter>
-inline _OutputIter rotate_copy(_ForwardIter __first, _ForwardIter __middle,
- _ForwardIter __last, _OutputIter __result) {
- return _STLP_STD::copy(__first, __middle, copy(__middle, __last, __result));
-}
-
-// random_shuffle
-
-template <class _RandomAccessIter>
-void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last);
-
-template <class _RandomAccessIter, class _RandomNumberGenerator>
-void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last,
- _RandomNumberGenerator& __rand);
-
-#if !defined (_STLP_NO_EXTENSIONS)
-// random_sample and random_sample_n (extensions, not part of the standard).
-
-template <class _ForwardIter, class _OutputIter, class _Distance>
-_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last,
- _OutputIter __out_ite, const _Distance __n);
-
-template <class _ForwardIter, class _OutputIter, class _Distance,
- class _RandomNumberGenerator>
-_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last,
- _OutputIter __out_ite, const _Distance __n,
- _RandomNumberGenerator& __rand);
-
-template <class _InputIter, class _RandomAccessIter>
-_RandomAccessIter
-random_sample(_InputIter __first, _InputIter __last,
- _RandomAccessIter __out_first, _RandomAccessIter __out_last);
-
-template <class _InputIter, class _RandomAccessIter,
- class _RandomNumberGenerator>
-_RandomAccessIter
-random_sample(_InputIter __first, _InputIter __last,
- _RandomAccessIter __out_first, _RandomAccessIter __out_last,
- _RandomNumberGenerator& __rand);
-
-#endif /* _STLP_NO_EXTENSIONS */
-
-// partition, stable_partition, and their auxiliary functions
-
-template <class _ForwardIter, class _Predicate>
-_ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred);
-
-template <class _ForwardIter, class _Predicate>
-_ForwardIter
-stable_partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred);
-
-// sort() and its auxiliary functions.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Size>
-inline _Size __lg(_Size __n) {
- _Size __k;
- for (__k = 0; __n != 1; __n >>= 1) ++__k;
- return __k;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _RandomAccessIter>
-void sort(_RandomAccessIter __first, _RandomAccessIter __last);
-template <class _RandomAccessIter, class _Compare>
-void sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp);
-
-// stable_sort() and its auxiliary functions.
-template <class _RandomAccessIter>
-void stable_sort(_RandomAccessIter __first,
- _RandomAccessIter __last);
-
-template <class _RandomAccessIter, class _Compare>
-void stable_sort(_RandomAccessIter __first,
- _RandomAccessIter __last, _Compare __comp);
-
-// partial_sort, partial_sort_copy, and auxiliary functions.
-
-template <class _RandomAccessIter>
-void partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle,
- _RandomAccessIter __last);
-
-template <class _RandomAccessIter, class _Compare>
-void partial_sort(_RandomAccessIter __first,_RandomAccessIter __middle,
- _RandomAccessIter __last, _Compare __comp);
-
-template <class _InputIter, class _RandomAccessIter>
-_RandomAccessIter
-partial_sort_copy(_InputIter __first, _InputIter __last,
- _RandomAccessIter __result_first, _RandomAccessIter __result_last);
-
-template <class _InputIter, class _RandomAccessIter, class _Compare>
-_RandomAccessIter
-partial_sort_copy(_InputIter __first, _InputIter __last,
- _RandomAccessIter __result_first,
- _RandomAccessIter __result_last, _Compare __comp);
-
-// nth_element() and its auxiliary functions.
-template <class _RandomAccessIter>
-void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth,
- _RandomAccessIter __last);
-
-template <class _RandomAccessIter, class _Compare>
-void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth,
- _RandomAccessIter __last, _Compare __comp);
-
-// auxiliary class for lower_bound, etc.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _T1, class _T2>
-struct __less_2 {
- bool operator() (const _T1& __x, const _T2& __y) const { return __x < __y ; }
-};
-
-template <class _T1, class _T2>
-__less_2<_T1,_T2> __less2(_T1*, _T2* ) { return __less_2<_T1, _T2>(); }
-
-#if defined (_STLP_FUNCTION_PARTIAL_ORDER)
-template <class _Tp>
-less<_Tp> __less2(_Tp*, _Tp* ) { return less<_Tp>(); }
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-// Binary search (lower_bound, upper_bound, equal_range, binary_search).
-template <class _ForwardIter, class _Tp>
-inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __lower_bound(__first, __last, __val,
- _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
- _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-template <class _ForwardIter, class _Tp, class _Compare>
-inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __lower_bound(__first, __last, __val, __comp, __comp,
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance>
-_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- _Compare1 __comp1, _Compare2 __comp2, _Distance*);
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Tp>
-inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __upper_bound(__first, __last, __val,
- _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
- _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-template <class _ForwardIter, class _Tp, class _Compare>
-inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val, _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __upper_bound(__first, __last, __val, __comp, __comp,
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance>
-pair<_ForwardIter, _ForwardIter>
-__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- _Compare1 __comp1, _Compare2 __comp2, _Distance*);
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Tp>
-inline pair<_ForwardIter, _ForwardIter>
-equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __equal_range(__first, __last, __val,
- _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
- _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-template <class _ForwardIter, class _Tp, class _Compare>
-inline pair<_ForwardIter, _ForwardIter>
-equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __equal_range(__first, __last, __val, __comp, __comp,
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-template <class _ForwardIter, class _Tp>
-inline bool binary_search(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _ForwardIter __i = _STLP_PRIV __lower_bound(__first, __last, __val,
- _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0),
- _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
- return __i != __last && !(__val < *__i);
-}
-
-template <class _ForwardIter, class _Tp, class _Compare>
-inline bool binary_search(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val,
- _Compare __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _ForwardIter __i = _STLP_PRIV __lower_bound(__first, __last, __val, __comp, __comp,
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
- 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);
-
-template <class _InputIter1, class _InputIter2, class _OutputIter,
- class _Compare>
-_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __result, _Compare __comp);
-
-
-// inplace_merge and its auxiliary functions.
-
-
-template <class _BidirectionalIter>
-void inplace_merge(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last) ;
-
-template <class _BidirectionalIter, class _Compare>
-void inplace_merge(_BidirectionalIter __first,
- _BidirectionalIter __middle,
- _BidirectionalIter __last, _Compare __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);
-
-template <class _InputIter1, class _InputIter2, class _Compare>
-bool includes(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2, _Compare __comp);
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __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);
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __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);
-
-
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __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);
-
-template <class _InputIter1, class _InputIter2, class _OutputIter>
-_OutputIter
-set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _OutputIter __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);
-
-
-// min_element and max_element, with and without an explicitly supplied
-// comparison function.
-
-template <class _ForwardIter>
-_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last);
-template <class _ForwardIter, class _Compare>
-_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last,
- _Compare __comp);
-
-template <class _ForwardIter>
-_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last);
-
-template <class _ForwardIter, class _Compare>
-_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last,
- _Compare __comp);
-
-// next_permutation and prev_permutation, with and without an explicitly
-// supplied comparison function.
-
-template <class _BidirectionalIter>
-bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last);
-
-template <class _BidirectionalIter, class _Compare>
-bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last,
- _Compare __comp);
-
-
-template <class _BidirectionalIter>
-bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last);
-
-
-template <class _BidirectionalIter, class _Compare>
-bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last,
- _Compare __comp);
-
-#if !defined (_STLP_NO_EXTENSIONS)
-// 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>
-bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last);
-
-template <class _RandomAccessIter, class _StrictWeakOrdering>
-bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last,
- _StrictWeakOrdering __comp);
-
-// is_sorted, a predicated testing whether a range is sorted in
-// nondescending order. This is an extension, not part of the C++
-// standard.
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _StrictWeakOrdering>
-bool __is_sorted(_ForwardIter __first, _ForwardIter __last,
- _StrictWeakOrdering __comp);
-
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _ForwardIter>
-inline bool is_sorted(_ForwardIter __first, _ForwardIter __last) {
- return _STLP_PRIV __is_sorted(__first, __last,
- _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _ForwardIter)));
-}
-
-template <class _ForwardIter, class _StrictWeakOrdering>
-inline bool is_sorted(_ForwardIter __first, _ForwardIter __last,
- _StrictWeakOrdering __comp) {
- return _STLP_PRIV __is_sorted(__first, __last, __comp);
-}
-#endif
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_algo.c>
-#endif
-
-#endif /* _STLP_INTERNAL_ALGO_H */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/stl/_algobase.c b/stlport/stlport/stl/_algobase.c
deleted file mode 100644
index 157e25c..0000000
--- a/stlport/stlport/stl/_algobase.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_ALGOBASE_C
-#define _STLP_ALGOBASE_C
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _InputIter1, class _InputIter2>
-bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- for ( ; __first1 != __last1 && __first2 != __last2
- ; ++__first1, ++__first2) {
- if (*__first1 < *__first2) {
- _STLP_VERBOSE_ASSERT(!(*__first2 < *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- 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) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- for ( ; __first1 != __last1 && __first2 != __last2
- ; ++__first1, ++__first2) {
- if (__comp(*__first1, *__first2)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1),
- _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return true;
- }
- if (__comp(*__first2, *__first1))
- return false;
- }
- return __first1 == __last1 && __first2 != __last2;
-}
-
-#if !defined (_STLP_NO_EXTENSIONS)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-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) {
- _STLP_VERBOSE_ASSERT(!(*__first2 < *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- return -1;
- }
- if (*__first2 < *__first1)
- return 1;
- ++__first1;
- ++__first2;
- }
- if (__first2 == __last2) {
- return !(__first1 == __last1);
- }
- else {
- return -1;
- }
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter1, class _InputIter2>
-int lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- return _STLP_PRIV __lexicographical_compare_3way(__first1, __last1, __first2, __last2);
-}
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _RandomAccessIter, class _Tp>
-_STLP_INLINE_LOOP _RandomAccessIter __find(_RandomAccessIter __first, _RandomAccessIter __last,
- const _Tp& __val,
- const random_access_iterator_tag &) {
- _STLP_DIFFERENCE_TYPE(_RandomAccessIter) __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;
- }
-}
-
-inline char*
-__find(char* __first, char* __last, char __val, const random_access_iterator_tag &) {
- void *res = memchr(__first, __val, __last - __first);
- return res != 0 ? __STATIC_CAST(char*, res) : __last;
-}
-inline const char*
-__find(const char* __first, const char* __last, char __val, const random_access_iterator_tag &) {
- const void *res = memchr(__first, __val, __last - __first);
- return res != 0 ? __STATIC_CAST(const char*, res) : __last;
-}
-
-template <class _RandomAccessIter, class _Predicate>
-_STLP_INLINE_LOOP _RandomAccessIter __find_if(_RandomAccessIter __first, _RandomAccessIter __last,
- _Predicate __pred,
- const random_access_iterator_tag &) {
- _STLP_DIFFERENCE_TYPE(_RandomAccessIter) __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>
-_STLP_INLINE_LOOP _InputIter __find(_InputIter __first, _InputIter __last,
- const _Tp& __val,
- const input_iterator_tag &) {
- while (__first != __last && !(*__first == __val)) ++__first;
- return __first;
-}
-
-template <class _InputIter, class _Predicate>
-_STLP_INLINE_LOOP _InputIter __find_if(_InputIter __first, _InputIter __last,
- _Predicate __pred,
- const input_iterator_tag &) {
- while (__first != __last && !__pred(*__first))
- ++__first;
- return __first;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _Predicate>
-_InputIter find_if(_InputIter __first, _InputIter __last,
- _Predicate __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __find_if(__first, __last, __pred, _STLP_ITERATOR_CATEGORY(__first, _InputIter));
-}
-
-template <class _InputIter, class _Tp>
-_InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __find(__first, __last, __val, _STLP_ITERATOR_CATEGORY(__first, _InputIter));
-}
-
-template <class _ForwardIter1, class _ForwardIter2, class _BinaryPred>
-_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2,
- _BinaryPred __pred) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- // Test for empty ranges
- if (__first1 == __last1 || __first2 == __last2)
- return __first1;
-
- // Test for a pattern of length 1.
- _ForwardIter2 __p1(__first2);
-
- if ( ++__p1 == __last2 ) {
- while (__first1 != __last1 && !__pred(*__first1, *__first2)) {
- ++__first1;
- }
- return __first1;
- }
-
- // General case.
-
- for ( ; ; ) { // __first1 != __last1 will be checked below
- while (__first1 != __last1 && !__pred(*__first1, *__first2)) {
- ++__first1;
- }
- if (__first1 == __last1) {
- return __last1;
- }
- _ForwardIter2 __p = __p1;
- _ForwardIter1 __current = __first1;
- if (++__current == __last1) return __last1;
-
- while (__pred(*__current, *__p)) {
- if (++__p == __last2)
- return __first1;
- if (++__current == __last1)
- return __last1;
- }
- ++__first1;
- }
- return __first1;
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-template <class _Tp>
-struct _IsCharLikeType
-{ typedef __false_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsCharLikeType<char>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsCharLikeType<unsigned char>
-{ typedef __true_type _Ret; };
-
-# ifndef _STLP_NO_SIGNED_BUILTINS
-_STLP_TEMPLATE_NULL struct _IsCharLikeType<signed char>
-{ typedef __true_type _Ret; };
-# endif
-
-template <class _Tp1, class _Tp2>
-inline bool __stlp_eq(_Tp1 __val1, _Tp2 __val2)
-{ return __val1 == __val2; }
-
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-template <class _Tp>
-inline bool __stlp_eq(_Tp, _Tp)
-{ return true; }
-#endif
-
-template <class _InputIter, class _ForwardIter, class _Tp2, class _Predicate>
-inline _InputIter __find_first_of_aux2(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2,
- _Tp2*, _Predicate __pred,
- const __true_type& /* _UseStrcspnLikeAlgo */) {
- unsigned char __hints[(UCHAR_MAX + 1) / CHAR_BIT];
- memset(__hints, 0, sizeof(__hints) / sizeof(unsigned char));
- for (; __first2 != __last2; ++__first2) {
- unsigned char __tmp = (unsigned char)*__first2;
- __hints[__tmp / CHAR_BIT] |= (1 << (__tmp % CHAR_BIT));
- }
-
- for (; __first1 != __last1; ++__first1) {
- _Tp2 __tmp = (_Tp2)*__first1;
- if (__stlp_eq(*__first1, __tmp) &&
- __pred((__hints[(unsigned char)__tmp / CHAR_BIT] & (1 << ((unsigned char)__tmp % CHAR_BIT))) != 0))
- break;
- }
- return __first1;
-}
-
-template <class _InputIter, class _ForwardIter, class _Tp2, class _Predicate>
-inline _InputIter __find_first_of_aux2(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2,
- _Tp2* /* __dummy */, _Predicate /* __pred */,
- const __false_type& /* _UseStrcspnLikeAlgo */) {
- return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2,
- _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first1, _InputIter)));
-}
-
-template <class _InputIter, class _ForwardIter, class _Tp1, class _Tp2>
-inline _InputIter __find_first_of_aux1(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2,
- _Tp1* __pt1, _Tp2* __pt2) {
- typedef _STLP_TYPENAME _STLP_STD::_IsIntegral<_Tp1>::_Ret _IsIntegral;
- typedef _STLP_TYPENAME _STLP_PRIV _IsCharLikeType<_Tp2>::_Ret _IsCharLike;
- typedef _STLP_TYPENAME _STLP_STD::_Land2<_IsIntegral, _IsCharLike>::_Ret _UseStrcspnLikeAlgo;
- return _STLP_PRIV __find_first_of_aux2(__first1, __last1,
- __first2, __last2,
- __pt2, _Identity<bool>(), _UseStrcspnLikeAlgo());
-}
-
-template <class _InputIter, class _ForwardIter>
-inline _InputIter __find_first_of(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2) {
- return _STLP_PRIV __find_first_of_aux1(__first1, __last1, __first2, __last2,
- _STLP_VALUE_TYPE(__first1, _InputIter),
- _STLP_VALUE_TYPE(__first2, _ForwardIter));
-}
-
-// find_first_of, with and without an explicitly supplied comparison function.
-template <class _InputIter, class _ForwardIter, class _BinaryPredicate>
-_InputIter __find_first_of(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2,
- _BinaryPredicate __comp) {
- 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,
- class _BinaryPredicate>
-_ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2,
- const forward_iterator_tag &, const forward_iterator_tag &,
- _BinaryPredicate __comp) {
- if (__first2 == __last2)
- return __last1;
- else {
- _ForwardIter1 __result = __last1;
- for (;;) {
- _ForwardIter1 __new_result = _STLP_STD::search(__first1, __last1, __first2, __last2, __comp);
- if (__new_result == __last1)
- return __result;
- else {
- __result = __new_result;
- __first1 = __new_result;
- ++__first1;
- }
- }
- }
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-// find_end for bidirectional iterators. Requires partial specialization.
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-
-# ifndef _STLP_INTERNAL_ITERATOR_H
-_STLP_END_NAMESPACE
-# include <stl/_iterator.h>
-_STLP_BEGIN_NAMESPACE
-# endif /*_STLP_INTERNAL_ITERATOR_H*/
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _BidirectionalIter1, class _BidirectionalIter2,
- class _BinaryPredicate>
-_BidirectionalIter1
-__find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1,
- _BidirectionalIter2 __first2, _BidirectionalIter2 __last2,
- const bidirectional_iterator_tag &, const bidirectional_iterator_tag &,
- _BinaryPredicate __comp) {
- typedef _STLP_STD::reverse_iterator<_BidirectionalIter1> _RevIter1;
- typedef _STLP_STD::reverse_iterator<_BidirectionalIter2> _RevIter2;
-
- _RevIter1 __rlast1(__first1);
- _RevIter2 __rlast2(__first2);
- _RevIter1 __rresult = _STLP_STD::search(_RevIter1(__last1), __rlast1,
- _RevIter2(__last2), __rlast2,
- __comp);
-
- if (__rresult == __rlast1)
- return __last1;
- else {
- _BidirectionalIter1 __result = __rresult.base();
- _STLP_STD::advance(__result, -_STLP_STD::distance(__first2, __last2));
- return __result;
- }
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-template <class _ForwardIter1, class _ForwardIter2,
- class _BinaryPredicate>
-_ForwardIter1
-find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2,
- _BinaryPredicate __comp) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
- return _STLP_PRIV __find_end(__first1, __last1, __first2, __last2,
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
- _STLP_ITERATOR_CATEGORY(__first1, _ForwardIter1),
- _STLP_ITERATOR_CATEGORY(__first2, _ForwardIter2),
-#else
- forward_iterator_tag(),
- forward_iterator_tag(),
-#endif
- __comp);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance>
-_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- _Compare1 __comp1, _Compare2 __comp2, _Distance*) {
- _Distance __len = _STLP_STD::distance(__first, __last);
- _Distance __half;
- _ForwardIter __middle;
-
- while (__len > 0) {
- __half = __len >> 1;
- __middle = __first;
- _STLP_STD::advance(__middle, __half);
- if (__comp1(*__middle, __val)) {
- _STLP_VERBOSE_ASSERT(!__comp2(__val, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __first = __middle;
- ++__first;
- __len = __len - __half - 1;
- }
- else
- __len = __half;
- }
- return __first;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_ALGOBASE_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_algobase.h b/stlport/stlport/stl/_algobase.h
deleted file mode 100644
index 597dcbe..0000000
--- a/stlport/stlport/stl/_algobase.h
+++ /dev/null
@@ -1,728 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-#define _STLP_INTERNAL_ALGOBASE_H
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CSTRING
-# include <stl/_cstring.h>
-#endif
-
-#ifndef _STLP_CLIMITS
-# include <climits>
-#endif
-
-#ifndef _STLP_INTERNAL_CSTDLIB
-# include <stl/_cstdlib.h>
-#endif
-
-#ifndef _STLP_INTERNAL_PAIR_H
-# include <stl/_pair.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-#endif
-
-#ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-template <class _Tp>
-inline void __swap_aux(_Tp& __a, _Tp& __b, const __true_type& /*SwapImplemented*/) {
- __a._M_swap_workaround(__b);
-}
-
-template <class _Tp>
-inline void __swap_aux(_Tp& __a, _Tp& __b, const __false_type& /*SwapImplemented*/) {
- _Tp __tmp = __a;
- __a = __b;
- __b = __tmp;
-}
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-// swap and iter_swap
-template <class _Tp>
-inline void swap(_Tp& __a, _Tp& __b) {
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-# if !defined(__BORLANDC__)
- typedef typename _SwapImplemented<_Tp>::_Ret _Implemented;
-# else
- enum { _Is = _SwapImplemented<_Tp>::_Is };
- typedef typename __bool2type<_Is>::_Ret _Implemented;
-# endif
- _STLP_PRIV __swap_aux(__a, __b, _Implemented());
-#else
- _Tp __tmp = __a;
- __a = __b;
- __b = __tmp;
-#endif
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter1, class _ForwardIter2, class _Value>
-inline void __iter_swap_aux_aux(_ForwardIter1& __i1, _ForwardIter2& __i2, _Value *) {
- _Value tmp = *__i1;
- *__i1 = *__i2;
- *__i2 = tmp;
-}
-
-template <class _ForwardIter1, class _ForwardIter2>
-inline void __iter_swap_aux(_ForwardIter1& __i1, _ForwardIter2& __i2, const __true_type& /*OKToSwap*/) {
- /* namespace specification breaks access to the right swap template overload (at least for gcc) */
- /*_STLP_STD::*/ swap(*__i1, *__i2);
-}
-
-template <class _ForwardIter1, class _ForwardIter2>
-inline void __iter_swap_aux(_ForwardIter1& __i1, _ForwardIter2& __i2, const __false_type& /*OKToSwap*/) {
- _STLP_PRIV __iter_swap_aux_aux( __i1, __i2, _STLP_VALUE_TYPE(__i1,_ForwardIter1) );
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter1, class _ForwardIter2>
-inline void iter_swap(_ForwardIter1 __i1, _ForwardIter2 __i2) {
- _STLP_PRIV __iter_swap_aux( __i1, __i2, _IsOKToSwap(_STLP_VALUE_TYPE(__i1, _ForwardIter1), _STLP_VALUE_TYPE(__i2, _ForwardIter2),
- _STLP_IS_REF_TYPE_REAL_REF(__i1, _ForwardIter1),
- _STLP_IS_REF_TYPE_REAL_REF(__i2, _ForwardIter2))._Answer());
-}
-
-//--------------------------------------------------
-// min and max
-
-#if !defined (__BORLANDC__) || defined (_STLP_USE_OWN_NAMESPACE)
-# if (defined (__BORLANDC__) && (__BORLANDC__ < 0x580)) && !defined (__STDC__)
-//In not ANSI mode Borland import min/max in global namespace which conflict
-//with STLport min/max when user does a 'using namespace std' in its code
-//(see test/unit/alg_test.cpp). To avoid this clash we simply import Borland min/max
-//in STLport namespace.
-using _STLP_VENDOR_STD::min;
-using _STLP_VENDOR_STD::max;
-# else
-template <class _Tp>
-inline const _Tp& (min)(const _Tp& __a, const _Tp& __b) { return __b < __a ? __b : __a; }
-template <class _Tp>
-inline const _Tp& (max)(const _Tp& __a, const _Tp& __b) { return __a < __b ? __b : __a; }
-# endif
-#endif
-
-# if defined (__BORLANDC__) && defined (_STLP_USE_OWN_NAMESPACE)
-inline unsigned long (min) (unsigned long __a, unsigned long __b) { return __b < __a ? __b : __a; }
-inline unsigned long (max) (unsigned long __a, unsigned long __b) { return __a < __b ? __b : __a; }
-# endif
-
-# if !defined (__BORLANDC__) || (__BORLANDC__ < 0x590)
-template <class _Tp, class _Compare>
-inline const _Tp& (min)(const _Tp& __a, const _Tp& __b, _Compare __comp) {
- return __comp(__b, __a) ? __b : __a;
-}
-
-template <class _Tp, class _Compare>
-inline const _Tp& (max)(const _Tp& __a, const _Tp& __b, _Compare __comp) {
- return __comp(__a, __b) ? __b : __a;
-}
-# else
-template <class _Tp, class _Compare>
-inline const _Tp (min)(const _Tp __a, const _Tp __b, _Compare __comp) {
- return __comp(__b, __a) ? __b : __a;
-}
-
-template <class _Tp, class _Compare>
-inline const _Tp (max)(const _Tp __a, const _Tp __b, _Compare __comp) {
- return __comp(__a, __b) ? __b : __a;
-}
-# endif
-
-//--------------------------------------------------
-// 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.
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __copy(_InputIter __first, _InputIter __last,
- _OutputIter __result, const input_iterator_tag &, _Distance*) {
- for ( ; __first != __last; ++__result, ++__first)
- *__result = *__first;
- return __result;
-}
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __copy(_InputIter __first, _InputIter __last,
- _OutputIter __result, const forward_iterator_tag &, _Distance* ) {
- for ( ; __first != __last; ++__result, ++__first)
- *__result = *__first;
- return __result;
-}
-
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __copy(_InputIter __first, _InputIter __last,
- _OutputIter __result, const bidirectional_iterator_tag &, _Distance* ) {
- for ( ; __first != __last; ++__result, ++__first)
- *__result = *__first;
- return __result;
-}
-#endif
-
-template <class _RandomAccessIter, class _OutputIter, class _Distance>
-inline _OutputIter
-__copy(_RandomAccessIter __first, _RandomAccessIter __last,
- _OutputIter __result, const random_access_iterator_tag &, _Distance*) {
- for (_Distance __n = __last - __first; __n > 0; --__n) {
- *__result = *__first;
- ++__first;
- ++__result;
- }
- return __result;
-}
-
-inline void*
-__copy_trivial(const void* __first, const void* __last, void* __result) {
- size_t __n = (const char*)__last - (const char*)__first;
- return __n ? (void *)((char*)memmove(__result, __first, __n) + __n) : __result;
-}
-
-//--------------------------------------------------
-// copy_backward auxiliary functions
-
-template <class _BidirectionalIter1, class _BidirectionalIter2,
- class _Distance>
-inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first,
- _BidirectionalIter1 __last,
- _BidirectionalIter2 __result,
- const 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,
- const random_access_iterator_tag &,
- _Distance*) {
- for (_Distance __n = __last - __first; __n > 0; --__n)
- *--__result = *--__last;
- return __result;
-}
-
-inline void*
-__copy_trivial_backward(const void* __first, const void* __last, void* __result) {
- const ptrdiff_t _Num = (const char*)__last - (const char*)__first;
- return (_Num > 0) ? memmove((char*)__result - _Num, __first, _Num) : __result ;
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __false_type& /*IsOKToMemCpy*/) {
- return _STLP_PRIV __copy(__first, __last, __result, random_access_iterator_tag(), (ptrdiff_t*)0);
-}
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __true_type& /*IsOKToMemCpy*/) {
- // we know they all pointers, so this cast is OK
- // return (_OutputIter)__copy_trivial(&(*__first), &(*__last), &(*__result));
- return (_OutputIter)_STLP_PRIV __copy_trivial(__first, __last, __result);
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_aux(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __true_type& /*BothPtrType*/) {
- return _STLP_PRIV __copy_ptrs(__first, __last, __result,
- _UseTrivialCopy(_STLP_VALUE_TYPE(__first, _InputIter),
- _STLP_VALUE_TYPE(__result, _OutputIter))._Answer());
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_aux(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __false_type& /*BothPtrType*/) {
- return _STLP_PRIV __copy(__first, __last, __result,
- _STLP_ITERATOR_CATEGORY(__first, _InputIter),
- _STLP_DISTANCE_TYPE(__first, _InputIter));
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter copy(_InputIter __first, _InputIter __last, _OutputIter __result) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __copy_aux(__first, __last, __result, _BothPtrType< _InputIter, _OutputIter>::_Answer());
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_backward_ptrs(_InputIter __first, _InputIter __last,
- _OutputIter __result, const __false_type& /*TrivialAssignment*/) {
- return _STLP_PRIV __copy_backward(__first, __last, __result,
- _STLP_ITERATOR_CATEGORY(__first, _InputIter),
- _STLP_DISTANCE_TYPE(__first, _InputIter));
-}
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_backward_ptrs(_InputIter __first, _InputIter __last,
- _OutputIter __result, const __true_type& /*TrivialAssignment*/) {
- return (_OutputIter)_STLP_PRIV __copy_trivial_backward(__first, __last, __result);
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_backward_aux(_InputIter __first, _InputIter __last, _OutputIter __result, const __false_type&) {
- return _STLP_PRIV __copy_backward(__first, __last, __result,
- _STLP_ITERATOR_CATEGORY(__first,_InputIter),
- _STLP_DISTANCE_TYPE(__first, _InputIter));
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __copy_backward_aux(_InputIter __first, _InputIter __last, _OutputIter __result, const __true_type&) {
- return _STLP_PRIV __copy_backward_ptrs(__first, __last, __result,
- _UseTrivialCopy(_STLP_VALUE_TYPE(__first, _InputIter),
- _STLP_VALUE_TYPE(__result, _OutputIter))._Answer());
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter copy_backward(_InputIter __first, _InputIter __last, _OutputIter __result) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- return _STLP_PRIV __copy_backward_aux(__first, __last, __result, _BothPtrType< _InputIter, _OutputIter>::_Answer() );
-}
-
-#if !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS)
-# define _STLP_DECLARE_COPY_TRIVIAL(_Tp) \
-inline _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) \
-{ return (_Tp*)_STLP_PRIV __copy_trivial(__first, __last, __result); } \
-inline _Tp* copy_backward(const _Tp* __first, const _Tp* __last, _Tp* __result) \
-{ return (_Tp*)_STLP_PRIV __copy_trivial_backward(__first, __last, __result); }
-
-# if !defined (_STLP_NO_BOOL)
-_STLP_DECLARE_COPY_TRIVIAL(bool)
-# endif
-_STLP_DECLARE_COPY_TRIVIAL(char)
-# if !defined (_STLP_NO_SIGNED_BUILTINS)
-_STLP_DECLARE_COPY_TRIVIAL(signed char)
-# endif
-_STLP_DECLARE_COPY_TRIVIAL(unsigned char)
-_STLP_DECLARE_COPY_TRIVIAL(short)
-_STLP_DECLARE_COPY_TRIVIAL(unsigned short)
-_STLP_DECLARE_COPY_TRIVIAL(int)
-_STLP_DECLARE_COPY_TRIVIAL(unsigned int)
-_STLP_DECLARE_COPY_TRIVIAL(long)
-_STLP_DECLARE_COPY_TRIVIAL(unsigned long)
-# if !defined(_STLP_NO_WCHAR_T) && !defined (_STLP_WCHAR_T_IS_USHORT)
-_STLP_DECLARE_COPY_TRIVIAL(wchar_t)
-# endif
-# if defined (_STLP_LONG_LONG)
-_STLP_DECLARE_COPY_TRIVIAL(_STLP_LONG_LONG)
-_STLP_DECLARE_COPY_TRIVIAL(unsigned _STLP_LONG_LONG)
-# endif
-_STLP_DECLARE_COPY_TRIVIAL(float)
-_STLP_DECLARE_COPY_TRIVIAL(double)
-# if !defined (_STLP_NO_LONG_DOUBLE)
-_STLP_DECLARE_COPY_TRIVIAL(long double)
-# endif
-# undef _STLP_DECLARE_COPY_TRIVIAL
-#endif
-
-//--------------------------------------------------
-// copy_n (not part of the C++ standard)
-
-#if !defined (_STLP_NO_EXTENSIONS)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter, class _Size, class _OutputIter>
-_STLP_INLINE_LOOP _STLP_STD::pair<_InputIter, _OutputIter>
-__copy_n(_InputIter __first, _Size __count, _OutputIter __result,
- const input_iterator_tag &) {
- for ( ; __count > 0; --__count) {
- *__result = *__first;
- ++__first;
- ++__result;
- }
- return _STLP_STD::pair<_InputIter, _OutputIter>(__first, __result);
-}
-
-template <class _RAIter, class _Size, class _OutputIter>
-inline _STLP_STD::pair<_RAIter, _OutputIter>
-__copy_n(_RAIter __first, _Size __count, _OutputIter __result,
- const random_access_iterator_tag &) {
- _RAIter __last = __first + __count;
- return _STLP_STD::pair<_RAIter, _OutputIter>(__last, _STLP_STD::copy(__first, __last, __result));
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _Size, class _OutputIter>
-inline pair<_InputIter, _OutputIter>
-copy_n(_InputIter __first, _Size __count, _OutputIter __result) {
- _STLP_FIX_LITERAL_BUG(__first)
- return _STLP_PRIV __copy_n(__first, __count, __result, _STLP_ITERATOR_CATEGORY(__first, _InputIter));
-}
-#endif
-
-//--------------------------------------------------
-// fill and fill_n
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Tp>
-_STLP_INLINE_LOOP
-void __fill_fwd(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) {
- for ( ; __first != __last; ++__first)
- *__first = __val;
-}
-
-template <class _ForwardIter, class _Tp, class _Distance>
-inline void __fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- const input_iterator_tag &, _Distance*) {
- _STLP_PRIV __fill_fwd(__first, __last, __val);
-}
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _ForwardIter, class _Tp, class _Distance>
-_STLP_INLINE_LOOP
-void __fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- const forward_iterator_tag &, _Distance*) {
- _STLP_PRIV __fill_fwd(__first, __last, __val);
-}
-
-template <class _ForwardIter, class _Tp, class _Distance>
-_STLP_INLINE_LOOP
-void __fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
- const bidirectional_iterator_tag &, _Distance*) {
- _STLP_PRIV __fill_fwd(__first, __last, __val);
-}
-#endif
-
-template <class _RandomAccessIter, class _Tp, class _Distance>
-_STLP_INLINE_LOOP
-void __fill(_RandomAccessIter __first, _RandomAccessIter __last, const _Tp& __val,
- const random_access_iterator_tag &, _Distance*) {
- for (_Distance __n = __last - __first ; __n > 0; ++__first, --__n)
- *__first = __val;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Tp>
-inline void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_PRIV __fill(__first, __last, __val,
- _STLP_ITERATOR_CATEGORY(__first, _ForwardIter),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-// Specialization: for one-byte types we can use memset.
-inline void fill(unsigned char* __first, unsigned char* __last,
- const unsigned char& __val) {
- unsigned char __tmp = __val;
- memset(__first, __tmp, __last - __first);
-}
-#if !defined (_STLP_NO_SIGNED_BUILTINS)
-inline void fill(signed char* __first, signed char* __last,
- const signed char& __val) {
- signed char __tmp = __val;
- memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first);
-}
-#endif
-inline void fill(char* __first, char* __last, const char& __val) {
- char __tmp = __val;
- memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _OutputIter, class _Size, class _Tp>
-_STLP_INLINE_LOOP
-_OutputIter __fill_n(_OutputIter __first, _Size __n, const _Tp& __val) {
- _STLP_FIX_LITERAL_BUG(__first)
- for ( ; __n > 0; --__n, ++__first)
- *__first = __val;
- return __first;
-}
-
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-template <class _Size>
-inline unsigned char* __fill_n(unsigned char* __first, _Size __n,
- const unsigned char& __val) {
- _STLP_STD::fill(__first, __first + __n, __val);
- return __first + __n;
-}
-#if !defined (_STLP_NO_SIGNED_BUILTINS)
-template <class _Size>
-inline signed char* __fill_n(signed char* __first, _Size __n,
- const signed char& __val) {
- _STLP_STD::fill(__first, __first + __n, __val);
- return __first + __n;
-}
-#endif
-template <class _Size>
-inline char* __fill_n(char* __first, _Size __n,
- const char& __val) {
- _STLP_STD::fill(__first, __first + __n, __val);
- return __first + __n;
-}
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _OutputIter, class _Size, class _Tp>
-inline void fill_n(_OutputIter __first, _Size __n, const _Tp& __val) {
- _STLP_FIX_LITERAL_BUG(__first)
- _STLP_PRIV __fill_n(__first, __n, __val);
-}
-
-
-//--------------------------------------------------
-// equal and mismatch
-
-template <class _InputIter1, class _InputIter2>
-_STLP_INLINE_LOOP
-_STLP_STD::pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1,
- _InputIter1 __last1,
- _InputIter2 __first2) {
- _STLP_FIX_LITERAL_BUG(__first2)
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- while (__first1 != __last1 && *__first1 == *__first2) {
- ++__first1;
- ++__first2;
- }
- return _STLP_STD::pair<_InputIter1, _InputIter2>(__first1, __first2);
-}
-
-template <class _InputIter1, class _InputIter2, class _BinaryPredicate>
-_STLP_INLINE_LOOP
-_STLP_STD::pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1,
- _InputIter1 __last1,
- _InputIter2 __first2,
- _BinaryPredicate __binary_pred) {
- _STLP_FIX_LITERAL_BUG(__first2)
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) {
- ++__first1;
- ++__first2;
- }
- return _STLP_STD::pair<_InputIter1, _InputIter2>(__first1, __first2);
-}
-
-template <class _InputIter1, class _InputIter2>
-_STLP_INLINE_LOOP
-bool equal(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2) {
- _STLP_FIX_LITERAL_BUG(__first1) _STLP_FIX_LITERAL_BUG(__last1) _STLP_FIX_LITERAL_BUG(__first2)
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- for ( ; __first1 != __last1; ++__first1, ++__first2)
- if (!(*__first1 == *__first2))
- return false;
- return true;
-}
-
-template <class _InputIter1, class _InputIter2, class _BinaryPredicate>
-_STLP_INLINE_LOOP
-bool equal(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _BinaryPredicate __binary_pred) {
- _STLP_FIX_LITERAL_BUG(__first2)
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- 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);
-
-template <class _InputIter1, class _InputIter2, class _Compare>
-bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _Compare __comp);
-
-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;
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
-
- const int __result = memcmp(__first1, __first2, (min) (__len1, __len2));
- return __result != 0 ? (__result < 0) : (__len1 < __len2);
-}
-
-
-#if !(CHAR_MAX == SCHAR_MAX)
-inline bool lexicographical_compare(const char* __first1, const char* __last1,
- const char* __first2, const char* __last2) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __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 */
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter1, class _InputIter2>
-int __lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2);
-
-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));
-}
-
-
-#if !(CHAR_MAX == SCHAR_MAX)
-inline int
-__lexicographical_compare_3way(const char* __first1, const char* __last1,
- const char* __first2, const char* __last2) {
- return __lexicographical_compare_3way((const unsigned char*) __first1,
- (const unsigned char*) __last1,
- (const unsigned char*) __first2,
- (const unsigned char*) __last2);
-}
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#if !defined (_STLP_NO_EXTENSIONS)
-template <class _InputIter1, class _InputIter2>
-int lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2);
-
-#endif
-
-// count
-template <class _InputIter, class _Tp>
-_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_InputIter)
-count(_InputIter __first, _InputIter __last, const _Tp& __val) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- _STLP_DIFFERENCE_TYPE(_InputIter) __n = 0;
- for ( ; __first != __last; ++__first)
- if (*__first == __val)
- ++__n;
- return __n;
-}
-
-// find and find_if. Note find may be expressed in terms of find_if if appropriate binder was available.
-template <class _InputIter, class _Tp>
-_InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val);
-
-template <class _InputIter, class _Predicate>
-_InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred);
-
-// search.
-template <class _ForwardIter1, class _ForwardIter2, class _BinaryPred>
-_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2, _BinaryPred __predicate);
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// find_first_of
-template <class _InputIter, class _ForwardIter>
-_InputIter __find_first_of(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2);
-
-template <class _InputIter, class _ForwardIter, class _BinaryPredicate>
-_InputIter __find_first_of(_InputIter __first1, _InputIter __last1,
- _ForwardIter __first2, _ForwardIter __last2,
- _BinaryPredicate __comp);
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter1, class _ForwardIter2,
- class _BinaryPredicate>
-_ForwardIter1
-find_end(_ForwardIter1 __first1, _ForwardIter1 __last1,
- _ForwardIter2 __first2, _ForwardIter2 __last2,
- _BinaryPredicate __comp);
-
-// replace
-template <class _ForwardIter, class _Tp>
-_STLP_INLINE_LOOP void
-replace(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __old_value, const _Tp& __new_value) {
- _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
- for ( ; __first != __last; ++__first)
- if (*__first == __old_value)
- *__first = __new_value;
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance>
-_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __val, _Compare1 __comp1, _Compare2 __comp2, _Distance*);
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_algobase.c>
-#endif
-
-#endif /* _STLP_INTERNAL_ALGOBASE_H */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/stl/_alloc.c b/stlport/stlport/stl/_alloc.c
deleted file mode 100644
index 467405b..0000000
--- a/stlport/stlport/stl/_alloc.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_ALLOC_C
-#define _STLP_ALLOC_C
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#if defined (__WATCOMC__)
-# pragma warning 13 9
-# pragma warning 367 9
-# pragma warning 368 9
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Alloc>
-void * _STLP_CALL __debug_alloc<_Alloc>::allocate(size_t __n) {
- size_t __total_extra = __extra_before_chunk() + __extra_after_chunk();
- size_t __real_n = __n + __total_extra;
- if (__real_n < __n) {
- //It means that we rolled on size_t, __n must be very large:
- _STLP_THROW_BAD_ALLOC;
- }
- __alloc_header *__result = (__alloc_header *)__allocator_type::allocate(__real_n);
- memset((char*)__result, __shred_byte, __real_n * sizeof(value_type));
- __result->__magic = __magic;
- __result->__type_size = sizeof(value_type);
- __result->_M_size = (_STLP_UINT32_T)__n;
- return ((char*)__result) + (long)__extra_before;
-}
-
-template <class _Alloc>
-void _STLP_CALL
-__debug_alloc<_Alloc>::deallocate(void *__p, size_t __n) {
- __alloc_header * __real_p = (__alloc_header*)((char *)__p -(long)__extra_before);
- // check integrity
- _STLP_VERBOSE_ASSERT(__real_p->__magic != __deleted_magic, _StlMsg_DBA_DELETED_TWICE)
- _STLP_VERBOSE_ASSERT(__real_p->__magic == __magic, _StlMsg_DBA_NEVER_ALLOCATED)
- _STLP_VERBOSE_ASSERT(__real_p->__type_size == 1,_StlMsg_DBA_TYPE_MISMATCH)
- _STLP_VERBOSE_ASSERT(__real_p->_M_size == __n, _StlMsg_DBA_SIZE_MISMATCH)
- // check pads on both sides
- unsigned char* __tmp;
- for (__tmp = (unsigned char*)(__real_p + 1); __tmp < (unsigned char*)__p; ++__tmp) {
- _STLP_VERBOSE_ASSERT(*__tmp == __shred_byte, _StlMsg_DBA_UNDERRUN)
- }
-
- size_t __real_n = __n + __extra_before_chunk() + __extra_after_chunk();
-
- for (__tmp= ((unsigned char*)__p) + __n * sizeof(value_type);
- __tmp < ((unsigned char*)__real_p) + __real_n ; ++__tmp) {
- _STLP_VERBOSE_ASSERT(*__tmp == __shred_byte, _StlMsg_DBA_OVERRUN)
- }
-
- // that may be unfortunate, just in case
- __real_p->__magic = __deleted_magic;
- memset((char*)__p, __shred_byte, __n * sizeof(value_type));
- __allocator_type::deallocate(__real_p, __real_n);
-}
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_ALLOC_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_alloc.h b/stlport/stlport/stl/_alloc.h
deleted file mode 100644
index 09b8af5..0000000
--- a/stlport/stlport/stl/_alloc.h
+++ /dev/null
@@ -1,580 +0,0 @@
-/*
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-#define _STLP_INTERNAL_ALLOC_H
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CSTDLIB
-# include <stl/_cstdlib.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CSTRING
-# include <stl/_cstring.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_NEW_HEADER
-# include <stl/_new.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-// Malloc-based allocator. Typically slower than default alloc below.
-// Typically thread-safe and more storage efficient.
-
-#if !defined (_STLP_USE_NO_IOSTREAMS)
-typedef void (* __oom_handler_type)();
-#endif
-
-class _STLP_CLASS_DECLSPEC __malloc_alloc {
-public:
- // this one is needed for proper simple_alloc wrapping
- typedef char value_type;
- static void* _STLP_CALL allocate(size_t __n)
-#if !defined (_STLP_USE_NO_IOSTREAMS)
- ;
-#else
- {
- void *__result = malloc(__n);
- if (__result == 0) {
- _STLP_THROW_BAD_ALLOC;
- }
- return __result;
- }
-#endif
-
- static void _STLP_CALL deallocate(void* __p, size_t /* __n */) { free((char*)__p); }
-#if !defined (_STLP_USE_NO_IOSTREAMS)
- static __oom_handler_type _STLP_CALL set_malloc_handler(__oom_handler_type __f);
-#endif
-};
-
-// New-based allocator. Typically slower than default alloc below.
-// Typically thread-safe and more storage efficient.
-class _STLP_CLASS_DECLSPEC __new_alloc {
-public:
- // this one is needed for proper simple_alloc wrapping
- typedef char value_type;
- static void* _STLP_CALL allocate(size_t __n) { return __stl_new(__n); }
- static void _STLP_CALL deallocate(void* __p, size_t) { __stl_delete(__p); }
-};
-
-// Allocator adaptor to check size arguments for debugging.
-// Reports errors using assert. Checking can be disabled with
-// NDEBUG, but it's far better to just use the underlying allocator
-// instead when no checking is desired.
-// There is some evidence that this can confuse Purify.
-// This adaptor can only be applied to raw allocators
-
-template <class _Alloc>
-class __debug_alloc : public _Alloc {
-public:
- typedef _Alloc __allocator_type;
- typedef typename _Alloc::value_type value_type;
-private:
- struct __alloc_header {
- size_t __magic: 16;
- size_t __type_size:16;
- _STLP_UINT32_T _M_size;
- }; // that is 8 bytes for sure
- // Sunpro CC has bug on enums, so extra_before/after set explicitly
- enum { __pad = 8, __magic = 0xdeba, __deleted_magic = 0xdebd,
- __shred_byte = _STLP_SHRED_BYTE };
-
- enum { __extra_before = 16, __extra_after = 8 };
- // Size of space used to store size. Note
- // that this must be large enough to preserve
- // alignment.
- static size_t _STLP_CALL __extra_before_chunk() {
- return (long)__extra_before / sizeof(value_type) +
- (size_t)((long)__extra_before % sizeof(value_type) > 0);
- }
- static size_t _STLP_CALL __extra_after_chunk() {
- return (long)__extra_after / sizeof(value_type) +
- (size_t)((long)__extra_after % sizeof(value_type) > 0);
- }
-public:
- __debug_alloc() {}
- ~__debug_alloc() {}
- static void* _STLP_CALL allocate(size_t);
- static void _STLP_CALL deallocate(void *, size_t);
-};
-
-# if defined (__OS400__)
-// dums 02/05/2007: is it really necessary ?
-enum { _MAX_BYTES = 256 };
-# else
-enum { _MAX_BYTES = 32 * sizeof(void*) };
-# endif
-
-#if !defined (_STLP_USE_NO_IOSTREAMS)
-// Default node allocator.
-// With a reasonable compiler, this should be roughly as fast as the
-// original STL class-specific allocators, but with less fragmentation.
-class _STLP_CLASS_DECLSPEC __node_alloc {
- static void * _STLP_CALL _M_allocate(size_t& __n);
- /* __p may not be 0 */
- static void _STLP_CALL _M_deallocate(void *__p, size_t __n);
-
-public:
- // this one is needed for proper simple_alloc wrapping
- typedef char value_type;
- /* __n must be > 0 */
- static void* _STLP_CALL allocate(size_t& __n)
- { return (__n > (size_t)_MAX_BYTES) ? __stl_new(__n) : _M_allocate(__n); }
- /* __p may not be 0 */
- static void _STLP_CALL deallocate(void *__p, size_t __n)
- { if (__n > (size_t)_MAX_BYTES) __stl_delete(__p); else _M_deallocate(__p, __n); }
-};
-
-# if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS __debug_alloc<__node_alloc>;
-# endif
-
-#endif
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS __debug_alloc<__new_alloc>;
-_STLP_EXPORT_TEMPLATE_CLASS __debug_alloc<__malloc_alloc>;
-#endif
-
-/* macro to convert the allocator for initialization
- * not using MEMBER_TEMPLATE_CLASSES as it should work given template constructor */
-#if defined (_STLP_MEMBER_TEMPLATES) || ! defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-/* if _STLP_NO_TEMPLATE_CONVERSIONS is set, the member template constructor is
- * not used implicitly to convert allocator parameter, so let us do it explicitly */
-# if defined (_STLP_MEMBER_TEMPLATE_CLASSES) && defined (_STLP_NO_TEMPLATE_CONVERSIONS)
-# define _STLP_CONVERT_ALLOCATOR(__a, _Tp) __stl_alloc_create(__a,(_Tp*)0)
-# else
-# define _STLP_CONVERT_ALLOCATOR(__a, _Tp) __a
-# endif
-/* else convert, but only if partial specialization works, since else
- * Container::allocator_type won't be different */
-#else
-# define _STLP_CONVERT_ALLOCATOR(__a, _Tp) __stl_alloc_create(__a,(_Tp*)0)
-#endif
-
-// Another allocator adaptor: _Alloc_traits. This serves two
-// purposes. First, make it possible to write containers that can use
-// either SGI-style allocators or standard-conforming allocator.
-
-// The fully general version.
-template <class _Tp, class _Allocator>
-struct _Alloc_traits {
- typedef _Allocator _Orig;
-#if !defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
- typedef typename _Allocator::_STLP_TEMPLATE rebind<_Tp> _Rebind_type;
- typedef typename _Rebind_type::other allocator_type;
- static allocator_type create_allocator(const _Orig& __a)
- { return allocator_type(_STLP_CONVERT_ALLOCATOR(__a, _Tp)); }
-#else
- // this is not actually true, used only to pass this type through
- // to dynamic overload selection in _STLP_alloc_proxy methods
- typedef _Allocator allocator_type;
-#endif
-};
-
-#if defined (_STLP_USE_PERTHREAD_ALLOC)
-
-_STLP_END_NAMESPACE
-// include additional header here
-# include <stl/_pthread_alloc.h>
-_STLP_BEGIN_NAMESPACE
-
-typedef __pthread_alloc __alloc_type;
-#elif defined (_STLP_USE_NEWALLOC)
-typedef __new_alloc __alloc_type;
-#elif defined (_STLP_USE_MALLOC)
-typedef __malloc_alloc __alloc_type;
-#else
-typedef __node_alloc __alloc_type;
-#endif
-
-#if defined (_STLP_DEBUG_ALLOC)
-typedef __debug_alloc<__alloc_type> __sgi_alloc;
-#else
-typedef __alloc_type __sgi_alloc;
-#endif
-
-#if !defined (_STLP_NO_ANACHRONISMS)
-typedef __sgi_alloc __single_client_alloc;
-typedef __sgi_alloc __multithreaded_alloc;
-#endif
-
-// This implements allocators as specified in the C++ standard.
-//
-// Note that standard-conforming allocators use many language features
-// that are not yet widely implemented. In particular, they rely on
-// member templates, partial specialization, partial ordering of function
-// templates, the typename keyword, and the use of the template keyword
-// to refer to a template member of a dependent type.
-
-/*
-template <class _Tp>
-struct _AllocatorAux {
- typedef _Tp* pointer;
- typedef const _Tp* const_pointer;
- typedef _Tp& reference;
- typedef const _Tp& const_reference;
-
- pointer address(reference __x) const {return &__x;}
- const_pointer address(const_reference __x) const { return &__x; }
-};
-
-template <class _Tp>
-struct _AllocatorAux<const _Tp> {
- typedef _Tp* pointer;
- typedef const _Tp* const_pointer;
- typedef _Tp& reference;
- typedef const _Tp& const_reference;
-
- const_pointer address(const_reference __x) const { return &__x; }
-};
-*/
-
-template <class _Tp>
-class allocator //: public _AllocatorAux<_Tp>
-/* A small helper struct to recognize STLport allocator implementation
- * from any user specialization one.
- */
- : public __stlport_class<allocator<_Tp> >
-{
-public:
- typedef _Tp value_type;
- typedef _Tp* pointer;
- typedef const _Tp* const_pointer;
- typedef _Tp& reference;
- typedef const _Tp& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-#if defined (_STLP_MEMBER_TEMPLATE_CLASSES)
- template <class _Tp1> struct rebind {
- typedef allocator<_Tp1> other;
- };
-#endif
- allocator() _STLP_NOTHROW {}
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Tp1> allocator(const allocator<_Tp1>&) _STLP_NOTHROW {}
-#endif
- allocator(const allocator<_Tp>&) _STLP_NOTHROW {}
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- allocator(__move_source<allocator<_Tp> > src) _STLP_NOTHROW {}
-#endif
- ~allocator() _STLP_NOTHROW {}
- pointer address(reference __x) const {return &__x;}
- const_pointer address(const_reference __x) const { return &__x; }
- // __n is permitted to be 0. The C++ standard says nothing about what the return value is when __n == 0.
- _Tp* allocate(size_type __n, const void* = 0) {
- if (__n > max_size()) {
- _STLP_THROW_BAD_ALLOC;
- }
- if (__n != 0) {
- size_type __buf_size = __n * sizeof(value_type);
- _Tp* __ret = __REINTERPRET_CAST(_Tp*, __sgi_alloc::allocate(__buf_size));
-#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC)
- memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size);
-#endif
- return __ret;
- }
-
- return 0;
- }
- // __p is permitted to be a null pointer, only if n==0.
- void deallocate(pointer __p, size_type __n) {
- _STLP_ASSERT( (__p == 0) == (__n == 0) )
- if (__p != 0) {
-#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC)
- memset((char*)__p, _STLP_SHRED_BYTE, __n * sizeof(value_type));
-#endif
- __sgi_alloc::deallocate((void*)__p, __n * sizeof(value_type));
- }
- }
-#if !defined (_STLP_NO_ANACHRONISMS)
- // backwards compatibility
- void deallocate(pointer __p) const { if (__p != 0) __sgi_alloc::deallocate((void*)__p, sizeof(value_type)); }
-#endif
- size_type max_size() const _STLP_NOTHROW { return size_t(-1) / sizeof(value_type); }
- void construct(pointer __p, const_reference __val) { _STLP_STD::_Copy_Construct(__p, __val); }
- void destroy(pointer __p) { _STLP_STD::_Destroy(__p); }
-
-#if defined (_STLP_NO_EXTENSIONS)
- /* STLport extension giving rounded size of an allocated memory buffer
- * This method do not have to be part of a user defined allocator implementation
- * and won't even be called if such a function was granted.
- */
-protected:
-#endif
- _Tp* _M_allocate(size_type __n, size_type& __allocated_n) {
- if (__n > max_size()) {
- _STLP_THROW_BAD_ALLOC;
- }
-
- if (__n != 0) {
- size_type __buf_size = __n * sizeof(value_type);
- _Tp* __ret = __REINTERPRET_CAST(_Tp*, __sgi_alloc::allocate(__buf_size));
-#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC)
- memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size);
-#endif
- __allocated_n = __buf_size / sizeof(value_type);
- return __ret;
- }
-
- return 0;
- }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(allocator<_Tp>& __other) {}
-#endif
-};
-
-_STLP_TEMPLATE_NULL
-class _STLP_CLASS_DECLSPEC allocator<void> {
-public:
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef void* pointer;
- typedef const void* const_pointer;
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
- typedef void value_type;
-#endif
-#if defined (_STLP_MEMBER_TEMPLATE_CLASSES)
- template <class _Tp1> struct rebind {
- typedef allocator<_Tp1> other;
- };
-#endif
-};
-
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator==(const allocator<_T1>&, const allocator<_T2>&) _STLP_NOTHROW
-{ return true; }
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator!=(const allocator<_T1>&, const allocator<_T2>&) _STLP_NOTHROW
-{ return false; }
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS allocator<char>;
-# if defined (_STLP_HAS_WCHAR_T)
-_STLP_EXPORT_TEMPLATE_CLASS allocator<wchar_t>;
-# endif
-# if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-_STLP_EXPORT_TEMPLATE_CLASS allocator<void*>;
-# endif
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp>
-struct __alloc_type_traits {
-#if !defined (__BORLANDC__)
- typedef typename _IsSTLportClass<allocator<_Tp> >::_Ret _STLportAlloc;
-#else
- enum { _Is = _IsSTLportClass<allocator<_Tp> >::_Is };
- typedef typename __bool2type<_Is>::_Ret _STLportAlloc;
-#endif
- //The default allocator implementation which is recognize thanks to the
- //__stlport_class inheritance is a stateless object so:
- typedef _STLportAlloc has_trivial_default_constructor;
- typedef _STLportAlloc has_trivial_copy_constructor;
- typedef _STLportAlloc has_trivial_assignment_operator;
- typedef _STLportAlloc has_trivial_destructor;
- typedef _STLportAlloc is_POD_type;
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _Tp>
-struct __type_traits<allocator<_Tp> > : _STLP_PRIV __alloc_type_traits<_Tp> {};
-#else
-_STLP_TEMPLATE_NULL
-struct __type_traits<allocator<char> > : _STLP_PRIV __alloc_type_traits<char> {};
-# if defined (_STLP_HAS_WCHAR_T)
-_STLP_TEMPLATE_NULL
-struct __type_traits<allocator<wchar_t> > : _STLP_PRIV __alloc_type_traits<wchar_t> {};
-# endif
-# if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-_STLP_TEMPLATE_NULL
-struct __type_traits<allocator<void*> > : _STLP_PRIV __alloc_type_traits<void*> {};
-# endif
-#endif
-
-
-#if !defined (_STLP_FORCE_ALLOCATORS)
-# define _STLP_FORCE_ALLOCATORS(a,y)
-#endif
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_MEMBER_TEMPLATE_CLASSES)
-// The version for the default allocator, for rare occasion when we have partial spec w/o member template classes
-template <class _Tp, class _Tp1>
-struct _Alloc_traits<_Tp, allocator<_Tp1> > {
- typedef allocator<_Tp1> _Orig;
- typedef allocator<_Tp> allocator_type;
- static allocator_type create_allocator(const allocator<_Tp1 >& __a)
- { return allocator_type(_STLP_CONVERT_ALLOCATOR(__a, _Tp)); }
-};
-#endif
-
-#if !defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) && defined (_STLP_MEMBER_TEMPLATES)
-template <class _Tp, class _Alloc>
-inline _STLP_TYPENAME_ON_RETURN_TYPE _Alloc_traits<_Tp, _Alloc>::allocator_type _STLP_CALL
-__stl_alloc_create(const _Alloc& __a, const _Tp*) {
- typedef typename _Alloc::_STLP_TEMPLATE rebind<_Tp>::other _Rebound_type;
- return _Rebound_type(__a);
-}
-#else
-// If custom allocators are being used without member template classes support :
-// user (on purpose) is forced to define rebind/get operations !!!
-template <class _Tp1, class _Tp2>
-inline allocator<_Tp2>& _STLP_CALL
-__stl_alloc_rebind(allocator<_Tp1>& __a, const _Tp2*) { return (allocator<_Tp2>&)(__a); }
-template <class _Tp1, class _Tp2>
-inline allocator<_Tp2> _STLP_CALL
-__stl_alloc_create(const allocator<_Tp1>&, const _Tp2*) { return allocator<_Tp2>(); }
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// inheritance is being used for EBO optimization
-template <class _Value, class _Tp, class _MaybeReboundAlloc>
-class _STLP_alloc_proxy : public _MaybeReboundAlloc {
-private:
- typedef _MaybeReboundAlloc _Base;
- typedef typename _Base::size_type size_type;
- typedef _STLP_alloc_proxy<_Value, _Tp, _MaybeReboundAlloc> _Self;
-public:
- _Value _M_data;
-
- _STLP_alloc_proxy (const _MaybeReboundAlloc& __a, _Value __p) :
- _MaybeReboundAlloc(__a), _M_data(__p) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _STLP_alloc_proxy (__move_source<_Self> src) :
- _Base(_STLP_PRIV _AsMoveSource(src.get()._M_base())),
- _M_data(_STLP_PRIV _AsMoveSource(src.get()._M_data)) {}
-
- _Base& _M_base()
- { return *this; }
-#endif
-
-private:
- /* Following are helper methods to detect stateless allocators and avoid
- * swap in this case. For some compilers (VC6) it is a workaround for a
- * compiler bug in the Empty Base class Optimization feature, for others
- * it is a small optimization or nothing if no EBO. */
- void _M_swap_alloc(_Self&, const __true_type& /*_IsStateless*/)
- {}
-
- void _M_swap_alloc(_Self& __x, const __false_type& /*_IsStateless*/) {
- _MaybeReboundAlloc &__base_this = *this;
- _MaybeReboundAlloc &__base_x = __x;
- _STLP_STD::swap(__base_this, __base_x);
- }
-
-public:
- void _M_swap_alloc(_Self& __x) {
-#if !defined (__BORLANDC__)
- typedef typename _IsStateless<_MaybeReboundAlloc>::_Ret _StatelessAlloc;
-#else
- typedef typename __bool2type<_IsStateless<_MaybeReboundAlloc>::_Is>::_Ret _StatelessAlloc;
-#endif
- _M_swap_alloc(__x, _StatelessAlloc());
- }
-
- /* We need to define the following swap implementation for allocator with state
- * as those allocators might have implement a special swap function to correctly
- * move datas from an instance to the oher, _STLP_alloc_proxy should not break
- * this mecanism. */
- void swap(_Self& __x) {
- _M_swap_alloc(__x);
- _STLP_STD::swap(_M_data, __x._M_data);
- }
-
- _Tp* allocate(size_type __n, size_type& __allocated_n) {
-#if !defined (__BORLANDC__)
- typedef typename _IsSTLportClass<_MaybeReboundAlloc>::_Ret _STLportAlloc;
-#else
- typedef typename __bool2type<_IsSTLportClass<_MaybeReboundAlloc>::_Is>::_Ret _STLportAlloc;
-#endif
- return allocate(__n, __allocated_n, _STLportAlloc());
- }
-
- // Unified interface to perform allocate()/deallocate() with limited
- // language support
-#if defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
- // else it is rebound already, and allocate() member is accessible
- _Tp* allocate(size_type __n)
- { return __stl_alloc_rebind(__STATIC_CAST(_Base&, *this), __STATIC_CAST(_Tp*, 0)).allocate(__n, 0); }
- void deallocate(_Tp* __p, size_type __n)
- { __stl_alloc_rebind(__STATIC_CAST(_Base&, *this), __STATIC_CAST(_Tp*, 0)).deallocate(__p, __n); }
-private:
- _Tp* allocate(size_type __n, size_type& __allocated_n, const __true_type& /*STLport allocator*/)
- { return __stl_alloc_rebind(__STATIC_CAST(_Base&, *this), __STATIC_CAST(_Tp*, 0))._M_allocate(__n, __allocated_n); }
-#else
- //Expose Standard allocate overload (using expression do not work for some compilers (Borland))
- _Tp* allocate(size_type __n)
- { return _Base::allocate(__n); }
-private:
- _Tp* allocate(size_type __n, size_type& __allocated_n, const __true_type& /*STLport allocator*/)
- { return _Base::_M_allocate(__n, __allocated_n); }
-#endif
-
- _Tp* allocate(size_type __n, size_type& __allocated_n, const __false_type& /*STLport allocator*/)
- { __allocated_n = __n; return allocate(__n); }
-};
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<char*, char, allocator<char> >;
-# if defined (_STLP_HAS_WCHAR_T)
-_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<wchar_t*, wchar_t, allocator<wchar_t> >;
-# endif
-# if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<void**, void*, allocator<void*> >;
-# endif
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-_STLP_END_NAMESPACE
-
-#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_alloc.c>
-#endif
-
-#endif /* _STLP_INTERNAL_ALLOC_H */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/stl/_auto_ptr.h b/stlport/stlport/stl/_auto_ptr.h
deleted file mode 100644
index c750534..0000000
--- a/stlport/stlport/stl/_auto_ptr.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_AUTO_PTR_H
-#define _STLP_AUTO_PTR_H
-
-_STLP_BEGIN_NAMESPACE
-// implementation primitive
-class __ptr_base {
-public:
- void* _M_p;
- void __set(const volatile void* p) { _M_p = __CONST_CAST(void*,p); }
- void __set(void* p) { _M_p = p; }
-};
-
-template <class _Tp>
-class auto_ptr_ref {
-public:
- __ptr_base& _M_r;
- _Tp* const _M_p;
-
- auto_ptr_ref(__ptr_base& __r, _Tp* __p) : _M_r(__r), _M_p(__p) { }
-
- _Tp* release() const { _M_r.__set(__STATIC_CAST(void*, 0)); return _M_p; }
-
-private:
- //explicitely defined as private to avoid warnings:
- typedef auto_ptr_ref<_Tp> _Self;
- _Self& operator = (_Self const&);
-};
-
-template<class _Tp>
-class auto_ptr : public __ptr_base {
-public:
- typedef _Tp element_type;
- typedef auto_ptr<_Tp> _Self;
-
- _Tp* release() _STLP_NOTHROW {
- _Tp* __px = this->get();
- this->_M_p = 0;
- return __px;
- }
-
- void reset(_Tp* __px = 0) _STLP_NOTHROW {
- _Tp* __pt = this->get();
- if (__px != __pt)
- delete __pt;
- this->__set(__px);
- }
-
- _Tp* get() const _STLP_NOTHROW
-#if !defined (__GNUC__) || (__GNUC__ > 2)
- { return __STATIC_CAST(_Tp*, _M_p); }
-#else
- { return __REINTERPRET_CAST(_Tp*, _M_p); }
-#endif
-
-#if !defined (_STLP_NO_ARROW_OPERATOR)
- _Tp* operator->() const _STLP_NOTHROW {
- _STLP_VERBOSE_ASSERT(get() != 0, _StlMsg_AUTO_PTR_NULL)
- return get();
- }
-#endif
- _Tp& operator*() const _STLP_NOTHROW {
- _STLP_VERBOSE_ASSERT(get() != 0, _StlMsg_AUTO_PTR_NULL)
- return *get();
- }
-
- explicit auto_ptr(_Tp* __px = 0) _STLP_NOTHROW { this->__set(__px); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-# if !defined (_STLP_NO_TEMPLATE_CONVERSIONS)
- template<class _Tp1> auto_ptr(auto_ptr<_Tp1>& __r) _STLP_NOTHROW {
- _Tp* __conversionCheck = __r.release();
- this->__set(__conversionCheck);
- }
-# endif
- template<class _Tp1> auto_ptr<_Tp>& operator=(auto_ptr<_Tp1>& __r) _STLP_NOTHROW {
- _Tp* __conversionCheck = __r.release();
- reset(__conversionCheck);
- return *this;
- }
-#endif
-
- auto_ptr(_Self& __r) _STLP_NOTHROW { this->__set(__r.release()); }
-
- _Self& operator=(_Self& __r) _STLP_NOTHROW {
- reset(__r.release());
- return *this;
- }
-
- ~auto_ptr() _STLP_NOTHROW { /* boris : reset(0) might be better */ delete this->get(); }
-
- auto_ptr(auto_ptr_ref<_Tp> __r) _STLP_NOTHROW
- { this->__set(__r.release()); }
-
- _Self& operator=(auto_ptr_ref<_Tp> __r) _STLP_NOTHROW {
- reset(__r.release());
- return *this;
- }
-
-#if defined(_STLP_MEMBER_TEMPLATES) && !defined(_STLP_NO_TEMPLATE_CONVERSIONS)
- template<class _Tp1> operator auto_ptr_ref<_Tp1>() _STLP_NOTHROW
- { return auto_ptr_ref<_Tp1>(*this, this->get()); }
- template<class _Tp1> operator auto_ptr<_Tp1>() _STLP_NOTHROW
- { return auto_ptr<_Tp1>(release()); }
-#else
- operator auto_ptr_ref<_Tp>() _STLP_NOTHROW
- { return auto_ptr_ref<_Tp>(*this, this->get()); }
-#endif
-};
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_AUTO_PTR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_bitset.c b/stlport/stlport/stl/_bitset.c
deleted file mode 100644
index 82b9312..0000000
--- a/stlport/stlport/stl/_bitset.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_BITSET_C
-#define _STLP_BITSET_C
-
-#ifndef _STLP_BITSET_H
-# include <stl/_bitset.h>
-#endif
-
-#define __BITS_PER_WORD (CHAR_BIT * sizeof(unsigned long))
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-//
-// Definitions of non-inline functions from _Base_bitset.
-//
-template<size_t _Nw>
-void _Base_bitset<_Nw>::_M_do_left_shift(size_t __shift) {
- if (__shift != 0) {
- const size_t __wshift = __shift / __BITS_PER_WORD;
- const size_t __offset = __shift % __BITS_PER_WORD;
-
- if (__offset == 0)
- for (size_t __n = _Nw - 1; __n >= __wshift; --__n)
- _M_w[__n] = _M_w[__n - __wshift];
-
- else {
- const size_t __sub_offset = __BITS_PER_WORD - __offset;
- for (size_t __n = _Nw - 1; __n > __wshift; --__n)
- _M_w[__n] = (_M_w[__n - __wshift] << __offset) |
- (_M_w[__n - __wshift - 1] >> __sub_offset);
- _M_w[__wshift] = _M_w[0] << __offset;
- }
-
- fill(_M_w + 0, _M_w + __wshift, __STATIC_CAST(_WordT,0));
- }
-}
-
-template<size_t _Nw>
-void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift) {
- if (__shift != 0) {
- const size_t __wshift = __shift / __BITS_PER_WORD;
- const size_t __offset = __shift % __BITS_PER_WORD;
- const size_t __limit = _Nw - __wshift - 1;
-
- if (__offset == 0)
- for (size_t __n = 0; __n <= __limit; ++__n)
- _M_w[__n] = _M_w[__n + __wshift];
-
- else {
- const size_t __sub_offset = __BITS_PER_WORD - __offset;
- for (size_t __n = 0; __n < __limit; ++__n)
- _M_w[__n] = (_M_w[__n + __wshift] >> __offset) |
- (_M_w[__n + __wshift + 1] << __sub_offset);
- _M_w[__limit] = _M_w[_Nw-1] >> __offset;
- }
-
- fill(_M_w + __limit + 1, _M_w + _Nw, __STATIC_CAST(_WordT,0));
- }
-}
-
-template<size_t _Nw>
-unsigned long _Base_bitset<_Nw>::_M_do_to_ulong() const {
- for (size_t __i = 1; __i < _Nw; ++__i)
- if (_M_w[__i])
- __stl_throw_overflow_error("bitset");
- return _M_w[0];
-} // End _M_do_to_ulong
-
-template<size_t _Nw>
-size_t _Base_bitset<_Nw>::_M_do_find_first(size_t __not_found) const {
- for ( size_t __i = 0; __i < _Nw; __i++ ) {
- _WordT __thisword = _M_w[__i];
- if ( __thisword != __STATIC_CAST(_WordT,0) ) {
- // find byte within word
- for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
- unsigned char __this_byte
- = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0)));
- if ( __this_byte )
- return __i*__BITS_PER_WORD + __j*CHAR_BIT +
- _Bs_G::_S_first_one(__this_byte);
-
- __thisword >>= CHAR_BIT;
- }
- }
- }
- // not found, so return an indication of failure.
- return __not_found;
-}
-
-template<size_t _Nw>
-size_t
-_Base_bitset<_Nw>::_M_do_find_next(size_t __prev,
- size_t __not_found) const {
- // make bound inclusive
- ++__prev;
-
- // check out of bounds
- if ( __prev >= _Nw * __BITS_PER_WORD )
- return __not_found;
-
- // search first word
- size_t __i = _S_whichword(__prev);
- _WordT __thisword = _M_w[__i];
-
- // mask off bits below bound
- __thisword &= (~__STATIC_CAST(_WordT,0)) << _S_whichbit(__prev);
-
- if ( __thisword != __STATIC_CAST(_WordT,0) ) {
- // find byte within word
- // get first byte into place
- __thisword >>= _S_whichbyte(__prev) * CHAR_BIT;
- for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); ++__j ) {
- unsigned char __this_byte
- = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0)));
- if ( __this_byte )
- return __i*__BITS_PER_WORD + __j*CHAR_BIT +
- _Bs_G::_S_first_one(__this_byte);
-
- __thisword >>= CHAR_BIT;
- }
- }
-
- // check subsequent words
- ++__i;
- for ( ; __i < _Nw; ++__i ) {
- /* _WordT */ __thisword = _M_w[__i];
- if ( __thisword != __STATIC_CAST(_WordT,0) ) {
- // find byte within word
- for ( size_t __j = 0; __j < sizeof(_WordT); ++__j ) {
- unsigned char __this_byte
- = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0)));
- if ( __this_byte )
- return __i*__BITS_PER_WORD + __j*CHAR_BIT +
- _Bs_G::_S_first_one(__this_byte);
-
- __thisword >>= CHAR_BIT;
- }
- }
- }
-
- // not found, so return an indication of failure.
- return __not_found;
-} // end _M_do_find_next
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#if !defined (_STLP_NON_TYPE_TMPL_PARAM_BUG)
-
-# if !defined (_STLP_USE_NO_IOSTREAMS)
-
-_STLP_END_NAMESPACE
-
-#ifndef _STLP_STRING_IO_H
-# include <stl/_string_io.h> //includes _istream.h and _ostream.h
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _CharT, class _Traits, size_t _Nb>
-basic_istream<_CharT, _Traits>& _STLP_CALL
-operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Nb>& __x) {
- basic_string<_CharT, _Traits> __tmp;
- __tmp.reserve(_Nb);
-
- // Skip whitespace
- typename basic_istream<_CharT, _Traits>::sentry __sentry(__is);
- if (__sentry) {
- basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf();
- for (size_t __i = 0; __i < _Nb; ++__i) {
- static typename _Traits::int_type __eof = _Traits::eof();
-
- typename _Traits::int_type __c1 = __buf->sbumpc();
- if (_Traits::eq_int_type(__c1, __eof)) {
- __is.setstate(ios_base::eofbit);
- break;
- }
- else {
- typename _Traits::char_type __c2 = _Traits::to_char_type(__c1);
- char __c = __is.narrow(__c2, '*');
-
- if (__c == '0' || __c == '1')
- __tmp.push_back(__c);
- else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) {
- __is.setstate(ios_base::failbit);
- break;
- }
- }
- }
-
- if (__tmp.empty())
- __is.setstate(ios_base::failbit);
- else
- __x._M_copy_from_string(__tmp, __STATIC_CAST(size_t,0), _Nb);
- }
-
- return __is;
-}
-
-template <class _CharT, class _Traits, size_t _Nb>
-basic_ostream<_CharT, _Traits>& _STLP_CALL
-operator<<(basic_ostream<_CharT, _Traits>& __os,
- const bitset<_Nb>& __x) {
- basic_string<_CharT, _Traits> __tmp;
- __x._M_copy_to_string(__tmp);
- return __os << __tmp;
-}
-
-# endif /* !_STLP_USE_NO_IOSTREAMS */
-
-#endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */
-
-_STLP_END_NAMESPACE
-
-#undef __BITS_PER_WORD
-#undef bitset
-
-#endif /* _STLP_BITSET_C */
diff --git a/stlport/stlport/stl/_bitset.h b/stlport/stlport/stl/_bitset.h
deleted file mode 100644
index f894346..0000000
--- a/stlport/stlport/stl/_bitset.h
+++ /dev/null
@@ -1,880 +0,0 @@
-/*
- * Copyright (c) 1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_BITSET_H
-#define _STLP_BITSET_H
-
-// A bitset of size N has N % (sizeof(unsigned long) * CHAR_BIT) unused
-// bits. (They are the high- order bits in the highest word.) It is
-// a class invariant of class bitset<> that those unused bits are
-// always zero.
-
-// Most of the actual code isn't contained in bitset<> itself, but in the
-// base class _Base_bitset. The base class works with whole words, not with
-// individual bits. This allows us to specialize _Base_bitset for the
-// important special case where the bitset is only a single word.
-
-// The C++ standard does not define the precise semantics of operator[].
-// In this implementation the const version of operator[] is equivalent
-// to test(), except that it does no range checking. The non-const version
-// returns a reference to a bit, again without doing any range checking.
-
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_UNINITIALIZED_H
-# include <stl/_uninitialized.h>
-#endif
-
-#ifndef _STLP_RANGE_ERRORS_H
-# include <stl/_range_errors.h>
-#endif
-
-#ifndef _STLP_INTERNAL_STRING_H
-# include <stl/_string.h>
-#endif
-
-#define __BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long))
-#define __BITSET_WORDS(__n) ((__n + __BITS_PER_WORD - 1)/__BITS_PER_WORD)
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// structure to aid in counting bits
-class _STLP_CLASS_DECLSPEC _Bs_G
-{
- public:
- //returns the number of bit set within the buffer between __beg and __end.
- static size_t _S_count(const unsigned char *__beg, const unsigned char *__end)
-#if defined (_STLP_USE_NO_IOSTREAMS)
- {
- size_t __result = 0;
- for (; __beg != __end; ++__beg) {
- for (size_t i = 0; i < (sizeof(unsigned char) * 8); ++i) {
- if ((*__beg & (1 << i)) != 0) { ++__result; }
- }
- }
- return __result;
- }
-#else
- ;
-#endif
- // Mapping from 8 bit unsigned integers to the index of the first one bit set:
- static unsigned char _S_first_one(unsigned char __x)
-#if defined (_STLP_USE_NO_IOSTREAMS)
- {
- for (unsigned char i = 0; i < (sizeof(unsigned char) * 8); ++i) {
- if ((__x & (1 << i)) != 0) { return i; }
- }
- return 0;
- }
-#else
- ;
-#endif
-};
-
-//
-// Base class: general case.
-//
-
-template<size_t _Nw>
-struct _Base_bitset {
- typedef unsigned long _WordT;
-
- _WordT _M_w[_Nw]; // 0 is the least significant word.
-
- _Base_bitset() { _M_do_reset(); }
-
- _Base_bitset(unsigned long __val) {
- _M_do_reset();
- _M_w[0] = __val;
- }
-
- static size_t _STLP_CALL _S_whichword( size_t __pos ) {
- return __pos / __BITS_PER_WORD;
- }
- static size_t _STLP_CALL _S_whichbyte( size_t __pos ) {
- return (__pos % __BITS_PER_WORD) / CHAR_BIT;
- }
- static size_t _STLP_CALL _S_whichbit( size_t __pos ) {
- return __pos % __BITS_PER_WORD;
- }
- static _WordT _STLP_CALL _S_maskbit( size_t __pos ) {
- return __STATIC_CAST(_WordT,1) << _S_whichbit(__pos);
- }
-
- _WordT& _M_getword(size_t __pos) { return _M_w[_S_whichword(__pos)]; }
- _WordT _M_getword(size_t __pos) const { return _M_w[_S_whichword(__pos)]; }
-
- _WordT& _M_hiword() { return _M_w[_Nw - 1]; }
- _WordT _M_hiword() const { return _M_w[_Nw - 1]; }
-
- void _M_do_and(const _Base_bitset<_Nw>& __x) {
- for ( size_t __i = 0; __i < _Nw; __i++ ) {
- _M_w[__i] &= __x._M_w[__i];
- }
- }
-
- void _M_do_or(const _Base_bitset<_Nw>& __x) {
- for ( size_t __i = 0; __i < _Nw; __i++ ) {
- _M_w[__i] |= __x._M_w[__i];
- }
- }
-
- void _M_do_xor(const _Base_bitset<_Nw>& __x) {
- for ( size_t __i = 0; __i < _Nw; __i++ ) {
- _M_w[__i] ^= __x._M_w[__i];
- }
- }
-
- void _M_do_left_shift(size_t __shift);
-
- void _M_do_right_shift(size_t __shift);
-
- void _M_do_flip() {
- for ( size_t __i = 0; __i < _Nw; __i++ ) {
- _M_w[__i] = ~_M_w[__i];
- }
- }
-
- void _M_do_set() {
- for ( size_t __i = 0; __i < _Nw; __i++ ) {
- _M_w[__i] = ~__STATIC_CAST(_WordT,0);
- }
- }
-
- void _M_do_reset() { memset(_M_w, 0, _Nw * sizeof(_WordT)); }
-
- bool _M_is_equal(const _Base_bitset<_Nw>& __x) const {
- for (size_t __i = 0; __i < _Nw; ++__i) {
- if (_M_w[__i] != __x._M_w[__i])
- return false;
- }
- return true;
- }
-
- bool _M_is_any() const {
- for ( size_t __i = 0; __i < _Nw ; __i++ ) {
- if ( _M_w[__i] != __STATIC_CAST(_WordT,0) )
- return true;
- }
- return false;
- }
-
- size_t _M_do_count() const {
- const unsigned char* __byte_ptr = (const unsigned char*)_M_w;
- const unsigned char* __end_ptr = (const unsigned char*)(_M_w+_Nw);
-
- return _Bs_G::_S_count(__byte_ptr, __end_ptr);
- }
-
- unsigned long _M_do_to_ulong() const;
-
- // find first "on" bit
- size_t _M_do_find_first(size_t __not_found) const;
-
- // find the next "on" bit that follows "prev"
- size_t _M_do_find_next(size_t __prev, size_t __not_found) const;
-};
-
-//
-// Base class: specialization for a single word.
-//
-_STLP_TEMPLATE_NULL
-struct _Base_bitset<1UL> {
- typedef unsigned long _WordT;
- typedef _Base_bitset<1UL> _Self;
-
- _WordT _M_w;
-
- _Base_bitset( void ) : _M_w(0) {}
- _Base_bitset(unsigned long __val) : _M_w(__val) {}
-
- static size_t _STLP_CALL _S_whichword( size_t __pos ) {
- return __pos / __BITS_PER_WORD ;
- }
- static size_t _STLP_CALL _S_whichbyte( size_t __pos ) {
- return (__pos % __BITS_PER_WORD) / CHAR_BIT;
- }
- static size_t _STLP_CALL _S_whichbit( size_t __pos ) {
- return __pos % __BITS_PER_WORD;
- }
- static _WordT _STLP_CALL _S_maskbit( size_t __pos ) {
- return (__STATIC_CAST(_WordT,1)) << _S_whichbit(__pos);
- }
-
- _WordT& _M_getword(size_t) { return _M_w; }
- _WordT _M_getword(size_t) const { return _M_w; }
-
- _WordT& _M_hiword() { return _M_w; }
- _WordT _M_hiword() const { return _M_w; }
-
- void _M_do_and(const _Self& __x) { _M_w &= __x._M_w; }
- void _M_do_or(const _Self& __x) { _M_w |= __x._M_w; }
- void _M_do_xor(const _Self& __x) { _M_w ^= __x._M_w; }
- void _M_do_left_shift(size_t __shift) { _M_w <<= __shift; }
- void _M_do_right_shift(size_t __shift) { _M_w >>= __shift; }
- void _M_do_flip() { _M_w = ~_M_w; }
- void _M_do_set() { _M_w = ~__STATIC_CAST(_WordT,0); }
- void _M_do_reset() { _M_w = 0; }
-
- bool _M_is_equal(const _Self& __x) const {
- return _M_w == __x._M_w;
- }
- bool _M_is_any() const {
- return _M_w != 0;
- }
-
- size_t _M_do_count() const {
- const unsigned char* __byte_ptr = (const unsigned char*)&_M_w;
- const unsigned char* __end_ptr = ((const unsigned char*)&_M_w)+sizeof(_M_w);
- return _Bs_G::_S_count(__byte_ptr, __end_ptr);
- }
-
- unsigned long _M_do_to_ulong() const { return _M_w; }
-
- inline size_t _M_do_find_first(size_t __not_found) const;
-
- // find the next "on" bit that follows "prev"
- inline size_t _M_do_find_next(size_t __prev, size_t __not_found) const;
-};
-
-
-// ------------------------------------------------------------
-//
-// Definitions of should-be-non-inline functions from the single-word version of
-// _Base_bitset.
-//
-inline size_t
-_Base_bitset<1UL>::_M_do_find_first(size_t __not_found) const {
- // typedef unsigned long _WordT;
- _WordT __thisword = _M_w;
-
- if ( __thisword != __STATIC_CAST(_WordT,0) ) {
- // find byte within word
- for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
- unsigned char __this_byte
- = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0)));
- if ( __this_byte )
- return __j*CHAR_BIT + _Bs_G::_S_first_one(__this_byte);
-
- __thisword >>= CHAR_BIT;
- }
- }
- // not found, so return a value that indicates failure.
- return __not_found;
-}
-
-inline size_t
-_Base_bitset<1UL>::_M_do_find_next(size_t __prev,
- size_t __not_found ) const {
- // make bound inclusive
- ++__prev;
-
- // check out of bounds
- if ( __prev >= __BITS_PER_WORD )
- return __not_found;
-
- // search first (and only) word
- _WordT __thisword = _M_w;
-
- // mask off bits below bound
- __thisword &= (~__STATIC_CAST(_WordT,0)) << _S_whichbit(__prev);
-
- if ( __thisword != __STATIC_CAST(_WordT,0) ) {
- // find byte within word
- // get first byte into place
- __thisword >>= _S_whichbyte(__prev) * CHAR_BIT;
- for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) {
- unsigned char __this_byte
- = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0)));
- if ( __this_byte )
- return __j*CHAR_BIT + _Bs_G::_S_first_one(__this_byte);
-
- __thisword >>= CHAR_BIT;
- }
- }
-
- // not found, so return a value that indicates failure.
- return __not_found;
-} // end _M_do_find_next
-
-
-// ------------------------------------------------------------
-// Helper class to zero out the unused high-order bits in the highest word.
-
-template <size_t _Extrabits> struct _Sanitize {
- static void _STLP_CALL _M_do_sanitize(unsigned long& __val)
- { __val &= ~((~__STATIC_CAST(unsigned long,0)) << _Extrabits); }
-};
-
-_STLP_TEMPLATE_NULL struct _Sanitize<0UL> {
- static void _STLP_CALL _M_do_sanitize(unsigned long) {}
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-// ------------------------------------------------------------
-// Class bitset.
-// _Nb may be any nonzero number of type size_t.
-template<size_t _Nb>
-class bitset : public _STLP_PRIV _Base_bitset<__BITSET_WORDS(_Nb) > {
-public:
- enum { _Words = __BITSET_WORDS(_Nb) } ;
-
-private:
- typedef _STLP_PRIV _Base_bitset< _Words > _Base;
-
- void _M_do_sanitize() {
- _STLP_PRIV _Sanitize<_Nb%__BITS_PER_WORD >::_M_do_sanitize(this->_M_hiword());
- }
-public:
- typedef unsigned long _WordT;
- struct reference;
- friend struct reference;
-
- // bit reference:
- struct reference {
- typedef _STLP_PRIV _Base_bitset<_Words > _Bitset_base;
- typedef bitset<_Nb> _Bitset;
- // friend _Bitset;
- _WordT *_M_wp;
- size_t _M_bpos;
-
- // should be left undefined
- reference() {}
-
- reference( _Bitset& __b, size_t __pos ) {
- _M_wp = &__b._M_getword(__pos);
- _M_bpos = _Bitset_base::_S_whichbit(__pos);
- }
-
- public:
- ~reference() {}
-
- // for b[i] = __x;
- reference& operator=(bool __x) {
- if ( __x )
- *_M_wp |= _Bitset_base::_S_maskbit(_M_bpos);
- else
- *_M_wp &= ~_Bitset_base::_S_maskbit(_M_bpos);
-
- return *this;
- }
-
- // for b[i] = b[__j];
- reference& operator=(const reference& __j) {
- if ( (*(__j._M_wp) & _Bitset_base::_S_maskbit(__j._M_bpos)) )
- *_M_wp |= _Bitset_base::_S_maskbit(_M_bpos);
- else
- *_M_wp &= ~_Bitset_base::_S_maskbit(_M_bpos);
-
- return *this;
- }
-
- // flips the bit
- bool operator~() const { return (*(_M_wp) & _Bitset_base::_S_maskbit(_M_bpos)) == 0; }
-
- // for __x = b[i];
- operator bool() const { return (*(_M_wp) & _Bitset_base::_S_maskbit(_M_bpos)) != 0; }
-
- // for b[i].flip();
- reference& flip() {
- *_M_wp ^= _Bitset_base::_S_maskbit(_M_bpos);
- return *this;
- }
- };
-
- // 23.3.5.1 constructors:
- bitset() {}
-
- bitset(unsigned long __val) : _STLP_PRIV _Base_bitset<_Words>(__val) { _M_do_sanitize(); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template<class _CharT, class _Traits, class _Alloc>
- explicit bitset(const basic_string<_CharT,_Traits,_Alloc>& __s,
- size_t __pos = 0)
- : _STLP_PRIV _Base_bitset<_Words >() {
- if (__pos > __s.size())
- __stl_throw_out_of_range("bitset");
- _M_copy_from_string(__s, __pos,
- basic_string<_CharT, _Traits, _Alloc>::npos);
- }
- template<class _CharT, class _Traits, class _Alloc>
- bitset(const basic_string<_CharT, _Traits, _Alloc>& __s,
- size_t __pos,
- size_t __n)
- : _STLP_PRIV _Base_bitset<_Words >() {
- if (__pos > __s.size())
- __stl_throw_out_of_range("bitset");
- _M_copy_from_string(__s, __pos, __n);
- }
-#else /* _STLP_MEMBER_TEMPLATES */
- explicit bitset(const string& __s,
- size_t __pos = 0,
- size_t __n = (size_t)-1)
- : _STLP_PRIV _Base_bitset<_Words >() {
- if (__pos > __s.size())
- __stl_throw_out_of_range("bitset");
- _M_copy_from_string(__s, __pos, __n);
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- // 23.3.5.2 bitset operations:
- bitset<_Nb>& operator&=(const bitset<_Nb>& __rhs) {
- this->_M_do_and(__rhs);
- return *this;
- }
-
- bitset<_Nb>& operator|=(const bitset<_Nb>& __rhs) {
- this->_M_do_or(__rhs);
- return *this;
- }
-
- bitset<_Nb>& operator^=(const bitset<_Nb>& __rhs) {
- this->_M_do_xor(__rhs);
- return *this;
- }
-
- bitset<_Nb>& operator<<=(size_t __pos) {
- this->_M_do_left_shift(__pos);
- this->_M_do_sanitize();
- return *this;
- }
-
- bitset<_Nb>& operator>>=(size_t __pos) {
- this->_M_do_right_shift(__pos);
- this->_M_do_sanitize();
- return *this;
- }
-
- //
- // Extension:
- // Versions of single-bit set, reset, flip, test with no range checking.
- //
-
- bitset<_Nb>& _Unchecked_set(size_t __pos) {
- this->_M_getword(__pos) |= _STLP_PRIV _Base_bitset<_Words > ::_S_maskbit(__pos);
- return *this;
- }
-
- bitset<_Nb>& _Unchecked_set(size_t __pos, int __val) {
- if (__val)
- this->_M_getword(__pos) |= this->_S_maskbit(__pos);
- else
- this->_M_getword(__pos) &= ~ this->_S_maskbit(__pos);
-
- return *this;
- }
-
- bitset<_Nb>& _Unchecked_reset(size_t __pos) {
- this->_M_getword(__pos) &= ~ this->_S_maskbit(__pos);
- return *this;
- }
-
- bitset<_Nb>& _Unchecked_flip(size_t __pos) {
- this->_M_getword(__pos) ^= this->_S_maskbit(__pos);
- return *this;
- }
-
- bool _Unchecked_test(size_t __pos) const {
- return (this->_M_getword(__pos) & this->_S_maskbit(__pos)) != __STATIC_CAST(_WordT,0);
- }
-
- // Set, reset, and flip.
-
- bitset<_Nb>& set() {
- this->_M_do_set();
- this->_M_do_sanitize();
- return *this;
- }
-
- bitset<_Nb>& set(size_t __pos) {
- if (__pos >= _Nb)
- __stl_throw_out_of_range("bitset");
- return _Unchecked_set(__pos);
- }
-
- bitset<_Nb>& set(size_t __pos, int __val) {
- if (__pos >= _Nb)
- __stl_throw_out_of_range("bitset");
- return _Unchecked_set(__pos, __val);
- }
-
- bitset<_Nb>& reset() {
- this->_M_do_reset();
- return *this;
- }
-
- bitset<_Nb>& reset(size_t __pos) {
- if (__pos >= _Nb)
- __stl_throw_out_of_range("bitset");
-
- return _Unchecked_reset(__pos);
- }
-
- bitset<_Nb>& flip() {
- this->_M_do_flip();
- this->_M_do_sanitize();
- return *this;
- }
-
- bitset<_Nb>& flip(size_t __pos) {
- if (__pos >= _Nb)
- __stl_throw_out_of_range("bitset");
-
- return _Unchecked_flip(__pos);
- }
-
- bitset<_Nb> operator~() const {
- return bitset<_Nb>(*this).flip();
- }
-
- // element access:
- //for b[i];
- reference operator[](size_t __pos) { return reference(*this,__pos); }
- bool operator[](size_t __pos) const { return _Unchecked_test(__pos); }
-
- unsigned long to_ulong() const { return this->_M_do_to_ulong(); }
-
-#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
- template <class _CharT, class _Traits, class _Alloc>
- basic_string<_CharT, _Traits, _Alloc> to_string() const {
- basic_string<_CharT, _Traits, _Alloc> __result;
- _M_copy_to_string(__result);
- return __result;
- }
-#else
- string to_string() const {
- string __result;
- _M_copy_to_string(__result);
- return __result;
- }
-#endif /* _STLP_EXPLICIT_FUNCTION_TMPL_ARGS */
-
- size_t count() const { return this->_M_do_count(); }
-
- size_t size() const { return _Nb; }
-
- bool operator==(const bitset<_Nb>& __rhs) const {
- return this->_M_is_equal(__rhs);
- }
- bool operator!=(const bitset<_Nb>& __rhs) const {
- return !this->_M_is_equal(__rhs);
- }
-
- bool test(size_t __pos) const {
- if (__pos >= _Nb)
- __stl_throw_out_of_range("bitset");
-
- return _Unchecked_test(__pos);
- }
-
- bool any() const { return this->_M_is_any(); }
- bool none() const { return !this->_M_is_any(); }
-
- bitset<_Nb> operator<<(size_t __pos) const {
- bitset<_Nb> __result(*this);
- __result <<= __pos ; return __result;
- }
- bitset<_Nb> operator>>(size_t __pos) const {
- bitset<_Nb> __result(*this);
- __result >>= __pos ; return __result;
- }
-
-#if !defined (_STLP_NO_EXTENSIONS)
- //
- // EXTENSIONS: bit-find operations. These operations are
- // experimental, and are subject to change or removal in future
- // versions.
- //
-
- // find the index of the first "on" bit
- size_t _Find_first() const
- { return this->_M_do_find_first(_Nb); }
-
- // find the index of the next "on" bit after prev
- size_t _Find_next( size_t __prev ) const
- { return this->_M_do_find_next(__prev, _Nb); }
-#endif
-
-//
-// Definitions of should-be non-inline member functions.
-//
-#if defined (_STLP_MEMBER_TEMPLATES)
- template<class _CharT, class _Traits, class _Alloc>
- void _M_copy_from_string(const basic_string<_CharT,_Traits,_Alloc>& __s,
- size_t __pos, size_t __n) {
-#else
- void _M_copy_from_string(const string& __s,
- size_t __pos, size_t __n) {
- typedef typename string::traits_type _Traits;
-#endif
- reset();
- size_t __tmp = _Nb;
- const size_t __Nbits = (min) (__tmp, (min) (__n, __s.size() - __pos));
- for ( size_t __i= 0; __i < __Nbits; ++__i) {
- typename _Traits::int_type __k = _Traits::to_int_type(__s[__pos + __Nbits - __i - 1]);
- // boris : widen() ?
- if (__k == '1')
- set(__i);
- else if (__k != '0')
- __stl_throw_invalid_argument("bitset");
- }
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _CharT, class _Traits, class _Alloc>
- void _M_copy_to_string(basic_string<_CharT, _Traits, _Alloc>& __s) const
-#else
- void _M_copy_to_string(string& __s) const
-#endif
- {
- __s.assign(_Nb, '0');
-
- for (size_t __i = 0; __i < _Nb; ++__i) {
- if (_Unchecked_test(__i))
- __s[_Nb - 1 - __i] = '1';
- }
- }
-
-#if !defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_WCHAR_T)
- void _M_copy_to_string(wstring& __s) const {
- __s.assign(_Nb, '0');
-
- for (size_t __i = 0; __i < _Nb; ++__i) {
- if (_Unchecked_test(__i))
- __s[_Nb - 1 - __i] = '1';
- }
- }
-#endif
-
-#if defined (_STLP_NON_TYPE_TMPL_PARAM_BUG)
- bitset<_Nb> operator&(const bitset<_Nb>& __y) const {
- bitset<_Nb> __result(*this);
- __result &= __y;
- return __result;
- }
- bitset<_Nb> operator|(const bitset<_Nb>& __y) const {
- bitset<_Nb> __result(*this);
- __result |= __y;
- return __result;
- }
- bitset<_Nb> operator^(const bitset<_Nb>& __y) const {
- bitset<_Nb> __result(*this);
- __result ^= __y;
- return __result;
- }
-#endif
-};
-
-// ------------------------------------------------------------
-//
-// 23.3.5.3 bitset operations:
-//
-#if ! defined (_STLP_NON_TYPE_TMPL_PARAM_BUG)
-template <size_t _Nb>
-inline bitset<_Nb> _STLP_CALL
-operator&(const bitset<_Nb>& __x,
- const bitset<_Nb>& __y) {
- bitset<_Nb> __result(__x);
- __result &= __y;
- return __result;
-}
-
-
-template <size_t _Nb>
-inline bitset<_Nb> _STLP_CALL
-operator|(const bitset<_Nb>& __x,
- const bitset<_Nb>& __y) {
- bitset<_Nb> __result(__x);
- __result |= __y;
- return __result;
-}
-
-template <size_t _Nb>
-inline bitset<_Nb> _STLP_CALL
-operator^(const bitset<_Nb>& __x,
- const bitset<_Nb>& __y) {
- bitset<_Nb> __result(__x);
- __result ^= __y;
- return __result;
-}
-
-#if !defined (_STLP_USE_NO_IOSTREAMS)
-
-_STLP_END_NAMESPACE
-
-# if !(defined (_STLP_MSVC) && (_STLP_MSVC < 1300)) && \
- !(defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x500))
-
-#ifndef _STLP_INTERNAL_IOSFWD
-# include <stl/_iosfwd.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _CharT, class _Traits, size_t _Nb>
-basic_istream<_CharT, _Traits>& _STLP_CALL
-operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Nb>& __x);
-
-template <class _CharT, class _Traits, size_t _Nb>
-basic_ostream<_CharT, _Traits>& _STLP_CALL
-operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Nb>& __x);
-
-# else
-
-#ifndef _STLP_STRING_IO_H
-# include <stl/_string_io.h> //includes _istream.h and _ostream.h
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <size_t _Nb>
-istream& _STLP_CALL
-operator>>(istream& __is, bitset<_Nb>& __x) {
- typedef typename string::traits_type _Traits;
- string __tmp;
- __tmp.reserve(_Nb);
-
- // Skip whitespace
- typename istream::sentry __sentry(__is);
- if (__sentry) {
- streambuf* __buf = __is.rdbuf();
- for (size_t __i = 0; __i < _Nb; ++__i) {
- static typename _Traits::int_type __eof = _Traits::eof();
-
- typename _Traits::int_type __c1 = __buf->sbumpc();
- if (_Traits::eq_int_type(__c1, __eof)) {
- __is.setstate(ios_base::eofbit);
- break;
- }
- else {
- typename _Traits::char_type __c2 = _Traits::to_char_type(__c1);
- char __c = __is.narrow(__c2, '*');
-
- if (__c == '0' || __c == '1')
- __tmp.push_back(__c);
- else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) {
- __is.setstate(ios_base::failbit);
- break;
- }
- }
- }
-
- if (__tmp.empty())
- __is.setstate(ios_base::failbit);
- else
- __x._M_copy_from_string(__tmp, __STATIC_CAST(size_t,0), _Nb);
- }
-
- return __is;
-}
-
-template <size_t _Nb>
-ostream& _STLP_CALL
-operator<<(ostream& __os, const bitset<_Nb>& __x) {
- string __tmp;
- __x._M_copy_to_string(__tmp);
- return __os << __tmp;
-}
-
-# if !defined (_STLP_NO_WCHAR_T)
-
-template <size_t _Nb>
-wistream& _STLP_CALL
-operator>>(wistream& __is, bitset<_Nb>& __x) {
- typedef typename wstring::traits_type _Traits;
- wstring __tmp;
- __tmp.reserve(_Nb);
-
- // Skip whitespace
- typename wistream::sentry __sentry(__is);
- if (__sentry) {
- wstreambuf* __buf = __is.rdbuf();
- for (size_t __i = 0; __i < _Nb; ++__i) {
- static typename _Traits::int_type __eof = _Traits::eof();
-
- typename _Traits::int_type __c1 = __buf->sbumpc();
- if (_Traits::eq_int_type(__c1, __eof)) {
- __is.setstate(ios_base::eofbit);
- break;
- }
- else {
- typename _Traits::char_type __c2 = _Traits::to_char_type(__c1);
- char __c = __is.narrow(__c2, '*');
-
- if (__c == '0' || __c == '1')
- __tmp.push_back(__c);
- else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) {
- __is.setstate(ios_base::failbit);
- break;
- }
- }
- }
-
- if (__tmp.empty())
- __is.setstate(ios_base::failbit);
- else
- __x._M_copy_from_string(__tmp, __STATIC_CAST(size_t,0), _Nb);
- }
-
- return __is;
-}
-
-template <size_t _Nb>
-wostream& _STLP_CALL
-operator<<(wostream& __os, const bitset<_Nb>& __x) {
- wstring __tmp;
- __x._M_copy_to_string(__tmp);
- return __os << __tmp;
-}
-
-# endif /* _STLP_NO_WCHAR_T */
-# endif
-#endif
-
-#endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */
-
-#undef bitset
-
-_STLP_END_NAMESPACE
-
-#undef __BITS_PER_WORD
-#undef __BITSET_WORDS
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_bitset.c>
-#endif
-
-#endif /* _STLP_BITSET_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_bvector.h b/stlport/stlport/stl/_bvector.h
deleted file mode 100644
index bf417f1..0000000
--- a/stlport/stlport/stl/_bvector.h
+++ /dev/null
@@ -1,841 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_BVECTOR_H
-#define _STLP_INTERNAL_BVECTOR_H
-
-#ifndef _STLP_INTERNAL_VECTOR_H
-# include <stl/_vector.h>
-#endif
-
-#define _STLP_WORD_BIT (int(CHAR_BIT * sizeof(unsigned int)))
-
-_STLP_BEGIN_NAMESPACE
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-struct _Bit_reference {
- unsigned int* _M_p;
- unsigned int _M_mask;
- _Bit_reference(unsigned int* __x, unsigned int __y)
- : _M_p(__x), _M_mask(__y) {}
-
-public:
- _Bit_reference() : _M_p(0), _M_mask(0) {}
-
- operator bool() const {
- return !(!(*_M_p & _M_mask));
- }
- _Bit_reference& operator = (bool __x) {
- if (__x) *_M_p |= _M_mask;
- else *_M_p &= ~_M_mask;
- return *this;
- }
- _Bit_reference& operator = (const _Bit_reference& __x) {
- return *this = bool(__x);
- }
- bool operator == (const _Bit_reference& __x) const {
- return bool(*this) == bool(__x);
- }
- bool operator < (const _Bit_reference& __x) const {
- return !bool(*this) && bool(__x);
- }
-
- _Bit_reference& operator |= (bool __x) {
- if (__x)
- *_M_p |= _M_mask;
- return *this;
- }
- _Bit_reference& operator &= (bool __x) {
- if (!__x)
- *_M_p &= ~_M_mask;
- return *this;
- }
- void flip() { *_M_p ^= _M_mask; }
-};
-
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-inline void swap(_STLP_PRIV _Bit_reference& __x, _STLP_PRIV _Bit_reference& __y) {
- bool __tmp = (bool)__x;
- __x = __y;
- __y = __tmp;
-}
-
-// Might not be very useful but costs nothing!
-_STLP_TEMPLATE_NULL
-struct __type_traits<_STLP_PRIV _Bit_reference> {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __false_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-struct _Bit_iterator_base {
- typedef ptrdiff_t difference_type;
-
- unsigned int* _M_p;
- unsigned int _M_offset;
-
- void _M_bump_up() {
- if (_M_offset++ == _STLP_WORD_BIT - 1) {
- _M_offset = 0;
- ++_M_p;
- }
- }
-
- void _M_bump_down() {
- if (_M_offset-- == 0) {
- _M_offset = _STLP_WORD_BIT - 1;
- --_M_p;
- }
- }
-
- _Bit_iterator_base() : _M_p(0), _M_offset(0) {}
- _Bit_iterator_base(unsigned int* __x, unsigned int __y) : _M_p(__x), _M_offset(__y) {}
-// see comment in doc/README.evc4 and doc/README.evc8
-#if defined(_MSC_VER) && _MSC_VER<=1401 && defined(MIPS) && defined(NDEBUG)
- _Bit_iterator_base( const _Bit_iterator_base& __x) : _M_p(__x._M_p), _M_offset(__x._M_offset) {}
-#endif
- // _Bit_iterator_base& operator = ( const _Bit_iterator_base& __x) { _M_p = __x._M_p ; _M_offset = __x._M_offset ; return *this; }
-
- void _M_advance (difference_type __i) {
- difference_type __n = __i + _M_offset;
- _M_p += __n / _STLP_WORD_BIT;
- __n = __n % _STLP_WORD_BIT;
- if (__n < 0) {
- _M_offset = (unsigned int) __n + _STLP_WORD_BIT;
- --_M_p;
- } else
- _M_offset = (unsigned int) __n;
- }
-
- difference_type _M_subtract(const _Bit_iterator_base& __x) const {
- return _STLP_WORD_BIT * (_M_p - __x._M_p) + _M_offset - __x._M_offset;
- }
-};
-
-inline bool _STLP_CALL operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {
- return __y._M_p == __x._M_p && __y._M_offset == __x._M_offset;
-}
-inline bool _STLP_CALL operator!=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {
- return __y._M_p != __x._M_p || __y._M_offset != __x._M_offset;
-}
-
-inline bool _STLP_CALL operator<(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {
- return __x._M_p < __y._M_p || (__x._M_p == __y._M_p && __x._M_offset < __y._M_offset);
-}
-
-inline bool _STLP_CALL operator>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {
- return operator <(__y , __x);
-}
-inline bool _STLP_CALL operator<=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {
- return !(__y < __x);
-}
-inline bool _STLP_CALL operator>=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) {
- return !(__x < __y);
-}
-
-template <class _Ref, class _Ptr>
-struct _Bit_iter : public _Bit_iterator_base {
- typedef _Ref reference;
- typedef _Ptr pointer;
- typedef _Bit_iter<_Ref, _Ptr> _Self;
- typedef random_access_iterator_tag iterator_category;
- typedef bool value_type;
- typedef ptrdiff_t difference_type;
- typedef size_t size_type;
-
- _Bit_iter(unsigned int* __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {}
- _Bit_iter() {}
-
- _Bit_iter(const _Bit_iter<_Bit_reference, _Bit_reference*>& __x):
- _Bit_iterator_base((const _Bit_iterator_base&)__x) {}
-
- // _Self& operator = (const _Bit_iter<_Bit_reference, _Bit_reference*>& __x)
- // { (_Bit_iterator_base&)*this = (const _Bit_iterator_base&)__x; return *this; }
-
- reference operator*() const {
- return _Bit_reference(_M_p, 1UL << _M_offset);
- }
- _Self& operator++() {
- _M_bump_up();
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- _M_bump_up();
- return __tmp;
- }
- _Self& operator--() {
- _M_bump_down();
- return *this;
- }
- _Self operator--(int) {
- _Self __tmp = *this;
- _M_bump_down();
- return __tmp;
- }
- _Self& operator+=(difference_type __i) {
- _M_advance(__i);
- return *this;
- }
- _Self& operator-=(difference_type __i) {
- *this += -__i;
- return *this;
- }
- _Self operator+(difference_type __i) const {
- _Self __tmp = *this;
- return __tmp += __i;
- }
- _Self operator-(difference_type __i) const {
- _Self __tmp = *this;
- return __tmp -= __i;
- }
- difference_type operator-(const _Self& __x) const {
- return _M_subtract(__x);
- }
- reference operator[](difference_type __i) { return *(*this + __i); }
-};
-
-template <class _Ref, class _Ptr>
-inline _Bit_iter<_Ref,_Ptr> _STLP_CALL
-operator+(ptrdiff_t __n, const _Bit_iter<_Ref, _Ptr>& __x) {
- return __x + __n;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _Ref, class _Ptr>
-struct __type_traits< _STLP_PRIV _Bit_iter<_Ref, _Ptr> > {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-inline random_access_iterator_tag iterator_category(const _STLP_PRIV _Bit_iterator_base&)
-{ return random_access_iterator_tag(); }
-inline ptrdiff_t* distance_type(const _STLP_PRIV _Bit_iterator_base&)
-{ return (ptrdiff_t*)0; }
-inline bool* value_type(const _STLP_PRIV _Bit_iter<_STLP_PRIV _Bit_reference, _STLP_PRIV _Bit_reference*>&)
-{ return (bool*)0; }
-inline bool* value_type(const _STLP_PRIV _Bit_iter<bool, const bool*>&)
-{ return (bool*)0; }
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-typedef _Bit_iter<bool, const bool*> _Bit_const_iterator;
-typedef _Bit_iter<_Bit_reference, _Bit_reference*> _Bit_iterator;
-
-// Bit-vector base class, which encapsulates the difference between
-// old SGI-style allocators and standard-conforming allocators.
-template <class _Alloc>
-class _Bvector_base {
- typedef _Bvector_base<_Alloc> _Self;
-public:
- _STLP_FORCE_ALLOCATORS(bool, _Alloc)
- typedef _Alloc allocator_type;
- typedef unsigned int __chunk_type;
- typedef typename _Alloc_traits<__chunk_type, _Alloc>::allocator_type __chunk_allocator_type;
- allocator_type get_allocator() const
- { return _STLP_CONVERT_ALLOCATOR(__STATIC_CAST(const __chunk_allocator_type&, _M_end_of_storage), bool); }
-
- _Bvector_base(const allocator_type& __a)
- : _M_start(), _M_finish(), _M_end_of_storage(_STLP_CONVERT_ALLOCATOR(__a, __chunk_type),
- (__chunk_type*)0)
- {}
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _Bvector_base(__move_source<_Self> src)
- : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish),
- _M_end_of_storage(src.get()._M_end_of_storage) {
- //Make the source destroyable
- src.get()._M_start._M_p = 0;
- }
-#endif
-
- ~_Bvector_base() {
- _M_deallocate();
- }
-
-protected:
-
- static size_t _M_bits_to_chunks(size_t __n_bits)
- { return (__n_bits + _STLP_WORD_BIT - 1) / _STLP_WORD_BIT; }
-
- __chunk_type* _M_bit_alloc(size_t __n)
- { return _M_end_of_storage.allocate(_M_bits_to_chunks(__n)); }
-
- void _M_deallocate() {
- if (_M_start._M_p)
- _M_end_of_storage.deallocate(_M_start._M_p,
- _M_end_of_storage._M_data - _M_start._M_p);
- }
-
- _Bit_iterator _M_start;
- _Bit_iterator _M_finish;
- _STLP_alloc_proxy<__chunk_type*, __chunk_type, __chunk_allocator_type> _M_end_of_storage;
-};
-
-
-// The next few lines are confusing. What we're doing is declaring a
-// partial specialization of vector<T, Alloc> if we have the necessary
-// compiler support. Otherwise, we define a class bit_vector which uses
-// the default allocator.
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_BOOL) && !defined (__SUNPRO_CC)
-# define _STLP_VECBOOL_TEMPLATE
-# define __BVEC_TMPL_HEADER template <class _Alloc>
-#else
-# undef _STLP_VECBOOL_TEMPLATE
-# ifdef _STLP_NO_BOOL
-# define __BVEC_TMPL_HEADER
-# else
-# define __BVEC_TMPL_HEADER _STLP_TEMPLATE_NULL
-# endif
-# define _Alloc allocator<bool>
-#endif
-
-#if defined (_STLP_DEBUG)
-# define vector _STLP_NON_DBG_NAME(vector)
-#endif
-
-#ifdef _STLP_NO_BOOL
-# define __BVECTOR_QUALIFIED bit_vector
-# define __BVECTOR bit_vector
-#else
-# ifdef _STLP_VECBOOL_TEMPLATE
-# define __BVECTOR_QUALIFIED vector<bool, _Alloc>
-# else
-# define __BVECTOR_QUALIFIED vector<bool, allocator<bool> >
-# endif
-# if defined (_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS)
-# define __BVECTOR __BVECTOR_QUALIFIED
-# else
-# define __BVECTOR vector
-# endif
-#endif
-
-#if !defined (_STLP_DEBUG) || defined (_STLP_NO_BOOL)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-__BVEC_TMPL_HEADER
-class __BVECTOR_QUALIFIED : public _STLP_PRIV _Bvector_base<_Alloc >
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_DEBUG)
- , public __stlport_class< __BVECTOR_QUALIFIED >
-#endif
-{
- typedef _STLP_PRIV _Bvector_base<_Alloc > _Base;
- typedef __BVECTOR_QUALIFIED _Self;
-public:
- typedef bool value_type;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef _STLP_PRIV _Bit_reference reference;
- typedef bool const_reference;
- typedef _STLP_PRIV _Bit_reference* pointer;
- typedef const bool* const_pointer;
- typedef random_access_iterator_tag _Iterator_category;
-
- typedef _STLP_PRIV _Bit_iterator iterator;
- typedef _STLP_PRIV _Bit_const_iterator const_iterator;
-
- _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS;
-
-#ifdef _STLP_VECBOOL_TEMPLATE
- typedef _STLP_TYPENAME _STLP_PRIV _Bvector_base<_Alloc >::allocator_type allocator_type;
- typedef _STLP_TYPENAME _STLP_PRIV _Bvector_base<_Alloc >::__chunk_type __chunk_type;
-#else
- typedef _STLP_PRIV _Bvector_base<_Alloc >::allocator_type allocator_type;
- typedef _STLP_PRIV _Bvector_base<_Alloc >::__chunk_type __chunk_type;
-#endif
-
-protected:
-
- void _M_initialize(size_type __n) {
- __chunk_type* __q = this->_M_bit_alloc(__n);
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__n);
- this->_M_start = iterator(__q, 0);
- this->_M_finish = this->_M_start + difference_type(__n);
- }
- void _M_insert_aux(iterator __position, bool __x) {
- if (this->_M_finish._M_p != this->_M_end_of_storage._M_data) {
- _STLP_PRIV __copy_backward(__position, this->_M_finish, this->_M_finish + 1,
- random_access_iterator_tag(), (difference_type*)0 );
- *__position = __x;
- ++this->_M_finish;
- }
- else {
- size_type __len = size() ? 2 * size() : _STLP_WORD_BIT;
- __chunk_type* __q = this->_M_bit_alloc(__len);
- iterator __i = _STLP_STD::copy(begin(), __position, iterator(__q, 0));
- *__i++ = __x;
- this->_M_finish = _STLP_STD::copy(__position, end(), __i);
- this->_M_deallocate();
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__len);
- this->_M_start = iterator(__q, 0);
- }
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void _M_initialize_range(_InputIterator __first, _InputIterator __last,
- const input_iterator_tag &) {
- this->_M_start = iterator();
- this->_M_finish = iterator();
- this->_M_end_of_storage._M_data = 0;
- for ( ; __first != __last; ++__first)
- push_back(*__first);
- }
-
- template <class _ForwardIterator>
- void _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
- size_type __n = _STLP_STD::distance(__first, __last);
- _M_initialize(__n);
- _STLP_STD::copy(__first, __last, this->_M_start);
- }
-
- template <class _InputIterator>
- void _M_insert_range(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- const input_iterator_tag &) {
- for ( ; __first != __last; ++__first) {
- __pos = insert(__pos, *__first);
- ++__pos;
- }
- }
-
- template <class _ForwardIterator>
- void _M_insert_range(iterator __position,
- _ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
- if (__first != __last) {
- size_type __n = _STLP_STD::distance(__first, __last);
- if (capacity() - size() >= __n) {
- _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + difference_type(__n),
- random_access_iterator_tag(), (difference_type*)0 );
- _STLP_STD::copy(__first, __last, __position);
- this->_M_finish += difference_type(__n);
- }
- else {
- size_type __len = size() + (max)(size(), __n);
- __chunk_type* __q = this->_M_bit_alloc(__len);
- iterator __i = _STLP_STD::copy(begin(), __position, iterator(__q, 0));
- __i = _STLP_STD::copy(__first, __last, __i);
- this->_M_finish = _STLP_STD::copy(__position, end(), __i);
- this->_M_deallocate();
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__len);
- this->_M_start = iterator(__q, 0);
- }
- }
- }
-
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-public:
- iterator begin() { return this->_M_start; }
- const_iterator begin() const { return this->_M_start; }
- iterator end() { return this->_M_finish; }
- const_iterator end() const { return this->_M_finish; }
-
- reverse_iterator rbegin() { return reverse_iterator(end()); }
- const_reverse_iterator rbegin() const {
- return const_reverse_iterator(end());
- }
- reverse_iterator rend() { return reverse_iterator(begin()); }
- const_reverse_iterator rend() const {
- return const_reverse_iterator(begin());
- }
-
- size_type size() const { return size_type(end() - begin()); }
- size_type max_size() const { return size_type(-1); }
- size_type capacity() const {
- return size_type(const_iterator(this->_M_end_of_storage._M_data, 0) - begin());
- }
- bool empty() const { return begin() == end(); }
- reference operator[](size_type __n)
- { return *(begin() + difference_type(__n)); }
- const_reference operator[](size_type __n) const
- { return *(begin() + difference_type(__n)); }
-
- void _M_range_check(size_type __n) const {
- if (__n >= this->size())
- __stl_throw_range_error("vector<bool>");
- }
-
- reference at(size_type __n)
- { _M_range_check(__n); return (*this)[__n]; }
- const_reference at(size_type __n) const
- { _M_range_check(__n); return (*this)[__n]; }
-
- explicit __BVECTOR(const allocator_type& __a = allocator_type())
- : _STLP_PRIV _Bvector_base<_Alloc >(__a) {}
-
- __BVECTOR(size_type __n, bool __val,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _Bvector_base<_Alloc >(__a) {
- _M_initialize(__n);
- fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), __val ? ~0 : 0);
- }
-
- explicit __BVECTOR(size_type __n)
- : _STLP_PRIV _Bvector_base<_Alloc >(allocator_type()) {
- _M_initialize(__n);
- fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), 0);
- }
-
- __BVECTOR(const _Self& __x)
- : _STLP_PRIV _Bvector_base<_Alloc >(__x.get_allocator()) {
- _M_initialize(__x.size());
- _STLP_STD::copy(__x.begin(), __x.end(), this->_M_start);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Integer>
- void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type&) {
- _M_initialize(__n);
- fill(this->_M_start._M_p, this->_M_end_of_storage._M_data, __x ? ~0 : 0);
- }
-
- template <class _InputIterator>
- void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
- const __false_type&) {
- _M_initialize_range(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
- }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- __BVECTOR(_InputIterator __first, _InputIterator __last)
- : _STLP_PRIV _Bvector_base<_Alloc >(allocator_type()) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_dispatch(__first, __last, _Integral());
- }
-# endif
- template <class _InputIterator>
- __BVECTOR(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _STLP_PRIV _Bvector_base<_Alloc >(__a) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_dispatch(__first, __last, _Integral());
- }
-#else /* _STLP_MEMBER_TEMPLATES */
- __BVECTOR(const_iterator __first, const_iterator __last,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _Bvector_base<_Alloc >(__a) {
- size_type __n = _STLP_STD::distance(__first, __last);
- _M_initialize(__n);
- _STLP_STD::copy(__first, __last, this->_M_start);
- }
- __BVECTOR(const bool* __first, const bool* __last,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _Bvector_base<_Alloc >(__a) {
- size_type __n = _STLP_STD::distance(__first, __last);
- _M_initialize(__n);
- _STLP_STD::copy(__first, __last, this->_M_start);
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- __BVECTOR(__move_source<_Self> src)
- : _STLP_PRIV _Bvector_base<_Alloc >(__move_source<_Base>(src.get())) {}
-#endif
-
- ~__BVECTOR() {}
-
- __BVECTOR_QUALIFIED& operator=(const __BVECTOR_QUALIFIED& __x) {
- if (&__x == this) return *this;
- if (__x.size() > capacity()) {
- this->_M_deallocate();
- _M_initialize(__x.size());
- }
- _STLP_STD::copy(__x.begin(), __x.end(), begin());
- this->_M_finish = begin() + difference_type(__x.size());
- return *this;
- }
-
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- void _M_fill_assign(size_t __n, bool __x) {
- if (__n > size()) {
- fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), __x ? ~0 : 0);
- insert(end(), __n - size(), __x);
- }
- else {
- erase(begin() + __n, end());
- fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), __x ? ~0 : 0);
- }
- }
- void assign(size_t __n, bool __x) { _M_fill_assign(__n, __x); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void assign(_InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-
- template <class _Integer>
- void _M_assign_dispatch(_Integer __n, _Integer __val, const __true_type&)
- { _M_fill_assign((size_t) __n, (bool) __val); }
-
- template <class _InputIter>
- void _M_assign_dispatch(_InputIter __first, _InputIter __last, const __false_type&)
- { _M_assign_aux(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); }
-
- template <class _InputIterator>
- void _M_assign_aux(_InputIterator __first, _InputIterator __last,
- const input_iterator_tag &) {
- iterator __cur = begin();
- for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
- *__cur = *__first;
- if (__first == __last)
- erase(__cur, end());
- else
- insert(end(), __first, __last);
- }
-
- template <class _ForwardIterator>
- void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
- size_type __len = _STLP_STD::distance(__first, __last);
- if (__len < size())
- erase(_STLP_STD::copy(__first, __last, begin()), end());
- else {
- _ForwardIterator __mid = __first;
- _STLP_STD::advance(__mid, size());
- _STLP_STD::copy(__first, __mid, begin());
- insert(end(), __mid, __last);
- }
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- void reserve(size_type __n) {
- if (capacity() < __n) {
- if (max_size() < __n)
- __stl_throw_length_error("vector<bool>");
- __chunk_type* __q = this->_M_bit_alloc(__n);
- _STLP_PRIV _Bit_iterator __z(__q, 0);
- this->_M_finish = _STLP_STD::copy(begin(), end(), __z);
- this->_M_deallocate();
- this->_M_start = iterator(__q, 0);
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__n);
- }
- }
-
- reference front() { return *begin(); }
- const_reference front() const { return *begin(); }
- reference back() { return *(end() - 1); }
- const_reference back() const { return *(end() - 1); }
- void push_back(bool __x) {
- if (this->_M_finish._M_p != this->_M_end_of_storage._M_data) {
- *(this->_M_finish) = __x;
- ++this->_M_finish;
- }
- else
- _M_insert_aux(end(), __x);
- }
- void swap(__BVECTOR_QUALIFIED& __x) {
- _STLP_STD::swap(this->_M_start, __x._M_start);
- _STLP_STD::swap(this->_M_finish, __x._M_finish);
- this->_M_end_of_storage.swap(__x._M_end_of_storage);
- }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(__BVECTOR_QUALIFIED& __x) { swap(__x); }
-#endif
-
- iterator insert(iterator __position, bool __x = bool()) {
- difference_type __n = __position - begin();
- if (this->_M_finish._M_p != this->_M_end_of_storage._M_data && __position == end()) {
- *(this->_M_finish) = __x;
- ++this->_M_finish;
- }
- else
- _M_insert_aux(__position, __x);
- return begin() + __n;
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-
- template <class _Integer>
- void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
- const __true_type&) {
- _M_fill_insert(__pos, (size_type) __n, (bool) __x);
- }
-
- template <class _InputIterator>
- void _M_insert_dispatch(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- const __false_type&) {
- _M_insert_range(__pos, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
- }
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- void insert(iterator __position,
- _InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_insert_dispatch(__position, __first, __last, _Integral());
- }
-#else /* _STLP_MEMBER_TEMPLATES */
- void insert(iterator __position,
- const_iterator __first, const_iterator __last) {
- if (__first == __last) return;
- size_type __n = _STLP_STD::distance(__first, __last);
- if (capacity() - size() >= __n) {
- _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + __n,
- random_access_iterator_tag(), (difference_type*)0 );
- _STLP_STD::copy(__first, __last, __position);
- this->_M_finish += __n;
- }
- else {
- size_type __len = size() + (max)(size(), __n);
- __chunk_type* __q = this->_M_bit_alloc(__len);
- iterator __i = _STLP_STD::copy(begin(), __position, iterator(__q, 0));
- __i = _STLP_STD::copy(__first, __last, __i);
- this->_M_finish = _STLP_STD::copy(__position, end(), __i);
- this->_M_deallocate();
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__len);
- this->_M_start = iterator(__q, 0);
- }
- }
-
- void insert(iterator __position, const bool* __first, const bool* __last) {
- if (__first == __last) return;
- size_type __n = _STLP_STD::distance(__first, __last);
- if (capacity() - size() >= __n) {
- _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + __n,
- random_access_iterator_tag(), (difference_type*)0 );
- _STLP_STD::copy(__first, __last, __position);
- this->_M_finish += __n;
- }
- else {
- size_type __len = size() + (max)(size(), __n);
- __chunk_type* __q = this->_M_bit_alloc(__len);
- iterator __i = _STLP_STD::copy(begin(), __position, iterator(__q, 0));
- __i = _STLP_STD::copy(__first, __last, __i);
- this->_M_finish = _STLP_STD::copy(__position, end(), __i);
- this->_M_deallocate();
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__len);
- this->_M_start = iterator(__q, 0);
- }
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- void _M_fill_insert(iterator __position, size_type __n, bool __x) {
- if (__n == 0) return;
- if (capacity() - size() >= __n) {
- _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + difference_type(__n),
- random_access_iterator_tag(), (difference_type*)0 );
- fill(__position, __position + difference_type(__n), __x);
- this->_M_finish += difference_type(__n);
- }
- else {
- size_type __len = size() + (max)(size(), __n);
- __chunk_type* __q = this->_M_bit_alloc(__len);
- iterator __i = _STLP_STD::copy(begin(), __position, iterator(__q, 0));
- fill_n(__i, __n, __x);
- this->_M_finish = _STLP_STD::copy(__position, end(), __i + difference_type(__n));
- this->_M_deallocate();
- this->_M_end_of_storage._M_data = __q + _Base::_M_bits_to_chunks(__len);
- this->_M_start = iterator(__q, 0);
- }
- }
-
- void insert(iterator __position, size_type __n, bool __x) {
- _M_fill_insert(__position, __n, __x);
- }
-
- void pop_back() {
- --this->_M_finish;
- }
- iterator erase(iterator __position) {
- if (__position + 1 != end())
- _STLP_STD::copy(__position + 1, end(), __position);
- --this->_M_finish;
- return __position;
- }
- iterator erase(iterator __first, iterator __last) {
- this->_M_finish = _STLP_STD::copy(__last, end(), __first);
- return __first;
- }
- void resize(size_type __new_size, bool __x = bool()) {
- if (__new_size < size())
- erase(begin() + difference_type(__new_size), end());
- else
- insert(end(), __new_size - size(), __x);
- }
- void flip() {
- for (__chunk_type* __p = this->_M_start._M_p; __p != this->_M_end_of_storage._M_data; ++__p)
- *__p = ~*__p;
- }
-
- void clear() { erase(begin(), end()); }
-};
-
-#if defined (_STLP_NO_BOOL) || defined (__HP_aCC) // fixed soon (03/17/2000)
-# define _STLP_TEMPLATE_HEADER __BVEC_TMPL_HEADER
-# define _STLP_TEMPLATE_CONTAINER __BVECTOR_QUALIFIED
-# include <stl/_relops_cont.h>
-# undef _STLP_TEMPLATE_CONTAINER
-# undef _STLP_TEMPLATE_HEADER
-#endif /* NO_BOOL */
-
-#if defined (_STLP_DEBUG) && !defined (_STLP_NO_BOOL)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#undef vector
-#undef _Alloc
-#undef _STLP_VECBOOL_TEMPLATE
-#undef __BVECTOR
-#undef __BVECTOR_QUALIFIED
-#undef __BVEC_TMPL_HEADER
-
-#undef _STLP_WORD_BIT
-
-#endif /* _STLP_INTERNAL_BVECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_carray.h b/stlport/stlport/stl/_carray.h
deleted file mode 100644
index 560bab2..0000000
--- a/stlport/stlport/stl/_carray.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2005
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_CARRAY_H
-#define _STLP_CARRAY_H
-
-/* Purpose: Mimic a pur C array with the additionnal feature of
- * being able to be used with type not default constructible.
- */
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp, size_t _Nb>
-struct _CArray {
- _CArray (const _Tp& __val) {
- for (size_t __i = 0; __i < _Nb; ++__i) {
- _Copy_Construct(__REINTERPRET_CAST(_Tp*, _M_data + __i * sizeof(_Tp)), __val);
- }
- }
-
- ~_CArray() {
- _Destroy_Range(__REINTERPRET_CAST(_Tp*, _M_data + 0),
- __REINTERPRET_CAST(_Tp*, _M_data + _Nb * sizeof(_Tp)));
- }
-
- _Tp& operator [] (size_t __i) {
- _STLP_ASSERT(__i < _Nb)
- return *__REINTERPRET_CAST(_Tp*, _M_data + __i * sizeof(_Tp));
- }
-
-private:
- char _M_data[sizeof(_Tp) * _Nb];
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif //_STLP_CARRAY_H
diff --git a/stlport/stlport/stl/_cctype.h b/stlport/stlport/stl/_cctype.h
deleted file mode 100644
index cf82524..0000000
--- a/stlport/stlport/stl/_cctype.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_CCTYPE
-#define _STLP_INTERNAL_CCTYPE
-
-#if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cctype>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cctype)
-# endif
-#else
-# include <ctype.h>
-#endif /* _STLP_USE_NEW_C_HEADERS */
-
-#if ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-# if defined ( _STLP_IMPORT_VENDOR_CSTD )
-_STLP_BEGIN_NAMESPACE
-using _STLP_VENDOR_CSTD::isalnum;
-using _STLP_VENDOR_CSTD::isalpha;
-using _STLP_VENDOR_CSTD::iscntrl;
-using _STLP_VENDOR_CSTD::isdigit;
-using _STLP_VENDOR_CSTD::isgraph;
-using _STLP_VENDOR_CSTD::islower;
-using _STLP_VENDOR_CSTD::isprint;
-using _STLP_VENDOR_CSTD::ispunct;
-using _STLP_VENDOR_CSTD::isspace;
-using _STLP_VENDOR_CSTD::isupper;
-using _STLP_VENDOR_CSTD::isxdigit;
-using _STLP_VENDOR_CSTD::tolower;
-using _STLP_VENDOR_CSTD::toupper;
-_STLP_END_NAMESPACE
-# endif /* _STLP_IMPORT_VENDOR_CSTD*/
-#endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
-
-#endif
diff --git a/stlport/stlport/stl/_cmath.h b/stlport/stlport/stl/_cmath.h
deleted file mode 100755
index 0afebea..0000000
--- a/stlport/stlport/stl/_cmath.h
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Copyright (c) 2010, The Linux Foundation. All rights reserved.
- */
-
-#ifndef _STLP_INTERNAL_CMATH
-#define _STLP_INTERNAL_CMATH
-
-/* gcc do not like when a using directive appear after a function
- * declaration. cmath have abs overloads and cstdlib a using directive
- * so cstdlib has to be included first.
- */
-#if defined (__GNUC__) && defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstdlib>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstdlib)
-# endif
-#endif
-
-#if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_NO_NAMESPACES) && !defined (exception)
-# define exception __math_exception
-# endif
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cmath>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cmath)
-# endif
-# if defined (_STLP_HAS_NO_NAMESPACES)
-# undef exception
-# endif
-#else
-# include <math.h>
-#endif
-
-#if (defined (__SUNPRO_CC) && (__SUNPRO_CC > 0x500)) || \
- !(defined (__IBMCPP__) && (__IBMCPP__ >= 500) || !(defined(__HP_aCC) && (__HP_aCC >= 30000) ))
-# if !defined(_STLP_HAS_NO_NAMESPACES) && !defined(__SUNPRO_CC)
-// All the other hypot stuff is going to be at file scope, so follow along here.
-namespace std {
-# endif
-extern "C" double hypot(double x, double y);
-# if !defined(_STLP_HAS_NO_NAMESPACES) && !defined(__SUNPRO_CC)
-}
-# endif
-
-#endif
-
-#if defined (__sun) && defined (__GNUC__)
-extern "C" {
- float __cosf(float v);
- float __sinf(float v);
- float __atan2f(float, float);
- float __coshf(float v);
- float __sinhf(float v);
- float __sqrtf(float v);
- float __expf(float v);
- float __logf(float v);
- float __log10f(float v);
-
- long double __cosl(long double v);
- long double __sinl(long double v);
- long double __atan2l(long double, long double);
- long double __coshl(long double v);
- long double __sinhl(long double v);
- long double __sqrtl(long double v);
- long double __expl(long double v);
- long double __logl(long double v);
- long double __log10l(long double v);
-}
-
-extern "C" {
- inline float cosf(float v) { return __cosf(v); }
- inline float sinf(float v) { return __sinf(v); }
- inline float atan2f(float v1, float v2) { return __atan2f(v1,v2); }
- inline float coshf(float v) { return __coshf(v); }
- inline float sinhf(float v) { return __sinhf(v); }
- inline float sqrtf(float v) { return __sqrtf(v); }
- inline float expf(float v) { return __expf(v); }
- inline float logf(float v) { return __logf(v); }
- inline float log10f(float v) { return __log10f(v); }
-
- inline long double cosl(long double v) { return __cosl(v); }
- inline long double sinl(long double v) { return __sinl(v); }
- inline long double atan2l(long double v1, long double v2) { return __atan2l(v1,v2); }
- inline long double coshl(long double v) { return __coshl(v); }
- inline long double sinhl(long double v) { return __sinhl(v); }
- inline long double sqrtl(long double v) { return __sqrtl(v); }
- inline long double expl(long double v) { return __expl(v); }
- inline long double logl(long double v) { return __logl(v); }
- inline long double log10l(long double v) { return __log10l(v); }
-}
-#endif // __sun && __GNUC__
-
-#if defined (__sun)
-extern "C" {
-extern float __acosf(float);
-extern float __asinf(float);
-extern float __atanf(float);
-extern float __atan2f(float, float);
-extern float __ceilf(float);
-extern float __cosf(float);
-extern float __coshf(float);
-extern float __expf(float);
-extern float __fabsf(float);
-extern float __floorf(float);
-extern float __fmodf(float, float);
-extern float __frexpf(float, int *);
-extern float __ldexpf(float, int);
-extern float __logf(float);
-extern float __log10f(float);
-extern float __modff(float, float *);
-extern float __powf(float, float);
-extern float __sinf(float);
-extern float __sinhf(float);
-extern float __sqrtf(float);
-extern float __tanf(float);
-extern float __tanhf(float);
-
-extern long double __acosl(long double);
-extern long double __asinl(long double);
-extern long double __atanl(long double);
-extern long double __atan2l(long double, long double);
-extern long double __ceill(long double);
-extern long double __cosl(long double);
-extern long double __coshl(long double);
-extern long double __expl(long double);
-extern long double __fabsl(long double);
-extern long double __floorl(long double);
-extern long double __fmodl(long double, long double);
-extern long double __frexpl(long double, int *);
-extern long double __ldexpl(long double, int);
-extern long double __logl(long double);
-extern long double __log10l(long double);
-extern long double __modfl(long double, long double *);
-extern long double __powl(long double, long double);
-extern long double __sinl(long double);
-extern long double __sinhl(long double);
-extern long double __sqrtl(long double);
-extern long double __tanl(long double);
-extern long double __tanhl(long double);
-}
-#endif
-
-#if defined (__BORLANDC__)
-# define _STLP_CMATH_FUNC_NAMESPACE _STLP_VENDOR_CSTD
-#else
-# define _STLP_CMATH_FUNC_NAMESPACE
-#endif
-
-#if !defined (__sun) || defined (__GNUC__)
-# define _STLP_MATH_INLINE(float_type, func, cfunc) \
- inline float_type func (float_type x) { return _STLP_CMATH_FUNC_NAMESPACE::cfunc(x); }
-# define _STLP_MATH_INLINE2(float_type, type, func, cfunc) \
- inline float_type func (float_type x, type y) { return _STLP_CMATH_FUNC_NAMESPACE::cfunc(x, y); }
-# define _STLP_MATH_INLINE_D(float_type, func, cfunc)
-# define _STLP_MATH_INLINE2_D(float_type, type, func, cfunc)
-#else
-# ifdef __SUNPRO_CC
-# define _STLP_MATH_INLINE(float_type, func, cfunc) \
- inline float_type func (float_type x) { return _STLP_VENDOR_CSTD::__##cfunc(x); }
-# define _STLP_MATH_INLINE_D(float_type, func, cfunc) \
- inline float_type func (float_type x) { return _STLP_VENDOR_CSTD::cfunc(x); }
-# define _STLP_MATH_INLINE2(float_type, type, func, cfunc) \
- inline float_type func (float_type x, type y) { return _STLP_VENDOR_CSTD::__##cfunc(x,y); }
-# define _STLP_MATH_INLINE2_D(float_type, type, func, cfunc) \
- inline float_type func (float_type x, type y) { return _STLP_VENDOR_CSTD::cfunc(x,y); }
-# else
-# error Unknown compiler for the Sun platform
-# endif
-#endif
-
-/** macros to define math functions
-These macros (having an X somewhere in the name) forward to the C library's
-double functions but cast the arguments and return values to the given type. */
-
-#define _STLP_MATH_INLINEX(__type,func,cfunc) \
- inline __type func (__type x) \
- { return __STATIC_CAST(__type, _STLP_CMATH_FUNC_NAMESPACE::cfunc((double)x)); }
-#define _STLP_MATH_INLINE2X(__type1,__type2,func,cfunc) \
- inline __type1 func (__type1 x, __type2 y) \
- { return __STATIC_CAST(__type1, _STLP_CMATH_FUNC_NAMESPACE::cfunc((double)x, y)); }
-#define _STLP_MATH_INLINE2PX(__type,func,cfunc) \
- inline __type func (__type x, __type *y) { \
- double tmp1, tmp2; \
- tmp1 = _STLP_CMATH_FUNC_NAMESPACE::cfunc(__STATIC_CAST(double, x), &tmp2); \
- *y = __STATIC_CAST(__type, tmp2); \
- return __STATIC_CAST(__type, tmp1); \
- }
-#define _STLP_MATH_INLINE2XX(__type,func,cfunc) \
- inline __type func (__type x, __type y) \
- { return __STATIC_CAST(__type, _STLP_CMATH_FUNC_NAMESPACE::cfunc((double)x, (double)y)); }
-
-
-/** rough characterization of compiler and native C library
-For the compiler, it can either support long double or not. If it doesn't, the
-macro _STLP_NO_LONG_DOUBLE is not defined and we don't define any long double
-overloads.
-For the native C library the question is whether it has variants with an 'f'
-suffix (for float as opposed to double) or an 'l' suffix (for long double). If
-the float variants are missing, _STLP_NO_VENDOR_MATH_F is defined, when the
-long double variants are missing, _STLP_NO_VENDOR_MATH_L is defined. Of course
-the latter doesn't make sense anyway when the compiler already has no long
-double support.
-
-Those two traits determine a) which overloads get defined and b) how they are
-defined.
-
-Meaning of suffixes:
-"" : function returning and taking a float_type
-"2" : function returning a float_type and taking to float_types
-"2P" : function returning a float_type and taking a float_type and a float_type*
-"2PI": function returning a float_type and taking a float_type and an int*
-"2I" : function returning a float_type and taking a float_Type and an int
-*/
-
-#if !defined (_STLP_NO_LONG_DOUBLE) && !defined (_STLP_NO_VENDOR_MATH_L) && !defined (_STLP_NO_VENDOR_MATH_F)
- // long double support and both e.g. sinl(long double) and sinf(float)
- // This is the default for a correct and complete native library.
-# define _STLP_DEF_MATH_INLINE(func,cf) \
- _STLP_MATH_INLINE(float,func,cf##f) \
- _STLP_MATH_INLINE_D(double,func,cf) \
- _STLP_MATH_INLINE(long double,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2(func,cf) \
- _STLP_MATH_INLINE2(float,float,func,cf##f) \
- _STLP_MATH_INLINE2_D(double,double,func,cf) \
- _STLP_MATH_INLINE2(long double,long double,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2P(func,cf) \
- _STLP_MATH_INLINE2(float,float *,func,cf##f) \
- _STLP_MATH_INLINE2_D(double,double *,func,cf) \
- _STLP_MATH_INLINE2(long double,long double *,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2PI(func,cf) \
- _STLP_MATH_INLINE2(float,int *,func,cf##f) \
- _STLP_MATH_INLINE2_D(double,int *,func,cf) \
- _STLP_MATH_INLINE2(long double,int *,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2I(func,cf) \
- _STLP_MATH_INLINE2(float,int,func,cf##f) \
- _STLP_MATH_INLINE2_D(double,int,func,cf) \
- _STLP_MATH_INLINE2(long double,int,func,cf##l)
-#else
-# if !defined (_STLP_NO_LONG_DOUBLE)
-# if !defined (_STLP_NO_VENDOR_MATH_F)
- // long double support and e.g. sinf(float) but not e.g. sinl(long double)
-# define _STLP_DEF_MATH_INLINE(func,cf) \
- _STLP_MATH_INLINE(float,func,cf##f) \
- _STLP_MATH_INLINEX(long double,func,cf)
-# define _STLP_DEF_MATH_INLINE2(func,cf) \
- _STLP_MATH_INLINE2(float,float,func,cf##f) \
- _STLP_MATH_INLINE2XX(long double,func,cf)
-# define _STLP_DEF_MATH_INLINE2P(func,cf) \
- _STLP_MATH_INLINE2(float,float *,func,cf##f) \
- _STLP_MATH_INLINE2PX(long double,func,cf)
-# define _STLP_DEF_MATH_INLINE2PI(func,cf) \
- _STLP_MATH_INLINE2(float,int *,func,cf##f) \
- _STLP_MATH_INLINE2X(long double,int *,func,cf)
-# define _STLP_DEF_MATH_INLINE2I(func,cf) \
- _STLP_MATH_INLINE2(float,int,func,cf##f) \
- _STLP_MATH_INLINE2X(long double,int,func,cf)
-# elif !defined (_STLP_NO_VENDOR_MATH_L)
- // long double support and e.g. sinl(long double) but not e.g. sinf(float)
-# define _STLP_DEF_MATH_INLINE(func,cf) \
- _STLP_MATH_INLINEX(float,func,cf) \
- _STLP_MATH_INLINE(long double,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2(func,cf) \
- _STLP_MATH_INLINE2XX(float,func,cf) \
- _STLP_MATH_INLINE2(long double,long double,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2P(func,cf) \
- _STLP_MATH_INLINE2PX(float,func,cf) \
- _STLP_MATH_INLINE2(long double,long double *,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2PI(func,cf) \
- _STLP_MATH_INLINE2X(float,int *,func,cf) \
- _STLP_MATH_INLINE2(long double,int *,func,cf##l)
-# define _STLP_DEF_MATH_INLINE2I(func,cf) \
- _STLP_MATH_INLINE2X(float,int,func,cf) \
- _STLP_MATH_INLINE2(long double,int,func,cf##l)
-# else
-# define _STLP_DEF_MATH_INLINE(func,cf) \
- _STLP_MATH_INLINEX(float,func,cf) \
- _STLP_MATH_INLINEX(long double,func,cf)
-# define _STLP_DEF_MATH_INLINE2(func,cf) \
- _STLP_MATH_INLINE2XX(float,func,cf) \
- _STLP_MATH_INLINE2XX(long double,func,cf)
-# define _STLP_DEF_MATH_INLINE2P(func,cf) \
- _STLP_MATH_INLINE2PX(float,func,cf) \
- _STLP_MATH_INLINE2PX(long double,func,cf)
-# define _STLP_DEF_MATH_INLINE2PI(func,cf) \
- _STLP_MATH_INLINE2X(float,int *,func,cf) \
- _STLP_MATH_INLINE2X(long double,int *,func,cf)
-# define _STLP_DEF_MATH_INLINE2I(func,cf) \
- _STLP_MATH_INLINE2X(float,int,func,cf) \
- _STLP_MATH_INLINE2X(long double,int,func,cf)
-# endif
-# else
-# if !defined (_STLP_NO_VENDOR_MATH_F)
-# define _STLP_DEF_MATH_INLINE(func,cf) \
- _STLP_MATH_INLINE(float,func,cf##f)
-# define _STLP_DEF_MATH_INLINE2(func,cf) \
- _STLP_MATH_INLINE2(float,float,func,cf##f)
-# define _STLP_DEF_MATH_INLINE2P(func,cf) \
- _STLP_MATH_INLINE2(float,float *,func,cf##f)
-# define _STLP_DEF_MATH_INLINE2PI(func,cf) \
- _STLP_MATH_INLINE2(float,int *,func,cf##f)
-# define _STLP_DEF_MATH_INLINE2I(func,cf) \
- _STLP_MATH_INLINE2(float,int,func,cf##f)
-# else // _STLP_NO_VENDOR_MATH_F
- // neither long double support nor e.g. sinf(float) functions
-# define _STLP_DEF_MATH_INLINE(func,cf) \
- _STLP_MATH_INLINEX(float,func,cf)
-# define _STLP_DEF_MATH_INLINE2(func,cf) \
- _STLP_MATH_INLINE2XX(float,func,cf)
-# define _STLP_DEF_MATH_INLINE2P(func,cf) \
- _STLP_MATH_INLINE2PX(float,func,cf)
-# define _STLP_DEF_MATH_INLINE2PI(func,cf) \
- _STLP_MATH_INLINE2X(float,int *,func,cf)
-# define _STLP_DEF_MATH_INLINE2I(func,cf) \
- _STLP_MATH_INLINE2X(float,int,func,cf)
-# endif // _STLP_NO_VENDOR_MATH_F
-# endif
-#endif
-
-#if defined (_STLP_WCE) || \
- (defined(_STLP_MSVC) && (_STLP_MSVC <= 1300) && defined (_MSC_EXTENSIONS) /* && !defined(_STLP_WCE_NET) */)
-/*
- * dums: VC6 has all the required C++ functions but only define them if
- * _MSC_EXTENSIONS is not defined (a bug?). STLport just do the same
- * thing also when _MSC_EXTENSIONS is defined.
- * TODO: above check (_STLP_MSVC <= 1300) also catches VC7.0, is that intended?
- */
-//We have to tell the compilers that abs, acos ... math functions are not intrinsic
-//otherwise we have Internal Compiler Error in release mode...
-# pragma warning(push)
-# pragma warning(disable: 4162) // no function with C linkage found
-# pragma warning(disable: 4163) // not available as an intrinsic function
-# pragma function (abs, acos, asin, atan, atan2, cos, cosh, exp, fabs, fmod, log, log10, sin, sinh, sqrt, tan, tanh)
-# if defined (_STLP_WCE)
-# pragma function (ceil, floor)
-# endif
-# define _STLP_RESTORE_FUNCTION_INTRINSIC
-#endif // _STLP_MSVC && _STLP_MSVC <= 1300 && !_STLP_WCE && _MSC_EXTENSIONS
-
-#if (defined (__BORLANDC__) || defined (__WATCOMC__)) && defined (_STLP_USE_NEW_C_HEADERS)
-/* In this config Borland native lib only define functions in std namespace.
- * In order to have all overloads in STLport namespace we need to add the
- * double overload in global namespace. We do not use a using statement to avoid
- * import of invalid overload.
- */
-# define _STLP_DMATH_INLINE(func) _STLP_MATH_INLINE(double, func, func)
-# define _STLP_DMATH_INLINE2(func) _STLP_MATH_INLINE2(double, double, func, func)
-
-_STLP_DMATH_INLINE(acos)
-_STLP_DMATH_INLINE(asin)
-_STLP_DMATH_INLINE(atan)
-_STLP_DMATH_INLINE2(atan2)
-_STLP_DMATH_INLINE(ceil)
-_STLP_DMATH_INLINE(cos)
-_STLP_DMATH_INLINE(cosh)
-_STLP_DMATH_INLINE(exp)
-_STLP_DMATH_INLINE(fabs)
-_STLP_DMATH_INLINE(floor)
-_STLP_DMATH_INLINE2(fmod)
-_STLP_MATH_INLINE2X(double, int*, frexp, frexp)
-_STLP_MATH_INLINE2X(double, int, ldexp, ldexp)
-_STLP_DMATH_INLINE(log)
-_STLP_DMATH_INLINE(log10)
-_STLP_MATH_INLINE2PX(double, modf, modf)
-_STLP_DMATH_INLINE(sin)
-_STLP_DMATH_INLINE(sinh)
-_STLP_DMATH_INLINE(sqrt)
-_STLP_DMATH_INLINE(tan)
-_STLP_DMATH_INLINE(tanh)
-_STLP_DMATH_INLINE2(pow)
-_STLP_DMATH_INLINE2(hypot)
-
-# undef _STLP_DMATH_INLINE
-# undef _STLP_DMATH_INLINE2
-#endif
-
-#if defined (__DMC__)
-# if defined (fabs)
-inline double __stlp_fabs(double __x) { return fabs(__x); }
-# undef fabs
-inline double fabs(double __x) { return __stlp_fabs(__x); }
-# endif
-# if defined (cos)
-inline double __stlp_cos(double __x) { return cos(__x); }
-# undef cos
-inline double cos(double __x) { return __stlp_cos(__x); }
-# endif
-# if defined (sin)
-inline double __stlp_sin(double __x) { return sin(__x); }
-# undef sin
-inline double sin(double __x) { return __stlp_sin(__x); }
-# endif
-# if defined (sqrt)
-inline double __stlp_sqrt(double __x) { return sqrt(__x); }
-# undef sqrt
-inline double sqrt(double __x) { return __stlp_sqrt(__x); }
-# endif
-# if defined (ldexp)
-inline double __stlp_ldexp(double __x, int __y) { return ldexp(__x, __y); }
-# undef ldexp
-inline double ldexp(double __x, int __y) { return __stlp_ldexp(__x, __y); }
-# endif
-#endif
-
-/* MSVC native lib starting with .Net 2003 has already all math functions
- * in global namespace.
- * HP-UX native lib has math functions in the global namespace.
- */
-#if (!defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1310) || defined(UNDER_CE)) && \
- (!defined (__HP_aCC) || (__HP_aCC < 30000)) && \
- !defined (__WATCOMC__) && \
- !defined (ANDROID)
-inline double abs(double __x)
-{ return ::fabs(__x); }
-# if !defined (__MVS__)
-_STLP_DEF_MATH_INLINE(abs, fabs)
-# else // __MVS__ has native long double abs?
-inline float abs(float __x) { return ::fabsf(__x); }
-# endif
-
-_STLP_DEF_MATH_INLINE(acos, acos)
-_STLP_DEF_MATH_INLINE(asin, asin)
-_STLP_DEF_MATH_INLINE(atan, atan)
-_STLP_DEF_MATH_INLINE2(atan2, atan2)
-_STLP_DEF_MATH_INLINE(ceil, ceil)
-_STLP_DEF_MATH_INLINE(cos, cos)
-_STLP_DEF_MATH_INLINE(cosh, cosh)
-_STLP_DEF_MATH_INLINE(exp, exp)
-_STLP_DEF_MATH_INLINE(fabs, fabs)
-_STLP_DEF_MATH_INLINE(floor, floor)
-_STLP_DEF_MATH_INLINE2(fmod, fmod)
-_STLP_DEF_MATH_INLINE2PI(frexp, frexp)
-_STLP_DEF_MATH_INLINE2I(ldexp, ldexp)
-_STLP_DEF_MATH_INLINE(log, log)
-_STLP_DEF_MATH_INLINE(log10, log10)
-_STLP_DEF_MATH_INLINE2P(modf, modf)
-_STLP_DEF_MATH_INLINE(sin, sin)
-_STLP_DEF_MATH_INLINE(sinh, sinh)
-_STLP_DEF_MATH_INLINE(sqrt, sqrt)
-_STLP_DEF_MATH_INLINE(tan, tan)
-_STLP_DEF_MATH_INLINE(tanh, tanh)
-_STLP_DEF_MATH_INLINE2(pow, pow)
-
-# if !defined(_STLP_MSVC) /* || (_STLP_MSVC > 1300) */ || defined(_STLP_WCE) || !defined (_MSC_EXTENSIONS) /* && !defined(_STLP_WCE_NET) */
-# ifndef _STLP_NO_VENDOR_MATH_F
-# ifndef __sun
-inline float pow(float __x, int __y) { return _STLP_CMATH_FUNC_NAMESPACE::powf(__x, __STATIC_CAST(float,__y)); }
-# else
-inline float pow(float __x, int __y) { return ::__powf(__x, __STATIC_CAST(float,__y)); }
-# endif
-# else
-inline float pow(float __x, int __y) { return __STATIC_CAST(float, _STLP_CMATH_FUNC_NAMESPACE::pow(__x, __STATIC_CAST(float,__y))); }
-# endif
-inline double pow(double __x, int __y) { return _STLP_CMATH_FUNC_NAMESPACE::pow(__x, __STATIC_CAST(double,__y)); }
-# if !defined (_STLP_NO_LONG_DOUBLE)
-# if !defined(_STLP_NO_VENDOR_MATH_L)
-# ifndef __sun
-inline long double pow(long double __x, int __y) { return _STLP_CMATH_FUNC_NAMESPACE::powl(__x, __STATIC_CAST(long double,__y)); }
-# else
-# ifndef __SUNPRO_CC
-inline long double pow(long double __x, int __y) { return ::__powl(__x, __STATIC_CAST(long double,__y)); }
-# else
-inline long double pow(long double __x, int __y) { return _STLP_VENDOR_CSTD::__powl(__x, __STATIC_CAST(long double,__y)); }
-# endif
-# endif
-# else
-inline long double pow(long double __x, int __y) { return __STATIC_CAST(long double, _STLP_CMATH_FUNC_NAMESPACE::pow(__x, __STATIC_CAST(long double,__y))); }
-# endif
-# endif
-# else
-//The MS native pow version has a bugged overload so it is not imported
-//in the STLport namespace.
-//Here is the bugged version:
-//inline double pow(int __x, int __y) { return (_Pow_int(__x, __y)); }
-inline double pow(double __x, int __y) { return (_Pow_int(__x, __y)); }
-inline float pow(float __x, int __y) { return (_Pow_int(__x, __y)); }
-inline long double pow(long double __x, int __y) { return (_Pow_int(__x, __y)); }
-# endif
-#endif
-
-#if (defined (_STLP_MSVC) && !defined (_STLP_WCE)) || defined (__ICL) || defined (__sun)
-# if defined (_STLP_MSVC) && (_STLP_MSVC >= 1400)
-# pragma warning (push)
-# pragma warning (disable : 4996) // hypot is deprecated.
-# endif
-_STLP_MATH_INLINE2XX(float, hypot, hypot)
-inline long double hypot(long double x, long double y) { return sqrt(x * x + y * y); }
-# if defined (_STLP_MSVC) && (_STLP_MSVC >= 1400)
-# pragma warning (pop)
-# endif
-#else
-# if defined (_STLP_USE_UCLIBC)
-inline double hypot(double x, double y) { return sqrt(x * x + y * y); }
-_STLP_DEF_MATH_INLINE2(hypot, hypot)
-# elif defined (_STLP_WCE)
- /* CE has a double _hypot(double,double) which we use */
-inline double hypot(double __x, double __y) { return _hypot(__x,__y); }
-_STLP_DEF_MATH_INLINE2(hypot, _hypot)
-# endif
-#endif
-
-#if defined (_STLP_RESTORE_FUNCTION_INTRINSIC)
-//restoration of the default intrinsic status of those functions:
-# pragma intrinsic (abs, acos, asin, atan, atan2, cos, cosh, exp, fabs, fmod, log, log10, sin, sinh, sqrt, tan, tanh)
-# if defined (_STLP_WCE)
-# pragma intrinsic (ceil, floor)
-# endif
-# pragma warning(pop)
-# undef _STLP_RESTORE_FUNCTION_INTRINSIC
-#endif // _STLP_MSVC && _STLP_MSVC <= 1300 && !_STLP_WCE && _MSC_EXTENSIONS
-
-/* C++ Standard is unclear about several call to 'using ::func' if new overloads
- * of ::func appears between 2 successive 'using' calls. To avoid this potential
- * problem we provide all abs overload before the 'using' call.
- * Beware: This header inclusion has to be after all abs overload of this file.
- * The first 'using ::abs' call is going to be in the other header.
- */
-#ifndef _STLP_INTERNAL_CSTDLIB
-# include <stl/_cstdlib.h>
-#endif
-
-#if defined (_STLP_IMPORT_VENDOR_CSTD) && !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-_STLP_BEGIN_NAMESPACE
-using ::abs;
-using ::acos;
-using ::asin;
-using ::atan;
-using ::atan2;
-using ::ceil;
-using ::cos;
-using ::cosh;
-using ::exp;
-using ::fabs;
-using ::floor;
-using ::fmod;
-using ::frexp;
-/*
- Because of some weird interaction between STLport headers
- and native HP-UX headers, when compiled with _STLP_DEBUG
- macro defined with aC++, hypot() is not declared.
- At some point we'll need to get to the bottom line of
- this problem.
-*/
-#if !(defined(__HP_aCC) && defined(_STLP_DEBUG))
-using ::hypot;
-#endif
-using ::ldexp;
-using ::log;
-using ::log10;
-using ::modf;
-using ::pow;
-using ::sin;
-using ::sinh;
-using ::sqrt;
-using ::tan;
-using ::tanh;
-_STLP_END_NAMESPACE
-# if defined (__BORLANDC__) && (__BORLANDC__ >= 0x560) && !defined (__linux__)
-using _STLP_VENDOR_CSTD::_ecvt;
-using _STLP_VENDOR_CSTD::_fcvt;
-# endif
-#endif
-
-#endif /* _STLP_INTERNAL_CMATH */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_config_compat_post.h b/stlport/stlport/stl/_config_compat_post.h
deleted file mode 100644
index e3b4111..0000000
--- a/stlport/stlport/stl/_config_compat_post.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*========================================== */
-#if 1 /* def _STLP_3_COMPATIBILITY */
-
-# define __SGI_STL_PORT _STLPORT_VERSION
-
-# if defined (_STLP_DEBUG) && ! defined ( __STL_DEBUG )
-# define __STL_DEBUG _STLP_DEBUG
-# endif
-
-# if defined (_STLP_USE_NAMESPACES)
-# undef __STL_USE_NAMESPACES
-# define __STL_USE_NAMESPACES _STLP_USE_NAMESPACES
-# endif
-
-# if defined (_STLP_USE_EXCEPTIONS)
-# undef __STL_USE_EXCEPTIONS
-# define __STL_USE_EXCEPTIONS _STLP_USE_EXCEPTIONS
-# endif
-
-# if defined (_STLP_BEGIN_NAMESPACE) && ! defined ( __STL_BEGIN_NAMESPACE )
-# define __STL_BEGIN_NAMESPACE _STLP_BEGIN_NAMESPACE
-# define __STL_END_NAMESPACE _STLP_END_NAMESPACE
-# define __STL_VENDOR_STD _STLP_VENDOR_STD
-# define __STL_VENDOR_CSTD _STLP_VENDOR_CSTD
-# endif
-# endif
-
-/*
-# if defined (_STLP_XXX) && ! defined ( __STL_XXX )
-# define __STL_XXX _STLP_XXX
-# endif
-*/
-
-/* 5.0 -> 4.6 compatibility section */
-#if 1 /* def _STLP_46_COMPATIBILITY */
-
-/* provide a uniform way to access full functionality */
-# define __slist__ slist
-# define __map__ map
-# define __multimap__ multimap
-# define __set__ set
-# define __multiset__ multiset
-# define __list__ list
-# define __hash_map__ hash_map
-# define __hash_multimap__ hash_multimap
-# define __hash_set__ hash_set
-# define __hash_multiset__ hash_multiset
-# define __vector__ vector
-
-#endif
-
diff --git a/stlport/stlport/stl/_construct.h b/stlport/stlport/stl/_construct.h
deleted file mode 100644
index 9361878..0000000
--- a/stlport/stlport/stl/_construct.h
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-#define _STLP_INTERNAL_CONSTRUCT_H
-
-#if !defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_INTERNAL_CSTRING)
-# include <stl/_cstring.h>
-#endif
-
-#ifndef _STLP_INTERNAL_NEW
-# include <stl/_new.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-#endif
-
-#ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-#endif
-
-#if !defined (_STLP_MOVE_CONSTRUCT_FWK_H) && !defined (_STLP_NO_MOVE_SEMANTIC)
-# include <stl/_move_construct_fwk.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp>
-inline void __destroy_aux(_Tp* __pointer, const __false_type& /*_Trivial_destructor*/)
-{ __pointer->~_Tp(); }
-
-template <class _Tp>
-inline void __destroy_aux(_Tp*, const __true_type& /*_Trivial_destructor*/) {}
-
-template <class _Tp>
-inline void _Destroy(_Tp* __pointer) {
- typedef typename __type_traits<_Tp>::has_trivial_destructor _Trivial_destructor;
- __destroy_aux(__pointer, _Trivial_destructor());
-#if defined (_STLP_DEBUG_UNINITIALIZED)
- memset(__REINTERPRET_CAST(char*, __pointer), _STLP_SHRED_BYTE, sizeof(_Tp));
-#endif
-}
-
-template <class _Tp>
-inline void _Destroy_Moved(_Tp* __pointer) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::complete _Trivial_destructor;
- __destroy_aux(__pointer, _Trivial_destructor());
-# if defined (_STLP_DEBUG_UNINITIALIZED)
- memset((char*)__pointer, _STLP_SHRED_BYTE, sizeof(_Tp));
-# endif
-#else
- _Destroy(__pointer);
-#endif
-}
-
-#if defined (new)
-# define _STLP_NEW_REDEFINE new
-# undef new
-#endif
-
-template <class _T1>
-inline void _Construct_aux (_T1* __p, const __false_type&) {
- new(__p) _T1();
-}
-
-template <class _T1>
-inline void _Construct_aux (_T1* __p, const __true_type&) {
-#if defined (_STLP_DEF_CONST_PLCT_NEW_BUG)
- *__p = _T1(0);
-#else
- // We use binary copying for POD types since it results
- // in a considerably better code at least on MSVC.
- *__p = _T1();
-#endif /* _STLP_DEF_CONST_PLCT_NEW_BUG */
-}
-
-template <class _T1>
-inline void _Construct(_T1* __p) {
-#if defined (_STLP_DEBUG_UNINITIALIZED)
- memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_T1));
-#endif
-#if defined (_STLP_DEF_CONST_PLCT_NEW_BUG)
- _Construct_aux (__p, _HasDefaultZeroValue(__p)._Answer());
-#else
- _Construct_aux (__p, _Is_POD(__p)._Answer());
-#endif /* _STLP_DEF_CONST_PLCT_NEW_BUG */
-}
-
-template <class _Tp>
-inline void _Copy_Construct_aux(_Tp* __p, const _Tp& __val, const __false_type&) {
- new(__p) _Tp(__val);
-}
-
-template <class _Tp>
-inline void _Copy_Construct_aux(_Tp* __p, const _Tp& __val, const __true_type&) {
- // We use binary copying for POD types since it results
- // in a considerably better code at least on MSVC.
- *__p = __val;
-}
-
-template <class _Tp>
-inline void _Copy_Construct(_Tp* __p, const _Tp& __val) {
-#if defined (_STLP_DEBUG_UNINITIALIZED)
- memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_Tp));
-#endif
- _Copy_Construct_aux(__p, __val, _Is_POD(__p)._Answer());
-}
-
-template <class _T1, class _T2>
-inline void _Param_Construct_aux(_T1* __p, const _T2& __val, const __false_type&) {
- new(__p) _T1(__val);
-}
-
-template <class _T1, class _T2>
-inline void _Param_Construct_aux(_T1* __p, const _T2& __val, const __true_type&) {
- // We use binary copying for POD types since it results
- // in a considerably better code at least on MSVC.
- *__p = _T1(__val);
-}
-
-template <class _T1, class _T2>
-inline void _Param_Construct(_T1* __p, const _T2& __val) {
-#if defined (_STLP_DEBUG_UNINITIALIZED)
- memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_T1));
-#endif
- _Param_Construct_aux(__p, __val, _Is_POD(__p)._Answer());
-}
-
-template <class _T1, class _T2>
-inline void _Move_Construct_Aux(_T1* __p, _T2& __val, const __false_type& /*_IsPOD*/) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- new(__p) _T1(_STLP_PRIV _AsMoveSource(__val));
-#else
- _Param_Construct(__p, __val);
-#endif
-}
-
-template <class _T1, class _T2>
-inline void _Move_Construct_Aux(_T1* __p, _T2& __val, const __true_type& /*_IsPOD*/) {
- // We use binary copying for POD types since it results
- // in a considerably better code at least on MSVC.
- *__p = _T1(__val);
-}
-
-template <class _T1, class _T2>
-inline void _Move_Construct(_T1* __p, _T2& __val) {
-#if defined (_STLP_DEBUG_UNINITIALIZED)
- memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_T1));
-#endif
- _Move_Construct_Aux(__p, __val, _Is_POD(__p)._Answer());
-}
-
-#if defined(_STLP_NEW_REDEFINE)
-# if defined (DEBUG_NEW)
-# define new DEBUG_NEW
-# endif
-# undef _STLP_NEW_REDEFINE
-#endif
-
-template <class _ForwardIterator, class _Tp>
-_STLP_INLINE_LOOP void
-__destroy_range_aux(_ForwardIterator __first, _ForwardIterator __last, _Tp*, const __false_type& /*_Trivial_destructor*/) {
- for ( ; __first != __last; ++__first) {
- __destroy_aux(&(*__first), __false_type());
-#if defined (_STLP_DEBUG_UNINITIALIZED)
- memset((char*)&(*__first), _STLP_SHRED_BYTE, sizeof(_Tp));
-#endif
- }
-}
-
-template <class _ForwardIterator, class _Tp>
-#if defined (_STLP_DEBUG_UNINITIALIZED)
-_STLP_INLINE_LOOP void
-__destroy_range_aux(_ForwardIterator __first, _ForwardIterator __last, _Tp*, const __true_type& /*_Trivial_destructor*/) {
- for ( ; __first != __last; ++__first)
- memset((char*)&(*__first), _STLP_SHRED_BYTE, sizeof(_Tp));
-}
-#else
-inline void
-__destroy_range_aux(_ForwardIterator, _ForwardIterator, _Tp*, const __true_type& /*_Trivial_destructor*/) {}
-#endif
-
-template <class _ForwardIterator, class _Tp>
-inline void
-__destroy_range(_ForwardIterator __first, _ForwardIterator __last, _Tp *__ptr) {
- typedef typename __type_traits<_Tp>::has_trivial_destructor _Trivial_destructor;
- __destroy_range_aux(__first, __last, __ptr, _Trivial_destructor());
-}
-
-template <class _ForwardIterator>
-inline void _Destroy_Range(_ForwardIterator __first, _ForwardIterator __last) {
- __destroy_range(__first, __last, _STLP_VALUE_TYPE(__first, _ForwardIterator));
-}
-
-inline void _Destroy_Range(char*, char*) {}
-#if defined (_STLP_HAS_WCHAR_T) // dwa 8/15/97
-inline void _Destroy_Range(wchar_t*, wchar_t*) {}
-inline void _Destroy_Range(const wchar_t*, const wchar_t*) {}
-#endif
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _ForwardIterator, class _Tp>
-inline void
-__destroy_mv_srcs(_ForwardIterator __first, _ForwardIterator __last, _Tp *__ptr) {
- typedef typename __move_traits<_Tp>::complete _CompleteMove;
- __destroy_range_aux(__first, __last, __ptr, _CompleteMove());
-}
-#endif
-
-template <class _ForwardIterator>
-inline void _Destroy_Moved_Range(_ForwardIterator __first, _ForwardIterator __last)
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
-{ __destroy_mv_srcs(__first, __last, _STLP_VALUE_TYPE(__first, _ForwardIterator)); }
-#else
-{ _Destroy_Range(__first, __last); }
-#endif
-
-#if defined (_STLP_DEF_CONST_DEF_PARAM_BUG)
-// Those adaptors are here to fix common compiler bug regarding builtins:
-// expressions like int k = int() should initialize k to 0
-template <class _Tp>
-inline _Tp __default_constructed_aux(_Tp*, const __false_type&) {
- return _Tp();
-}
-template <class _Tp>
-inline _Tp __default_constructed_aux(_Tp*, const __true_type&) {
- return _Tp(0);
-}
-
-template <class _Tp>
-inline _Tp __default_constructed(_Tp* __p) {
- return __default_constructed_aux(__p, _HasDefaultZeroValue(__p)._Answer());
-}
-
-# define _STLP_DEFAULT_CONSTRUCTED(_TTp) __default_constructed((_TTp*)0)
-#else
-# define _STLP_DEFAULT_CONSTRUCTED(_TTp) _TTp()
-#endif /* _STLP_DEF_CONST_DEF_PARAM_BUG */
-
-
-#if !defined (_STLP_NO_ANACHRONISMS)
-// --------------------------------------------------
-// Old names from the HP STL.
-
-template <class _T1, class _T2>
-inline void construct(_T1* __p, const _T2& __val) {_Param_Construct(__p, __val); }
-template <class _T1>
-inline void construct(_T1* __p) { _STLP_STD::_Construct(__p); }
-template <class _Tp>
-inline void destroy(_Tp* __pointer) { _STLP_STD::_Destroy(__pointer); }
-template <class _ForwardIterator>
-inline void destroy(_ForwardIterator __first, _ForwardIterator __last) { _STLP_STD::_Destroy_Range(__first, __last); }
-#endif /* _STLP_NO_ANACHRONISMS */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_CONSTRUCT_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_cprolog.h b/stlport/stlport/stl/_cprolog.h
deleted file mode 100644
index 1d27656..0000000
--- a/stlport/stlport/stl/_cprolog.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* NOTE : this header has no guards and is MEANT for multiple inclusion!
- * If you are using "header protection" option with your compiler,
- * please also find #pragma which disables it and put it here, to
- * allow reentrancy of this header.
- */
-
-#ifdef std
-# undef std /* We undef "std" on entry , as STLport headers may include native ones. */
-#endif
-
-#ifdef _STLP_PROLOG_HEADER_INCLUDED
-# error STlport prolog header can not be reincluded as long as epilog has not be included.
-#endif
-
-#define _STLP_PROLOG_HEADER_INCLUDED
-
-#ifndef _STLP_FEATURES_H
-# include <stl/config/features.h>
-#endif
-
-/* If the platform provides any specific prolog actions,
- * like #pragmas, do include platform-specific prolog file */
-#if defined (_STLP_HAS_SPECIFIC_PROLOG_EPILOG)
-# include <stl/config/_prolog.h>
-#endif
diff --git a/stlport/stlport/stl/_cstdarg.h b/stlport/stlport/stl/_cstdarg.h
deleted file mode 100644
index e98f31c..0000000
--- a/stlport/stlport/stl/_cstdarg.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#ifndef _STLP_INTERNAL_CSTDARG
-#define _STLP_INTERNAL_CSTDARG
-
-#if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstdarg>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstdarg)
-# endif
-#else
-# include <stdarg.h>
-#endif
-
-#ifdef _STLP_IMPORT_VENDOR_CSTD
-_STLP_BEGIN_NAMESPACE
-using _STLP_VENDOR_CSTD::va_list;
-_STLP_END_NAMESPACE
-#endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-#endif
diff --git a/stlport/stlport/stl/_cstddef.h b/stlport/stlport/stl/_cstddef.h
deleted file mode 100644
index 35a585c..0000000
--- a/stlport/stlport/stl/_cstddef.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-#define _STLP_INTERNAL_CSTDDEF
-
-# if (__GNUC__ >= 3) && defined (__CYGWIN__) // this total HACK is the only expedient way I could cygwin to work with GCC 3.0
-# define __need_wint_t // mostly because wint_t didn't seem to get defined otherwise :(
-# define __need_wchar_t
-# define __need_size_t
-# define __need_ptrdiff_t
-# define __need_NULL
-# endif
-
-# if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstddef>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstddef)
-# endif
-# else
-# include <stddef.h>
-# endif
-
-# ifdef _STLP_IMPORT_VENDOR_CSTD
-_STLP_BEGIN_NAMESPACE
-using _STLP_VENDOR_CSTD::ptrdiff_t;
-using _STLP_VENDOR_CSTD::size_t;
-_STLP_END_NAMESPACE
-# endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-#endif /* _STLP_INTERNAL_CSTDDEF */
diff --git a/stlport/stlport/stl/_cstdio.h b/stlport/stlport/stl/_cstdio.h
deleted file mode 100644
index 67236f2..0000000
--- a/stlport/stlport/stl/_cstdio.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_CSTDIO
-#define _STLP_INTERNAL_CSTDIO
-
-#if defined (__Lynx__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stdarg.h>
-# else
-# include _STLP_NATIVE_C_HEADER(stdarg.h)
-# endif
-#endif
-
-#if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstdio>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstdio)
-# endif
-#else
-# include <stdio.h>
-#endif
-
-#if defined (__MWERKS__)
-# undef stdin
-# undef stdout
-# undef stderr
-# define stdin (&_STLP_VENDOR_CSTD::__files[0])
-# define stdout (&_STLP_VENDOR_CSTD::__files[1])
-# define stderr (&_STLP_VENDOR_CSTD::__files[2])
-#endif
-
-#if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER)
-inline int vsnprintf(char *s1, size_t n, const char *s2, va_list v)
-{ return _STLP_VENDOR_CSTD::_vsnprintf(s1, n, s2, v); }
-#endif
-
-#if defined (_STLP_IMPORT_VENDOR_CSTD )
-_STLP_BEGIN_NAMESPACE
-using _STLP_VENDOR_CSTD::FILE;
-using _STLP_VENDOR_CSTD::fpos_t;
-using _STLP_VENDOR_CSTD::size_t;
-
-// undef obsolete macros
-# undef putc
-# undef getc
-# undef getchar
-# undef putchar
-# undef feof
-# undef ferror
-
-# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-using _STLP_VENDOR_CSTD::clearerr;
-using _STLP_VENDOR_CSTD::fclose;
-using _STLP_VENDOR_CSTD::feof;
-using _STLP_VENDOR_CSTD::ferror;
-using _STLP_VENDOR_CSTD::fflush;
-using _STLP_VENDOR_CSTD::fgetc;
-using _STLP_VENDOR_CSTD::fgetpos;
-using _STLP_VENDOR_CSTD::fgets;
-using _STLP_VENDOR_CSTD::fopen;
-using _STLP_VENDOR_CSTD::fprintf;
-using _STLP_VENDOR_CSTD::fputc;
-using _STLP_VENDOR_CSTD::fputs;
-using _STLP_VENDOR_CSTD::fread;
-# if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
-using _STLP_VENDOR_CSTD::freopen;
-# endif
-using _STLP_VENDOR_CSTD::fscanf;
-using _STLP_VENDOR_CSTD::fseek;
-using _STLP_VENDOR_CSTD::fsetpos;
-using _STLP_VENDOR_CSTD::ftell;
-using _STLP_VENDOR_CSTD::fwrite;
-
-# if !(defined (__IBMCPP__) && (__IBMCPP__ >= 500))
-# if !defined (_WIN32_WCE) || (_WIN32_WCE < 400) // Supplied as macros, TODO: use inline function to redirect to the macros?
- using _STLP_VENDOR_CSTD::getc;
- using _STLP_VENDOR_CSTD::putc;
-# endif
- using _STLP_VENDOR_CSTD::getchar;
- using _STLP_VENDOR_CSTD::putchar;
-# endif
-
-using _STLP_VENDOR_CSTD::gets;
-# if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
-using _STLP_VENDOR_CSTD::perror;
-# endif
-using _STLP_VENDOR_CSTD::printf;
-using _STLP_VENDOR_CSTD::puts;
-# if !defined (_WIN32_WCE) || (_WIN32_WCE < 400)
-using _STLP_VENDOR_CSTD::remove;
-using _STLP_VENDOR_CSTD::rename;
-using _STLP_VENDOR_CSTD::rewind;
-using _STLP_VENDOR_CSTD::setbuf;
-using _STLP_VENDOR_CSTD::tmpfile;
-using _STLP_VENDOR_CSTD::tmpnam;
-# endif
-using _STLP_VENDOR_CSTD::scanf;
-using _STLP_VENDOR_CSTD::setvbuf;
-using _STLP_VENDOR_CSTD::sprintf;
-using _STLP_VENDOR_CSTD::sscanf;
-using _STLP_VENDOR_CSTD::ungetc;
-using _STLP_VENDOR_CSTD::vfprintf;
-using _STLP_VENDOR_CSTD::vprintf;
-using _STLP_VENDOR_CSTD::vsprintf;
-# if (defined (__MWERKS__) || (defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400)) || \
- (defined (__BORLANDC__)))
-using _STLP_VENDOR_CSTD::vsnprintf;
-# endif
-# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
-_STLP_END_NAMESPACE
-#endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-#endif /* _STLP_INTERNAL_CSTDIO */
diff --git a/stlport/stlport/stl/_cstdlib.h b/stlport/stlport/stl/_cstdlib.h
deleted file mode 100755
index b7a4351..0000000
--- a/stlport/stlport/stl/_cstdlib.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Copyright (c) 2010, The Linux Foundation. All rights reserved.
- */
-
-#ifndef _STLP_INTERNAL_CSTDLIB
-#define _STLP_INTERNAL_CSTDLIB
-
-#if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstdlib>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstdlib)
-# endif
-#else
-# include <stdlib.h>
-#endif
-
-#if defined (__BORLANDC__) && !defined (__linux__)
-/* Borland process.h header do not bring anything here and is just included
- * in order to avoid inclusion later. This header cannot be included later
- * because Borland compiler consider that for instance the abort function
- * defined as extern "C" cannot be overloaded and it finds 2 "overloads",
- * once in native std namespace and the other in STLport namespace...
- */
-# include <process.h>
-#endif
-
-/* on evc3/evc4 including stdlib.h also defines setjmp macro */
-#if defined (_STLP_WCE)
-# define _STLP_NATIVE_SETJMP_H_INCLUDED
-#endif
-
-#if defined (__MSL__) && (__MSL__ <= 0x5003)
-namespace std {
- typedef ::div_t div_t;
- typedef ::ldiv_t ldiv_t;
-# ifdef __MSL_LONGLONG_SUPPORT__
- typedef ::lldiv_t lldiv_t;
-# endif
-}
-#endif
-
-#ifdef _STLP_IMPORT_VENDOR_CSTD
-_STLP_BEGIN_NAMESPACE
-# if !defined (ANDROID)
-using _STLP_VENDOR_CSTD::div_t;
-using _STLP_VENDOR_CSTD::ldiv_t;
-# endif
-using _STLP_VENDOR_CSTD::size_t;
-
-# ifndef _STLP_NO_CSTD_FUNCTION_IMPORTS
-# ifndef _STLP_WCE
-// these functions just don't exist on Windows CE
-using _STLP_VENDOR_CSTD::abort;
-using _STLP_VENDOR_CSTD::getenv;
-# if !defined (ANDROID)
-using _STLP_VENDOR_CSTD::mblen;
-using _STLP_VENDOR_CSTD::mbtowc;
-using _STLP_VENDOR_CSTD::system;
-using _STLP_VENDOR_CSTD::bsearch;
-# endif
-# endif
-using _STLP_VENDOR_CSTD::atexit;
-using _STLP_VENDOR_CSTD::exit;
-using _STLP_VENDOR_CSTD::calloc;
-using _STLP_VENDOR_CSTD::free;
-using _STLP_VENDOR_CSTD::malloc;
-using _STLP_VENDOR_CSTD::realloc;
-using _STLP_VENDOR_CSTD::atof;
-using _STLP_VENDOR_CSTD::atoi;
-using _STLP_VENDOR_CSTD::atol;
-using _STLP_VENDOR_CSTD::mbstowcs;
-using _STLP_VENDOR_CSTD::strtod;
-using _STLP_VENDOR_CSTD::strtol;
-using _STLP_VENDOR_CSTD::strtoul;
-
-# if !(defined (_STLP_NO_NATIVE_WIDE_STREAMS) || defined (_STLP_NO_NATIVE_MBSTATE_T))
-using _STLP_VENDOR_CSTD::wcstombs;
-# ifndef _STLP_WCE
-using _STLP_VENDOR_CSTD::wctomb;
-# endif
-# endif
-using _STLP_VENDOR_CSTD::qsort;
-using _STLP_VENDOR_CSTD::labs;
-# if !defined (ANDROID)
-using _STLP_VENDOR_CSTD::ldiv;
-# endif
-# if defined (_STLP_LONG_LONG) && !defined (_STLP_NO_VENDOR_STDLIB_L)
-# if !defined(__sun)
-using _STLP_VENDOR_CSTD::llabs;
-# if !defined (ANDROID)
-using _STLP_VENDOR_CSTD::lldiv_t;
-using _STLP_VENDOR_CSTD::lldiv;
-# endif
-# else
-using ::llabs;
-using ::lldiv_t;
-using ::lldiv;
-# endif
-# endif
-using _STLP_VENDOR_CSTD::rand;
-using _STLP_VENDOR_CSTD::srand;
-# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
-_STLP_END_NAMESPACE
-#endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-#if (defined (__BORLANDC__) || defined (__WATCOMC__)) && defined (_STLP_USE_NEW_C_HEADERS)
-//In this config bcc define everything in std namespace and not in
-//the global one.
-inline int abs(int __x) { return _STLP_VENDOR_CSTD::abs(__x); }
-inline _STLP_VENDOR_CSTD::div_t div(int __x, int __y) { return _STLP_VENDOR_CSTD::div(__x, __y); }
-#endif
-
-#if defined(_MSC_EXTENSIONS) && defined(_STLP_MSVC) && (_STLP_MSVC <= 1300)
-# define _STLP_RESTORE_FUNCTION_INTRINSIC
-# pragma warning (push)
-# pragma warning (disable: 4162)
-# pragma function (abs)
-#endif
-
-//HP-UX native lib has abs() and div() functions in global namespace
-#if !defined (__SUNPRO_CC) && \
- (!defined (__HP_aCC) || (__HP_aCC < 30000))
-
-//MSVC starting with .Net 2003 already define all math functions in global namespace:
-# if !defined (__WATCOMC__) && \
- !defined (ANDROID) && \
- (!defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1310) || defined (UNDER_CE))
-inline long abs(long __x) { return _STLP_VENDOR_CSTD::labs(__x); }
-# endif
-
-/** VC since version 8 has this, the platform SDK and CE SDKs hanging behind. */
-# if !defined (__WATCOMC__) && \
- !defined (ANDROID) && \
- (!defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER) || defined (UNDER_CE))
-inline _STLP_VENDOR_CSTD::ldiv_t div(long __x, long __y) { return _STLP_VENDOR_CSTD::ldiv(__x, __y); }
-# endif
-
-#endif
-
-#if defined (_STLP_RESTORE_FUNCTION_INTRINSIC)
-# pragma intrinsic (abs)
-# pragma warning (pop)
-# undef _STLP_RESTORE_FUNCTION_INTRINSIC
-#endif
-
-#if defined (_STLP_LONG_LONG)
-# if !defined (_STLP_NO_VENDOR_STDLIB_L)
-# if !defined (__sun)
-# if !defined (ANDROID)
-inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return _STLP_VENDOR_CSTD::llabs(__x); }
-inline lldiv_t div(_STLP_LONG_LONG __x, _STLP_LONG_LONG __y) { return _STLP_VENDOR_CSTD::lldiv(__x, __y); }
-# endif
-# else
-inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return ::llabs(__x); }
-inline lldiv_t div(_STLP_LONG_LONG __x, _STLP_LONG_LONG __y) { return ::lldiv(__x, __y); }
-# endif
-# else
-inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
-# endif
-#endif
-
-/* C++ Standard is unclear about several call to 'using ::func' if new overloads
- * of ::func appears between 2 successive 'using' calls. To avoid this potential
- * problem we provide all abs overload before the 'using' call.
- * Beware: This header inclusion has to be after all abs overload of this file.
- * The first 'using ::abs' call is going to be in the other header.
- */
-#ifndef _STLP_INTERNAL_CMATH
-# include <stl/_cmath.h>
-#endif
-
-#if defined (_STLP_IMPORT_VENDOR_CSTD) && !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-// ad hoc, don't replace with _STLP_VENDOR_CSTD::abs here! - ptr 2005-03-05
-_STLP_BEGIN_NAMESPACE
-# if !defined (ANDROID)
-using ::abs;
-using ::div;
-# endif
-_STLP_END_NAMESPACE
-#endif
-
-#endif /* _STLP_INTERNAL_CSTDLIB */
diff --git a/stlport/stlport/stl/_cstring.h b/stlport/stlport/stl/_cstring.h
deleted file mode 100644
index fe0fd5f..0000000
--- a/stlport/stlport/stl/_cstring.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_CSTRING
-#define _STLP_INTERNAL_CSTRING
-
-#if defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstring>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstring)
-# endif
-#else
-# include <string.h>
-#endif
-
-#ifdef _STLP_IMPORT_VENDOR_CSTD
-_STLP_BEGIN_NAMESPACE
-# include <using/cstring>
-_STLP_END_NAMESPACE
-#endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-#endif /* _STLP_INTERNAL_CSTRING */
diff --git a/stlport/stlport/stl/_ctraits_fns.h b/stlport/stlport/stl/_ctraits_fns.h
deleted file mode 100644
index e4a4af1..0000000
--- a/stlport/stlport/stl/_ctraits_fns.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- */
-
-// WARNING: This is an internal header file, included by other C++
-// standard library headers. You should not attempt to use this header
-// file directly.
-
-#ifndef _STLP_INTERNAL_CTRAITS_FUNCTIONS_H
-#define _STLP_INTERNAL_CTRAITS_FUNCTIONS_H
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-// This file contains a few small adapters that allow a character
-// traits class to be used as a function object.
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Traits>
-struct _Eq_traits
- : public binary_function<typename _Traits::char_type,
- typename _Traits::char_type,
- bool> {
- bool operator()(const typename _Traits::char_type& __x,
- const typename _Traits::char_type& __y) const
- { return _Traits::eq(__x, __y); }
-};
-
-template <class _Traits>
-struct _Eq_char_bound
- : public unary_function<typename _Traits::char_type, bool> {
- typename _Traits::char_type __val;
- _Eq_char_bound(typename _Traits::char_type __c) : __val(__c) {}
- bool operator()(const typename _Traits::char_type& __x) const
- { return _Traits::eq(__x, __val); }
-};
-
-template <class _Traits>
-struct _Neq_char_bound
- : public unary_function<typename _Traits::char_type, bool>
-{
- typename _Traits::char_type __val;
- _Neq_char_bound(typename _Traits::char_type __c) : __val(__c) {}
- bool operator()(const typename _Traits::char_type& __x) const
- { return !_Traits::eq(__x, __val); }
-};
-
-template <class _Traits>
-struct _Eq_int_bound
- : public unary_function<typename _Traits::char_type, bool> {
- typename _Traits::int_type __val;
-
- _Eq_int_bound(typename _Traits::int_type __c) : __val(__c) {}
- bool operator()(const typename _Traits::char_type& __x) const
- { return _Traits::eq_int_type(_Traits::to_int_type(__x), __val); }
-};
-
-#if 0
-template <class _Traits>
-struct _Lt_traits
- : public binary_function<typename _Traits::char_type,
- typename _Traits::char_type,
- bool> {
- bool operator()(const typename _Traits::char_type& __x,
- const typename _Traits::char_type& __y) const
- { return _Traits::lt(__x, __y); }
-};
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_CTRAITS_FUNCTIONS_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_cwchar.h b/stlport/stlport/stl/_cwchar.h
deleted file mode 100644
index 87cb82b..0000000
--- a/stlport/stlport/stl/_cwchar.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_CWCHAR
-#define _STLP_INTERNAL_CWCHAR
-
-#if defined (_STLP_WCE_EVC3)
-# ifndef _STLP_INTERNAL_MBSTATE_T
-# include <stl/_mbstate_t.h>
-# endif
-#else
-# if defined (__GNUC__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cstddef>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cstddef)
-# endif
-# endif
-
-# if !defined (_STLP_NO_CWCHAR) && defined (_STLP_USE_NEW_C_HEADERS)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <cwchar>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(cwchar)
-# endif
-# if defined (__OpenBSD__)
-typedef _BSD_WINT_T_ wint_t;
-# endif /* __OpenBSD__ */
-
-# if defined (__DMC__)
-# define __STDC_LIMIT_MACROS
-# include <stdint.h> // WCHAR_MIN, WCHAR_MAX
-# endif
-# elif defined (_STLP_NO_WCHAR_T) || \
- (defined (__BORLANDC__) && (__BORLANDC__ < 0x570)) || \
- defined (__OpenBSD__) || defined (__FreeBSD__) || \
- (defined (__GNUC__) && (defined (__APPLE__) || defined ( __Lynx__ )))
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stddef.h>
-# else
-# include _STLP_NATIVE_C_HEADER(stddef.h)
-# endif
-# if defined (__Lynx__)
-# ifndef _WINT_T
-typedef long int wint_t;
-# define _WINT_T
-# endif /* _WINT_T */
-# endif
-# if defined(__OpenBSD__)
-typedef _BSD_WINT_T_ wint_t;
-# endif /* __OpenBSD__ */
-# else
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <wchar.h>
-# else
-# include _STLP_NATIVE_C_HEADER(wchar.h)
-# endif
-
-# if defined (__sun) && (defined (_XOPEN_SOURCE) || (_XOPEN_VERSION - 0 == 4))
-extern wint_t btowc();
-extern int fwprintf();
-extern int fwscanf();
-extern int fwide();
-extern int mbsinit();
-extern size_t mbrlen();
-extern size_t mbrtowc();
-extern size_t mbsrtowcs();
-extern int swprintf();
-extern int swscanf();
-extern int vfwprintf();
-extern int vwprintf();
-extern int vswprintf();
-extern size_t wcrtomb();
-extern size_t wcsrtombs();
-extern wchar_t *wcsstr();
-extern int wctob();
-extern wchar_t *wmemchr();
-extern int wmemcmp();
-extern wchar_t *wmemcpy();
-extern wchar_t *wmemmove();
-extern wchar_t *wmemset();
-extern int wprintf();
-extern int wscanf();
-# endif
-# endif
-
-# if defined (__MSL__) && (__MSL__ <= 0x51FF) /* dwa 2/28/99 - not yet implemented by MSL */
-# define _STLP_WCHAR_MSL_EXCLUDE 1
-namespace std {
- extern "C" size_t wcsftime(wchar_t * str, size_t max_size, const wchar_t * format_str, const struct tm * timeptr);
-}
-# define _STLP_NO_NATIVE_MBSTATE_T 1
-# elif defined (__BORLANDC__)
-# if !defined (_STLP_USE_NO_IOSTREAMS)
-# define _STLP_NO_NATIVE_MBSTATE_T
-# endif
-# define _STLP_WCHAR_BORLAND_EXCLUDE 1
-# endif
-
-# ifndef _STLP_INTERNAL_MBSTATE_T
-# include <stl/_mbstate_t.h>
-# endif
-
-# if !defined (_STLP_NO_WCHAR_T)
-# ifndef WCHAR_MIN
-# define WCHAR_MIN 0
-/* SUNpro has some bugs with casts. wchar_t is size of int there anyway. */
-# if defined (__SUNPRO_CC) || defined (__DJGPP)
-# define WCHAR_MAX (~0)
-# else
-# define WCHAR_MAX ((wchar_t)~0)
-# endif
-# endif
-# if defined (__DMC__) || (defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400)) || defined(_WIN32_WCE)
-/* Compilers that do not define WCHAR_MIN and WCHAR_MAX to be testable at
- * preprocessing time. */
-# undef WCHAR_MIN
-# define WCHAR_MIN 0
-# undef WCHAR_MAX
-# define WCHAR_MAX 0xffff
-# endif
-# if defined (__GNUC__) && defined (__alpha__)
-/* Definition of WCHAR_MIN and MAX are wrong for alpha platform
- * as gcc consider wchar_t as an unsigned type but WCHAR_MIN is defined as
- * a negative value. Static assertion is here to check that a future alpha
- * SDK or a future gcc won't change the situation making this workaround
- * useless.
- */
-/* Check that gcc still consider wchar_t as unsigned */
-_STLP_STATIC_ASSERT(((wchar_t)-1 > 0))
-/* Check that WCHAR_MIN value hasn't been fixed */
-_STLP_STATIC_ASSERT((WCHAR_MIN < 0))
-# undef WCHAR_MIN
-# define WCHAR_MIN 0
-# undef WCHAR_MAX
-# define WCHAR_MAX 0xffffffff
-# endif
-# if defined(__HP_aCC) && (__HP_aCC >= 60000)
-/* Starting with B.11.31, HP-UX/ia64 provides C99-compliant definitions
- * of WCHAR_MIN/MAX macros without having to define
- * _INCLUDE_STDC__SOURCE_199901 macro (which aCC compiler does not
- * predefine). Let STLport provide B.11.31 definitions on any version of
- * HP-UX/ia64.
- */
-# undef WCHAR_MIN
-# define WCHAR_MIN 0
-# undef WCHAR_MAX
-# define WCHAR_MAX UINT_MAX
-# endif
-# endif
-
-# if defined (_STLP_IMPORT_VENDOR_CSTD)
-
-# if defined (__SUNPRO_CC) && !defined (_STLP_HAS_NO_NEW_C_HEADERS)
-using _STLP_VENDOR_CSTD::wint_t;
-# endif
-
-_STLP_BEGIN_NAMESPACE
-# if defined (_STLP_NO_WCHAR_T)
-typedef int wint_t;
-# else
-// gcc 3.0 has a glitch : wint_t only sucked into the global namespace if _GLIBCPP_USE_WCHAR_T is defined
-// __MWERKS__ has definition in wchar_t.h (MSL C++), but ones differ from definition
-// in stdio.h; I prefer settings from last file.
-# if (defined (__GNUC__) && ! defined (_GLIBCPP_USE_WCHAR_T))
-using ::wint_t;
-# else
-using _STLP_VENDOR_CSTD::wint_t;
-# endif
-# endif
-
-using _STLP_VENDOR_CSTD::size_t;
-
-# if !defined (_STLP_NO_NATIVE_MBSTATE_T) && !defined (_STLP_USE_OWN_MBSTATE_T)
-using _STLP_VENDOR_MB_NAMESPACE::mbstate_t;
-
-# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) && !defined(_STLP_WCHAR_BORLAND_EXCLUDE) && \
- (!defined(__MSL__) || __MSL__ > 0x6001)
-# if defined (__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 8))) || \
- !(defined (__KCC) || defined (__GNUC__)) && !defined(_STLP_WCE_NET)
-using _STLP_VENDOR_MB_NAMESPACE::btowc;
-# if (!defined(__MSL__) || __MSL__ > 0x7001)
-using _STLP_VENDOR_MB_NAMESPACE::mbsinit;
-# endif
-# endif
-# if defined (__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 8))) || \
- !defined (__GNUC__) && !defined(_STLP_WCE_NET)
-using _STLP_VENDOR_MB_NAMESPACE::mbrlen;
-using _STLP_VENDOR_MB_NAMESPACE::mbrtowc;
-using _STLP_VENDOR_MB_NAMESPACE::mbsrtowcs;
-using _STLP_VENDOR_MB_NAMESPACE::wcrtomb;
-using _STLP_VENDOR_MB_NAMESPACE::wcsrtombs;
-# endif
-# endif /* BORLAND && !__MSL__ || __MSL__ > 0x6001 */
-
-# endif /* _STLP_NO_NATIVE_MBSTATE_T */
-
-# if !defined (_STLP_NO_NATIVE_WIDE_FUNCTIONS) && ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-
-# if !defined (_STLP_WCHAR_BORLAND_EXCLUDE) && ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-using _STLP_VENDOR_CSTD::fgetwc;
-using _STLP_VENDOR_CSTD::fgetws;
-using _STLP_VENDOR_CSTD::fputwc;
-using _STLP_VENDOR_CSTD::fputws;
-# endif
-
-# if !(defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_BORLAND_EXCLUDE) || \
- defined(_STLP_WCHAR_HPACC_EXCLUDE) )
-# if !defined (__DECCXX)
-using _STLP_VENDOR_CSTD::fwide;
-# endif
-using _STLP_VENDOR_CSTD::fwprintf;
-using _STLP_VENDOR_CSTD::fwscanf;
-using _STLP_VENDOR_CSTD::getwchar;
-# endif
-
-# if !defined(_STLP_WCHAR_BORLAND_EXCLUDE)
-# ifndef _STLP_WCE_NET
-using _STLP_VENDOR_CSTD::getwc;
-# endif
-using _STLP_VENDOR_CSTD::ungetwc;
-# ifndef _STLP_WCE_NET
-using _STLP_VENDOR_CSTD::putwc;
-# endif
-using _STLP_VENDOR_CSTD::putwchar;
-# endif
-
-# if !(defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_BORLAND_EXCLUDE) || \
- defined (_STLP_WCHAR_HPACC_EXCLUDE) )
-# if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB <= 1300) || \
- defined (__MINGW32__)
-# undef swprintf
-# define swprintf _snwprintf
-# undef vswprintf
-# define vswprintf _vsnwprintf
-using ::swprintf;
-using ::vswprintf;
-# else
-using _STLP_VENDOR_CSTD::swprintf;
-using _STLP_VENDOR_CSTD::vswprintf;
-# endif
-using _STLP_VENDOR_CSTD::swscanf;
-using _STLP_VENDOR_CSTD::vfwprintf;
-using _STLP_VENDOR_CSTD::vwprintf;
-
-# if (!defined(__MSL__) || __MSL__ > 0x7001 ) && !defined(_STLP_WCE_NET) && \
- !defined(_STLP_USE_UCLIBC) /* at least in uClibc 0.9.26 */
-
-using _STLP_VENDOR_CSTD::wcsftime;
-# endif
-using _STLP_VENDOR_CSTD::wcstok;
-
-# endif
-
-# if !defined (_STLP_WCE_NET)
-using _STLP_VENDOR_CSTD::wcscoll;
-using _STLP_VENDOR_CSTD::wcsxfrm;
-# endif
-using _STLP_VENDOR_CSTD::wcscat;
-using _STLP_VENDOR_CSTD::wcsrchr;
-using _STLP_VENDOR_CSTD::wcscmp;
-
-using _STLP_VENDOR_CSTD::wcscpy;
-using _STLP_VENDOR_CSTD::wcscspn;
-
-using _STLP_VENDOR_CSTD::wcslen;
-using _STLP_VENDOR_CSTD::wcsncat;
-using _STLP_VENDOR_CSTD::wcsncmp;
-using _STLP_VENDOR_CSTD::wcsncpy;
-using _STLP_VENDOR_CSTD::wcspbrk;
-using _STLP_VENDOR_CSTD::wcschr;
-
-using _STLP_VENDOR_CSTD::wcsspn;
-
-# if !defined (_STLP_WCHAR_BORLAND_EXCLUDE)
-using _STLP_VENDOR_CSTD::wcstod;
-using _STLP_VENDOR_CSTD::wcstol;
-# endif
-
-# if !(defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_HPACC_EXCLUDE) )
-using _STLP_VENDOR_CSTD::wcsstr;
-using _STLP_VENDOR_CSTD::wmemchr;
-
-# if !defined (_STLP_WCHAR_BORLAND_EXCLUDE)
-# if !defined (_STLP_WCE_NET)
-using _STLP_VENDOR_CSTD::wctob;
-# endif
-# if !defined (__DMC__)
-using _STLP_VENDOR_CSTD::wmemcmp;
-using _STLP_VENDOR_CSTD::wmemmove;
-# endif
-using _STLP_VENDOR_CSTD::wprintf;
-using _STLP_VENDOR_CSTD::wscanf;
-# endif
-
-# if defined (__BORLANDC__) && !defined (__linux__)
-inline wchar_t* _STLP_wmemcpy(wchar_t* __wdst, const wchar_t* __wsrc, size_t __n)
-{ return __STATIC_CAST(wchar_t*, _STLP_VENDOR_CSTD::wmemcpy(__wdst, __wsrc, __n)); }
-inline wchar_t* _STLP_wmemset(wchar_t* __wdst, wchar_t __wc, size_t __n)
-{ return __STATIC_CAST(wchar_t*, _STLP_VENDOR_CSTD::memset(__wdst, __wc, __n)); }
-# undef wmemcpy
-# undef wmemset
-inline wchar_t* wmemcpy(wchar_t* __wdst, const wchar_t* __wsrc, size_t __n)
-{ return _STLP_wmemcpy(__wdst, __wsrc, __n); }
-inline wchar_t* wmemset(wchar_t* __wdst, wchar_t __wc, size_t __n)
-{ return _STLP_wmemset(__wdst, __wc, __n); }
-# elif defined (__DMC__)
-inline wchar_t* wmemcpy(wchar_t* __RESTRICT __wdst, const wchar_t* __RESTRICT __wsrc, size_t __n)
-{ return __STATIC_CAST(wchar_t*, memcpy(__wdst, __wsrc, __n * sizeof(wchar_t))); }
-inline wchar_t* wmemmove(wchar_t* __RESTRICT __wdst, const wchar_t * __RESTRICT __wc, size_t __n)
-{ return __STATIC_CAST(wchar_t*, memmove(__wdst, __wc, __n * sizeof(wchar_t))); }
-inline wchar_t* wmemset(wchar_t* __wdst, wchar_t __wc, size_t __n)
-{ for (size_t i = 0; i < __n; i++) __wdst[i] = __wc; return __wdst; }
-# else
-using _STLP_VENDOR_CSTD::wmemcpy;
-using _STLP_VENDOR_CSTD::wmemset;
-# endif
-# endif
-
-# endif /* _STLP_NO_NATIVE_WIDE_FUNCTIONS */
-_STLP_END_NAMESPACE
-
-# endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-# undef _STLP_WCHAR_SUNPRO_EXCLUDE
-# undef _STLP_WCHAR_MSL_EXCLUDE
-
-# endif /* !defined(_STLP_WCE_EVC3) */
-
-#endif /* _STLP_INTERNAL_CWCHAR */
diff --git a/stlport/stlport/stl/_deque.c b/stlport/stlport/stl/_deque.c
deleted file mode 100644
index 74e9ef6..0000000
--- a/stlport/stlport/stl/_deque.c
+++ /dev/null
@@ -1,823 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_DEQUE_C
-#define _STLP_DEQUE_C
-
-#ifndef _STLP_INTERNAL_DEQUE_H
-# include <stl/_deque.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// Non-inline member functions from _Deque_base.
-
-template <class _Tp, class _Alloc >
-_Deque_base<_Tp,_Alloc >::~_Deque_base() {
- if (_M_map._M_data) {
- _M_destroy_nodes(_M_start._M_node, this->_M_finish._M_node + 1);
- _M_map.deallocate(_M_map._M_data, _M_map_size._M_data);
- }
-}
-
-template <class _Tp, class _Alloc >
-void _Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t __num_elements) {
- size_t __num_nodes = __num_elements / this->buffer_size() + 1 ;
-
- _M_map_size._M_data = (max)((size_t) _S_initial_map_size, __num_nodes + 2);
- _M_map._M_data = _M_map.allocate(_M_map_size._M_data);
-
- _Tp** __nstart = _M_map._M_data + (_M_map_size._M_data - __num_nodes) / 2;
- _Tp** __nfinish = __nstart + __num_nodes;
-
- _STLP_TRY {
- _M_create_nodes(__nstart, __nfinish);
- }
- _STLP_UNWIND((_M_map.deallocate(_M_map._M_data, _M_map_size._M_data),
- _M_map._M_data = 0, _M_map_size._M_data = 0))
- _M_start._M_set_node(__nstart);
- this->_M_finish._M_set_node(__nfinish - 1);
- _M_start._M_cur = _M_start._M_first;
- this->_M_finish._M_cur = this->_M_finish._M_first + __num_elements % this->buffer_size();
-}
-
-template <class _Tp, class _Alloc >
-void _Deque_base<_Tp,_Alloc>::_M_create_nodes(_Tp** __nstart,
- _Tp** __nfinish) {
- _Tp** __cur = __nstart;
- _STLP_TRY {
- for (; __cur < __nfinish; ++__cur)
- *__cur = _M_map_size.allocate(this->buffer_size());
- }
- _STLP_UNWIND(_M_destroy_nodes(__nstart, __cur))
-}
-
-template <class _Tp, class _Alloc >
-void _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart,
- _Tp** __nfinish) {
- for (_Tp** __n = __nstart; __n < __nfinish; ++__n)
- _M_map_size.deallocate(*__n, this->buffer_size());
-}
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define deque _STLP_PTR_IMPL_NAME(deque)
-#elif defined (_STLP_DEBUG)
-# define deque _STLP_NON_DBG_NAME(deque)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-// qualified references
-# define __iterator__ _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >
-# define const_iterator _Deque_iterator<_Tp, _Const_traits<_Tp> >
-# define iterator __iterator__
-# define size_type size_t
-# define value_type _Tp
-#else
-# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE deque<_Tp, _Alloc>::iterator
-#endif
-
-template <class _Tp, class _Alloc >
-deque<_Tp, _Alloc >&
-deque<_Tp, _Alloc >::operator= (const deque<_Tp, _Alloc >& __x) {
- const size_type __len = size();
- if (&__x != this) {
- if (__len >= __x.size())
- erase(_STLP_STD::copy(__x.begin(), __x.end(), this->_M_start), this->_M_finish);
- else {
- const_iterator __mid = __x.begin() + difference_type(__len);
- _STLP_STD::copy(__x.begin(), __mid, this->_M_start);
- insert(this->_M_finish, __mid, __x.end());
- }
- }
- return *this;
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp, _Alloc >::_M_fill_insert(iterator __pos,
- size_type __n, const value_type& __x) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- if (__pos._M_cur == this->_M_start._M_cur) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- _STLP_TRY {
- uninitialized_fill(__new_start, this->_M_start, __x);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- this->_M_start = __new_start;
- }
- else if (__pos._M_cur == this->_M_finish._M_cur) {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- _STLP_TRY {
- uninitialized_fill(this->_M_finish, __new_finish, __x);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node+1, __new_finish._M_node+1))
- this->_M_finish = __new_finish;
- }
- else
- _M_fill_insert_aux(__pos, __n, __x, _Movable());
-}
-
-#if !defined (_STLP_MEMBER_TEMPLATES)
-
-template <class _Tp, class _Alloc >
-void deque<_Tp, _Alloc>::insert(iterator __pos,
- const value_type* __first, const value_type* __last) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- size_type __n = __last - __first;
- if (__pos._M_cur == this->_M_start._M_cur) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- _STLP_TRY {
- _STLP_PRIV __ucopy(__first, __last, __new_start);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- this->_M_start = __new_start;
- }
- else if (__pos._M_cur == this->_M_finish._M_cur) {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- _STLP_TRY {
- _STLP_PRIV __ucopy(__first, __last, this->_M_finish);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1,
- __new_finish._M_node + 1))
- this->_M_finish = __new_finish;
- }
- else
- _M_insert_range_aux(__pos, __first, __last, __n, _Movable());
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::insert(iterator __pos,
- const_iterator __first, const_iterator __last) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- size_type __n = __last - __first;
- if (__pos._M_cur == this->_M_start._M_cur) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- _STLP_TRY {
- _STLP_PRIV __ucopy(__first, __last, __new_start);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- this->_M_start = __new_start;
- }
- else if (__pos._M_cur == this->_M_finish._M_cur) {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- _STLP_TRY {
- _STLP_PRIV __ucopy(__first, __last, this->_M_finish);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1,
- __new_finish._M_node + 1))
- this->_M_finish = __new_finish;
- }
- else
- _M_insert_range_aux(__pos, __first, __last, __n, _Movable());
-}
-
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-template <class _Tp, class _Alloc >
-__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __pos,
- const __true_type& /*_Movable*/) {
- difference_type __index = __pos - this->_M_start;
- if (size_type(__index) < this->size() >> 1) {
- //We move the start of the deque one position to the right
- //starting from the rightmost element to move.
- iterator __src = __pos, __dst = __pos;
- _STLP_STD::_Destroy(&(*__dst));
- if (__src != this->_M_start) {
- for (--__src; __dst != this->_M_start; --__src, --__dst) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- }
- _M_pop_front_aux();
- }
- else {
- iterator __src = __pos, __dst = __pos;
- _STLP_STD::_Destroy(&(*__dst));
- for (++__src; __src != this->_M_finish; ++__src, ++__dst) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- //Duplication of the pop_back code without the destroy which has already been done:
- if (this->_M_finish._M_cur != this->_M_finish._M_first) {
- --this->_M_finish._M_cur;
- }
- else {
- _M_pop_back_aux();
- }
- }
- return this->_M_start + __index;
-}
-
-template <class _Tp, class _Alloc >
-__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __pos,
- const __false_type& /*_Movable*/) {
- iterator __next = __pos;
- ++__next;
- difference_type __index = __pos - this->_M_start;
- if (size_type(__index) < this->size() >> 1) {
- copy_backward(this->_M_start, __pos, __next);
- pop_front();
- }
- else {
- _STLP_STD::copy(__next, this->_M_finish, __pos);
- pop_back();
- }
- return this->_M_start + __index;
-}
-
-template <class _Tp, class _Alloc >
-__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __first, iterator __last,
- const __true_type& /*_Movable*/) {
- difference_type __n = __last - __first;
- difference_type __elems_before = __first - this->_M_start;
- if (__elems_before <= difference_type(this->size() - __n) / 2) {
- iterator __src = __first, __dst = __last;
- if (__src != this->_M_start) {
- for (--__src, --__dst; (__src >= this->_M_start) && (__dst >= __first); --__src, --__dst) {
- _STLP_STD::_Destroy(&(*__dst));
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- }
- if (__dst >= __first) {
- //There are more elements to erase than elements to move
- _STLP_STD::_Destroy_Range(__first, ++__dst);
- _STLP_STD::_Destroy_Moved_Range(this->_M_start, __first);
- }
- else {
- //There are more elements to move than elements to erase
- for (; __src >= this->_M_start; --__src, --__dst) {
- _STLP_STD::_Destroy_Moved(&(*__dst));
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- }
- _STLP_STD::_Destroy_Moved_Range(this->_M_start, ++__dst);
- }
- }
- else {
- _STLP_STD::_Destroy_Range(this->_M_start, __last);
- }
- iterator __new_start = this->_M_start + __n;
- this->_M_destroy_nodes(this->_M_start._M_node, __new_start._M_node);
- this->_M_start = __new_start;
- }
- else {
- if (__last != this->_M_finish) {
- iterator __src = __last, __dst = __first;
- for (; (__src != this->_M_finish) && (__dst != __last); ++__src, ++__dst) {
- _STLP_STD::_Destroy(&(*__dst));
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- }
- if (__dst != __last) {
- //There are more elements to erase than elements to move
- _STLP_STD::_Destroy_Range(__dst, __last);
- _STLP_STD::_Destroy_Moved_Range(__last, this->_M_finish);
- }
- else {
- //There are more elements to move than elements to erase
- for (; __src != this->_M_finish; ++__src, ++__dst) {
- _STLP_STD::_Destroy_Moved(&(*__dst));
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- }
- _STLP_STD::_Destroy_Moved_Range(__dst, this->_M_finish);
- }
- }
- else {
- _STLP_STD::_Destroy_Range(__first, this->_M_finish);
- }
- iterator __new_finish = this->_M_finish - __n;
- this->_M_destroy_nodes(__new_finish._M_node + 1, this->_M_finish._M_node + 1);
- this->_M_finish = __new_finish;
- }
- return this->_M_start + __elems_before;
-}
-
-template <class _Tp, class _Alloc >
-__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __first, iterator __last,
- const __false_type& /*_Movable*/) {
- difference_type __n = __last - __first;
- difference_type __elems_before = __first - this->_M_start;
- if (__elems_before <= difference_type(this->size() - __n) / 2) {
- copy_backward(this->_M_start, __first, __last);
- iterator __new_start = this->_M_start + __n;
- _STLP_STD::_Destroy_Range(this->_M_start, __new_start);
- this->_M_destroy_nodes(this->_M_start._M_node, __new_start._M_node);
- this->_M_start = __new_start;
- }
- else {
- _STLP_STD::copy(__last, this->_M_finish, __first);
- iterator __new_finish = this->_M_finish - __n;
- _STLP_STD::_Destroy_Range(__new_finish, this->_M_finish);
- this->_M_destroy_nodes(__new_finish._M_node + 1, this->_M_finish._M_node + 1);
- this->_M_finish = __new_finish;
- }
- return this->_M_start + __elems_before;
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::clear() {
- for (_Map_pointer __node = this->_M_start._M_node + 1;
- __node < this->_M_finish._M_node;
- ++__node) {
- _STLP_STD::_Destroy_Range(*__node, *__node + this->buffer_size());
- this->_M_map_size.deallocate(*__node, this->buffer_size());
- }
-
- if (this->_M_start._M_node != this->_M_finish._M_node) {
- _STLP_STD::_Destroy_Range(this->_M_start._M_cur, this->_M_start._M_last);
- _STLP_STD::_Destroy_Range(this->_M_finish._M_first, this->_M_finish._M_cur);
- this->_M_map_size.deallocate(this->_M_finish._M_first, this->buffer_size());
- }
- else
- _STLP_STD::_Destroy_Range(this->_M_start._M_cur, this->_M_finish._M_cur);
-
- this->_M_finish = this->_M_start;
-}
-
-// Precondition: this->_M_start and this->_M_finish have already been initialized,
-// but none of the deque's elements have yet been constructed.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __val,
- const __false_type& /*_TrivialInit*/) {
- _Map_pointer __cur = this->_M_start._M_node;
- _STLP_TRY {
- for (; __cur < this->_M_finish._M_node; ++__cur)
- uninitialized_fill(*__cur, *__cur + this->buffer_size(), __val);
- uninitialized_fill(this->_M_finish._M_first, this->_M_finish._M_cur, __val);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(this->_M_start, iterator(*__cur, __cur)))
-}
-
-
-// Called only if this->_M_finish._M_cur == this->_M_finish._M_last - 1.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_push_back_aux_v(const value_type& __t) {
- _M_reserve_map_at_back();
- *(this->_M_finish._M_node + 1) = this->_M_map_size.allocate(this->buffer_size());
- _STLP_TRY {
- _Copy_Construct(this->_M_finish._M_cur, __t);
- this->_M_finish._M_set_node(this->_M_finish._M_node + 1);
- this->_M_finish._M_cur = this->_M_finish._M_first;
- }
- _STLP_UNWIND(this->_M_map_size.deallocate(*(this->_M_finish._M_node + 1),
- this->buffer_size()))
-}
-
-#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS)
-// Called only if this->_M_finish._M_cur == this->_M_finish._M_last - 1.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_push_back_aux() {
- _M_reserve_map_at_back();
- *(this->_M_finish._M_node + 1) = this->_M_map_size.allocate(this->buffer_size());
- _STLP_TRY {
- _STLP_STD::_Construct(this->_M_finish._M_cur);
- this->_M_finish._M_set_node(this->_M_finish._M_node + 1);
- this->_M_finish._M_cur = this->_M_finish._M_first;
- }
- _STLP_UNWIND(this->_M_map_size.deallocate(*(this->_M_finish._M_node + 1),
- this->buffer_size()))
-}
-#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-
-// Called only if this->_M_start._M_cur == this->_M_start._M_first.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_push_front_aux_v(const value_type& __t) {
- _M_reserve_map_at_front();
- *(this->_M_start._M_node - 1) = this->_M_map_size.allocate(this->buffer_size());
- _STLP_TRY {
- this->_M_start._M_set_node(this->_M_start._M_node - 1);
- this->_M_start._M_cur = this->_M_start._M_last - 1;
- _Copy_Construct(this->_M_start._M_cur, __t);
- }
- _STLP_UNWIND((++this->_M_start,
- this->_M_map_size.deallocate(*(this->_M_start._M_node - 1), this->buffer_size())))
-}
-
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
-// Called only if this->_M_start._M_cur == this->_M_start._M_first.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_push_front_aux() {
- _M_reserve_map_at_front();
- *(this->_M_start._M_node - 1) = this->_M_map_size.allocate(this->buffer_size());
- _STLP_TRY {
- this->_M_start._M_set_node(this->_M_start._M_node - 1);
- this->_M_start._M_cur = this->_M_start._M_last - 1;
- _STLP_STD::_Construct(this->_M_start._M_cur);
- }
- _STLP_UNWIND((++this->_M_start, this->_M_map_size.deallocate(*(this->_M_start._M_node - 1),
- this->buffer_size())))
-}
-#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-
-// Called only if this->_M_finish._M_cur == this->_M_finish._M_first.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_pop_back_aux() {
- this->_M_map_size.deallocate(this->_M_finish._M_first, this->buffer_size());
- this->_M_finish._M_set_node(this->_M_finish._M_node - 1);
- this->_M_finish._M_cur = this->_M_finish._M_last - 1;
-}
-
-// Note that if the deque has at least one element (a precondition for this member
-// function), and if this->_M_start._M_cur == this->_M_start._M_last, then the deque
-// must have at least two nodes.
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_pop_front_aux() {
- if (this->_M_start._M_cur != this->_M_start._M_last - 1)
- ++this->_M_start._M_cur;
- else {
- this->_M_map_size.deallocate(this->_M_start._M_first, this->buffer_size());
- this->_M_start._M_set_node(this->_M_start._M_node + 1);
- this->_M_start._M_cur = this->_M_start._M_first;
- }
-}
-
-template <class _Tp, class _Alloc >
-__iterator__ deque<_Tp,_Alloc>::_M_fill_insert_aux(iterator __pos, size_type __n,
- const value_type& __x,
- const __true_type& /*_Movable*/) {
- const difference_type __elems_before = __pos - this->_M_start;
- size_type __length = this->size();
- value_type __x_copy = __x;
- if (__elems_before <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- __pos = this->_M_start + __elems_before;
- _STLP_TRY {
- iterator __dst = __new_start;
- iterator __src = this->_M_start;
- for (; __src != __pos; ++__dst, ++__src) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_start = __new_start;
- uninitialized_fill(__dst, __src, __x_copy);
- __pos = __dst;
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- const difference_type __elems_after = difference_type(__length) - __elems_before;
- __pos = this->_M_finish - __elems_after;
- _STLP_TRY {
- iterator __dst = __new_finish;
- iterator __src = this->_M_finish;
- for (--__src, --__dst; __src >= __pos; --__src, --__dst) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_finish = __new_finish;
- uninitialized_fill(__pos, __pos + __n, __x_copy);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
- return __pos;
-}
-
-template <class _Tp, class _Alloc >
-__iterator__ deque<_Tp,_Alloc>::_M_fill_insert_aux(iterator __pos, size_type __n,
- const value_type& __x,
- const __false_type& /*_Movable*/) {
- const difference_type __elems_before = __pos - this->_M_start;
- size_type __length = this->size();
- value_type __x_copy = __x;
- if (__elems_before <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- iterator __old_start = this->_M_start;
- __pos = this->_M_start + __elems_before;
- _STLP_TRY {
- if (__elems_before >= difference_type(__n)) {
- iterator __start_n = this->_M_start + difference_type(__n);
- _STLP_PRIV __ucopy(this->_M_start, __start_n, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__start_n, __pos, __old_start);
- _STLP_STD::fill(__pos - difference_type(__n), __pos, __x_copy);
- __pos -= difference_type(__n);
- }
- else {
- _STLP_PRIV __uninitialized_copy_fill(this->_M_start, __pos, __new_start,
- this->_M_start, __x_copy);
- this->_M_start = __new_start;
- fill(__old_start, __pos, __x_copy);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- iterator __old_finish = this->_M_finish;
- const difference_type __elems_after =
- difference_type(__length) - __elems_before;
- __pos = this->_M_finish - __elems_after;
- _STLP_TRY {
- if (__elems_after > difference_type(__n)) {
- iterator __finish_n = this->_M_finish - difference_type(__n);
- _STLP_PRIV __ucopy(__finish_n, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- copy_backward(__pos, __finish_n, __old_finish);
- fill(__pos, __pos + difference_type(__n), __x_copy);
- }
- else {
- _STLP_PRIV __uninitialized_fill_copy(this->_M_finish, __pos + difference_type(__n),
- __x_copy, __pos, this->_M_finish);
- this->_M_finish = __new_finish;
- fill(__pos, __old_finish, __x_copy);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
- return __pos;
-}
-
-#if !defined (_STLP_MEMBER_TEMPLATES)
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos,
- const value_type* __first, const value_type* __last,
- size_type __n, const __true_type& /*_Movable*/) {
- const difference_type __elems_before = __pos - this->_M_start;
- size_type __length = size();
- if (__elems_before <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- __pos = this->_M_start + __elems_before;
- _STLP_TRY {
- iterator __dst = __new_start;
- iterator __src = this->_M_start;
- for (; __src != __pos; ++__dst, ++__src) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_start = __new_start;
- _STLP_PRIV __ucopy(__first, __last, __dst);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- const difference_type __elems_after = difference_type(__length) - __elems_before;
- __pos = this->_M_finish - __elems_after;
- _STLP_TRY {
- iterator __dst = __new_finish;
- iterator __src = this->_M_finish;
- for (--__src, --__dst; __src >= __pos; --__src, --__dst) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_finish = __new_finish;
- _STLP_PRIV __ucopy(__first, __last, __pos);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos,
- const value_type* __first, const value_type* __last,
- size_type __n, const __false_type& /*_Movable*/) {
- const difference_type __elems_before = __pos - this->_M_start;
- size_type __length = size();
- if (__elems_before <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- iterator __old_start = this->_M_start;
- __pos = this->_M_start + __elems_before;
- _STLP_TRY {
- if (__elems_before >= difference_type(__n)) {
- iterator __start_n = this->_M_start + difference_type(__n);
- _STLP_PRIV __ucopy(this->_M_start, __start_n, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__start_n, __pos, __old_start);
- _STLP_STD::copy(__first, __last, __pos - difference_type(__n));
- }
- else {
- const value_type* __mid = __first + (difference_type(__n) - __elems_before);
- _STLP_PRIV __uninitialized_copy_copy(this->_M_start, __pos, __first, __mid, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__mid, __last, __old_start);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- iterator __old_finish = this->_M_finish;
- const difference_type __elems_after =
- difference_type(__length) - __elems_before;
- __pos = this->_M_finish - __elems_after;
- _STLP_TRY {
-
- if (__elems_after > difference_type(__n)) {
- iterator __finish_n = this->_M_finish - difference_type(__n);
- _STLP_PRIV __ucopy(__finish_n, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- _STLP_STD::copy_backward(__pos, __finish_n, __old_finish);
- _STLP_STD::copy(__first, __last, __pos);
- }
- else {
- const value_type* __mid = __first + __elems_after;
- _STLP_PRIV __uninitialized_copy_copy(__mid, __last, __pos, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- _STLP_STD::copy(__first, __mid, __pos);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos,
- const_iterator __first, const_iterator __last,
- size_type __n, const __true_type& /*_Movable*/) {
- const difference_type __elems_before = __pos - this->_M_start;
- size_type __length = size();
- if (__elems_before <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- __pos = this->_M_start + __elems_before;
- _STLP_TRY {
- iterator __dst = __new_start;
- iterator __src = this->_M_start;
- for (; __src != __pos; ++__dst, ++__src) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_start = __new_start;
- _STLP_PRIV __ucopy(__first, __last, __dst);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- const difference_type __elems_after = difference_type(__length) - __elems_before;
- __pos = this->_M_finish - __elems_after;
- _STLP_TRY {
- iterator __dst = __new_finish;
- iterator __src = this->_M_finish;
- for (--__src, --__dst; __src >= __pos; --__src, --__dst) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_finish = __new_finish;
- _STLP_PRIV __ucopy(__first, __last, __pos);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos,
- const_iterator __first, const_iterator __last,
- size_type __n, const __false_type& /*_Movable*/) {
- const difference_type __elems_before = __pos - this->_M_start;
- size_type __length = size();
- if (__elems_before < difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- iterator __old_start = this->_M_start;
- __pos = this->_M_start + __elems_before;
- _STLP_TRY {
- if (__elems_before >= difference_type(__n)) {
- iterator __start_n = this->_M_start + __n;
- _STLP_PRIV __ucopy(this->_M_start, __start_n, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__start_n, __pos, __old_start);
- _STLP_STD::copy(__first, __last, __pos - difference_type(__n));
- }
- else {
- const_iterator __mid = __first + (__n - __elems_before);
- _STLP_PRIV __uninitialized_copy_copy(this->_M_start, __pos, __first, __mid, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__mid, __last, __old_start);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- iterator __old_finish = this->_M_finish;
- const difference_type __elems_after = __length - __elems_before;
- __pos = this->_M_finish - __elems_after;
- _STLP_TRY {
- if (__elems_after > difference_type(__n)) {
- iterator __finish_n = this->_M_finish - difference_type(__n);
- _STLP_PRIV __ucopy(__finish_n, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- _STLP_STD::copy_backward(__pos, __finish_n, __old_finish);
- _STLP_STD::copy(__first, __last, __pos);
- }
- else {
- const_iterator __mid = __first + __elems_after;
- _STLP_PRIV __uninitialized_copy_copy(__mid, __last, __pos, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- _STLP_STD::copy(__first, __mid, __pos);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
-}
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_new_elements_at_front(size_type __new_elems) {
- size_type __new_nodes
- = (__new_elems + this->buffer_size() - 1) / this->buffer_size();
- _M_reserve_map_at_front(__new_nodes);
- size_type __i = 1;
- _STLP_TRY {
- for (; __i <= __new_nodes; ++__i)
- *(this->_M_start._M_node - __i) = this->_M_map_size.allocate(this->buffer_size());
- }
- _STLP_UNWIND(for (size_type __j = 1; __j < __i; ++__j)
- this->_M_map_size.deallocate(*(this->_M_start._M_node - __j), this->buffer_size()))
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_new_elements_at_back(size_type __new_elems) {
- size_type __new_nodes
- = (__new_elems + this->buffer_size() - 1) / this->buffer_size();
- _M_reserve_map_at_back(__new_nodes);
- size_type __i = 1;
- _STLP_TRY {
- for (; __i <= __new_nodes; ++__i)
- *(this->_M_finish._M_node + __i) = this->_M_map_size.allocate(this->buffer_size());
- }
- _STLP_UNWIND(for (size_type __j = 1; __j < __i; ++__j)
- this->_M_map_size.deallocate(*(this->_M_finish._M_node + __j), this->buffer_size()))
-}
-
-template <class _Tp, class _Alloc >
-void deque<_Tp,_Alloc>::_M_reallocate_map(size_type __nodes_to_add,
- bool __add_at_front) {
- size_type __old_num_nodes = this->_M_finish._M_node - this->_M_start._M_node + 1;
- size_type __new_num_nodes = __old_num_nodes + __nodes_to_add;
-
- _Map_pointer __new_nstart;
- if (this->_M_map_size._M_data > 2 * __new_num_nodes) {
- __new_nstart = this->_M_map._M_data + (this->_M_map_size._M_data - __new_num_nodes) / 2
- + (__add_at_front ? __nodes_to_add : 0);
- if (__new_nstart < this->_M_start._M_node)
- _STLP_STD::copy(this->_M_start._M_node, this->_M_finish._M_node + 1, __new_nstart);
- else
- _STLP_STD::copy_backward(this->_M_start._M_node, this->_M_finish._M_node + 1,
- __new_nstart + __old_num_nodes);
- }
- else {
- size_type __new_map_size =
- this->_M_map_size._M_data + (max)((size_t)this->_M_map_size._M_data, __nodes_to_add) + 2;
-
- _Map_pointer __new_map = this->_M_map.allocate(__new_map_size);
- __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2
- + (__add_at_front ? __nodes_to_add : 0);
- _STLP_STD::copy(this->_M_start._M_node, this->_M_finish._M_node + 1, __new_nstart);
- this->_M_map.deallocate(this->_M_map._M_data, this->_M_map_size._M_data);
-
- this->_M_map._M_data = __new_map;
- this->_M_map_size._M_data = __new_map_size;
- }
-
- this->_M_start._M_set_node(__new_nstart);
- this->_M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
-}
-
-#if defined (deque)
-# undef deque
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#undef __iterator__
-#undef iterator
-#undef const_iterator
-#undef size_type
-#undef value_type
-
-#endif /* _STLP_DEQUE_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_deque.h b/stlport/stlport/stl/_deque.h
deleted file mode 100644
index a8faeef..0000000
--- a/stlport/stlport/stl/_deque.h
+++ /dev/null
@@ -1,1115 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_DEQUE_H
-#define _STLP_INTERNAL_DEQUE_H
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_UNINITIALIZED_H
-# include <stl/_uninitialized.h>
-#endif
-
-#ifndef _STLP_RANGE_ERRORS_H
-# include <stl/_range_errors.h>
-#endif
-
-/* Class invariants:
- * For any nonsingular iterator i:
- * i.node is the address of an element in the map array. The
- * contents of i.node is a pointer to the beginning of a node.
- * i.first == *(i.node)
- * i.last == i.first + node_size
- * i.cur is a pointer in the range [i.first, i.last). NOTE:
- * the implication of this is that i.cur is always a dereferenceable
- * pointer, even if i is a past-the-end iterator.
- * Start and Finish are always nonsingular iterators. NOTE: this means
- * that an empty deque must have one node, and that a deque
- * with N elements, where N is the buffer size, must have two nodes.
- * For every node other than start.node and finish.node, every element
- * in the node is an initialized object. If start.node == finish.node,
- * then [start.cur, finish.cur) are initialized objects, and
- * the elements outside that range are uninitialized storage. Otherwise,
- * [start.cur, start.last) and [finish.first, finish.cur) are initialized
- * objects, and [start.first, start.cur) and [finish.cur, finish.last)
- * are uninitialized storage.
- * [map, map + map_size) is a valid, non-empty range.
- * [start.node, finish.node] is a valid range contained within
- * [map, map + map_size).
- * A pointer in the range [map, map + map_size) points to an allocated node
- * if and only if the pointer is in the range [start.node, finish.node].
- */
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp>
-struct _Deque_iterator_base {
-
- static size_t _S_buffer_size() {
- const size_t blocksize = _MAX_BYTES;
- return (sizeof(_Tp) < blocksize ? (blocksize / sizeof(_Tp)) : 1);
- }
-
- typedef random_access_iterator_tag iterator_category;
-
- typedef _Tp value_type;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-
- typedef value_type** _Map_pointer;
-
- typedef _Deque_iterator_base< _Tp > _Self;
-
- value_type* _M_cur;
- value_type* _M_first;
- value_type* _M_last;
- _Map_pointer _M_node;
-
- _Deque_iterator_base(value_type* __x, _Map_pointer __y)
- : _M_cur(__x), _M_first(*__y),
- _M_last(*__y + _S_buffer_size()), _M_node(__y) {}
-
- _Deque_iterator_base() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {}
-
-// see comment in doc/README.evc4 and doc/README.evc8
-#if defined (_STLP_MSVC) && (_STLP_MSVC <= 1401) && defined (MIPS) && defined (NDEBUG)
- _Deque_iterator_base(_Deque_iterator_base const& __other)
- : _M_cur(__other._M_cur), _M_first(__other._M_first),
- _M_last(__other._M_last), _M_node(__other._M_node) {}
-#endif
-
- difference_type _M_subtract(const _Self& __x) const {
- return difference_type(_S_buffer_size()) * (_M_node - __x._M_node - 1) +
- (_M_cur - _M_first) + (__x._M_last - __x._M_cur);
- }
-
- void _M_increment() {
- if (++_M_cur == _M_last) {
- _M_set_node(_M_node + 1);
- _M_cur = _M_first;
- }
- }
-
- void _M_decrement() {
- if (_M_cur == _M_first) {
- _M_set_node(_M_node - 1);
- _M_cur = _M_last;
- }
- --_M_cur;
- }
-
- void _M_advance(difference_type __n) {
- const size_t buffersize = _S_buffer_size();
- difference_type __offset = __n + (_M_cur - _M_first);
- if (__offset >= 0 && __offset < difference_type(buffersize))
- _M_cur += __n;
- else {
- difference_type __node_offset =
- __offset > 0 ? __offset / buffersize
- : -difference_type((-__offset - 1) / buffersize) - 1;
- _M_set_node(_M_node + __node_offset);
- _M_cur = _M_first +
-
- (__offset - __node_offset * difference_type(buffersize));
- }
- }
-
- void _M_set_node(_Map_pointer __new_node) {
- _M_last = (_M_first = *(_M_node = __new_node)) + difference_type(_S_buffer_size());
- }
-};
-
-
-template <class _Tp, class _Traits>
-struct _Deque_iterator : public _Deque_iterator_base< _Tp> {
- typedef random_access_iterator_tag iterator_category;
- typedef _Tp value_type;
- typedef typename _Traits::reference reference;
- typedef typename _Traits::pointer pointer;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef value_type** _Map_pointer;
-
- typedef _Deque_iterator_base< _Tp > _Base;
- typedef _Deque_iterator<_Tp, _Traits> _Self;
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
- typedef _Deque_iterator<_Tp, _NonConstTraits> iterator;
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef _Deque_iterator<_Tp, _ConstTraits> const_iterator;
-
- _Deque_iterator(value_type* __x, _Map_pointer __y) :
- _Deque_iterator_base<value_type>(__x,__y) {}
-
- _Deque_iterator() {}
- //copy constructor for iterator and constructor from iterator for const_iterator
- _Deque_iterator(const iterator& __x) :
- _Deque_iterator_base<value_type>(__x) {}
-
- reference operator*() const {
- return *this->_M_cur;
- }
-
- _STLP_DEFINE_ARROW_OPERATOR
-
- difference_type operator-(const const_iterator& __x) const { return this->_M_subtract(__x); }
-
- _Self& operator++() { this->_M_increment(); return *this; }
- _Self operator++(int) {
- _Self __tmp = *this;
- ++*this;
- return __tmp;
- }
-
- _Self& operator--() { this->_M_decrement(); return *this; }
- _Self operator--(int) {
- _Self __tmp = *this;
- --*this;
- return __tmp;
- }
-
- _Self& operator+=(difference_type __n) { this->_M_advance(__n); return *this; }
- _Self operator+(difference_type __n) const {
- _Self __tmp = *this;
- return __tmp += __n;
- }
-
- _Self& operator-=(difference_type __n) { return *this += -__n; }
- _Self operator-(difference_type __n) const {
- _Self __tmp = *this;
- return __tmp -= __n;
- }
-
- reference operator[](difference_type __n) const { return *(*this + __n); }
-};
-
-
-template <class _Tp, class _Traits>
-inline _Deque_iterator<_Tp, _Traits> _STLP_CALL
-operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Traits>& __x)
-{ return __x + __n; }
-
-
-#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
-template <class _Tp>
-inline bool _STLP_CALL
-operator==(const _Deque_iterator_base<_Tp >& __x,
- const _Deque_iterator_base<_Tp >& __y)
-{ return __x._M_cur == __y._M_cur; }
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator < (const _Deque_iterator_base<_Tp >& __x,
- const _Deque_iterator_base<_Tp >& __y) {
- return (__x._M_node == __y._M_node) ?
- (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node);
-}
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator!=(const _Deque_iterator_base<_Tp >& __x,
- const _Deque_iterator_base<_Tp >& __y)
-{ return __x._M_cur != __y._M_cur; }
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator>(const _Deque_iterator_base<_Tp >& __x,
- const _Deque_iterator_base<_Tp >& __y)
-{ return __y < __x; }
-
-template <class _Tp>
-inline bool _STLP_CALL operator>=(const _Deque_iterator_base<_Tp >& __x,
- const _Deque_iterator_base<_Tp >& __y)
-{ return !(__x < __y); }
-
-template <class _Tp>
-inline bool _STLP_CALL operator<=(const _Deque_iterator_base<_Tp >& __x,
- const _Deque_iterator_base<_Tp >& __y)
-{ return !(__y < __x); }
-
-#else /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
-
-template <class _Tp, class _Traits1, class _Traits2>
-inline bool _STLP_CALL
-operator==(const _Deque_iterator<_Tp, _Traits1 >& __x,
- const _Deque_iterator<_Tp, _Traits2 >& __y)
-{ return __x._M_cur == __y._M_cur; }
-
-template <class _Tp, class _Traits1, class _Traits2>
-inline bool _STLP_CALL
-operator < (const _Deque_iterator<_Tp, _Traits1 >& __x,
- const _Deque_iterator<_Tp, _Traits2 >& __y) {
- return (__x._M_node == __y._M_node) ?
- (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node);
-}
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator!=(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x,
- const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y)
-{ return __x._M_cur != __y._M_cur; }
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator>(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x,
- const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y)
-{ return __y < __x; }
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator>=(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x,
- const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y)
-{ return !(__x < __y); }
-
-template <class _Tp>
-inline bool _STLP_CALL
-operator<=(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x,
- const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y)
-{ return !(__y < __x); }
-#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Tp, class _Traits>
-struct __type_traits<_STLP_PRIV _Deque_iterator<_Tp, _Traits> > {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Tp, class _Traits> inline _Tp* _STLP_CALL
-value_type(const _STLP_PRIV _Deque_iterator<_Tp, _Traits >&) { return (_Tp*)0; }
-template <class _Tp, class _Traits> inline random_access_iterator_tag _STLP_CALL
-iterator_category(const _STLP_PRIV _Deque_iterator<_Tp, _Traits >&) { return random_access_iterator_tag(); }
-template <class _Tp, class _Traits> inline ptrdiff_t* _STLP_CALL
-distance_type(const _STLP_PRIV _Deque_iterator<_Tp, _Traits >&) { return 0; }
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-/* Deque base class. It has two purposes. First, its constructor
- * and destructor allocate (but don't initialize) storage. This makes
- * exception safety easier. Second, the base class encapsulates all of
- * the differences between SGI-style allocators and standard-conforming
- * allocators.
- */
-
-template <class _Tp, class _Alloc>
-class _Deque_base {
- typedef _Deque_base<_Tp, _Alloc> _Self;
-public:
- typedef _Tp value_type;
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef _Alloc allocator_type;
- typedef _STLP_alloc_proxy<size_t, value_type, allocator_type> _Alloc_proxy;
-
- typedef typename _Alloc_traits<_Tp*, _Alloc>::allocator_type _Map_alloc_type;
- typedef _STLP_alloc_proxy<value_type**, value_type*, _Map_alloc_type> _Map_alloc_proxy;
-
- typedef _Deque_iterator<_Tp, _Nonconst_traits<_Tp> > iterator;
- typedef _Deque_iterator<_Tp, _Const_traits<_Tp> > const_iterator;
-
- static size_t _STLP_CALL buffer_size() { return _Deque_iterator_base<_Tp>::_S_buffer_size(); }
-
- _Deque_base(const allocator_type& __a, size_t __num_elements)
- : _M_start(), _M_finish(), _M_map(_STLP_CONVERT_ALLOCATOR(__a, _Tp*), 0),
- _M_map_size(__a, (size_t)0)
- { _M_initialize_map(__num_elements); }
-
- _Deque_base(const allocator_type& __a)
- : _M_start(), _M_finish(), _M_map(_STLP_CONVERT_ALLOCATOR(__a, _Tp*), 0),
- _M_map_size(__a, (size_t)0) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _Deque_base(__move_source<_Self> src)
- : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish),
- _M_map(__move_source<_Map_alloc_proxy>(src.get()._M_map)),
- _M_map_size(__move_source<_Alloc_proxy>(src.get()._M_map_size)) {
- src.get()._M_map._M_data = 0;
- src.get()._M_map_size._M_data = 0;
- src.get()._M_finish = src.get()._M_start;
- }
-#endif
-
- ~_Deque_base();
-
-protected:
- void _M_initialize_map(size_t);
- void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish);
- void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish);
- enum { _S_initial_map_size = 8 };
-
-protected:
- iterator _M_start;
- iterator _M_finish;
- _Map_alloc_proxy _M_map;
- _Alloc_proxy _M_map_size;
-};
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define deque _STLP_PTR_IMPL_NAME(deque)
-#elif defined (_STLP_DEBUG)
-# define deque _STLP_NON_DBG_NAME(deque)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
-class deque : protected _STLP_PRIV _Deque_base<_Tp, _Alloc>
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (deque)
- , public __stlport_class<deque<_Tp, _Alloc> >
-#endif
-{
- typedef _STLP_PRIV _Deque_base<_Tp, _Alloc> _Base;
- typedef deque<_Tp, _Alloc> _Self;
-public: // Basic types
- typedef _Tp value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef random_access_iterator_tag _Iterator_category;
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef typename _Base::allocator_type allocator_type;
-
-public: // Iterators
- typedef typename _Base::iterator iterator;
- typedef typename _Base::const_iterator const_iterator;
-
- _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS;
-
-protected: // Internal typedefs
- typedef pointer* _Map_pointer;
-#if defined (_STLP_NO_MOVE_SEMANTIC)
- typedef __false_type _Movable;
-#endif
-
-public: // Basic accessors
- iterator begin() { return this->_M_start; }
- iterator end() { return this->_M_finish; }
- const_iterator begin() const { return const_iterator(this->_M_start); }
- const_iterator end() const { return const_iterator(this->_M_finish); }
-
- reverse_iterator rbegin() { return reverse_iterator(this->_M_finish); }
- reverse_iterator rend() { return reverse_iterator(this->_M_start); }
- const_reverse_iterator rbegin() const
- { return const_reverse_iterator(this->_M_finish); }
- const_reverse_iterator rend() const
- { return const_reverse_iterator(this->_M_start); }
-
- reference operator[](size_type __n)
- { return this->_M_start[difference_type(__n)]; }
- const_reference operator[](size_type __n) const
- { return this->_M_start[difference_type(__n)]; }
-
- void _M_range_check(size_type __n) const {
- if (__n >= this->size())
- __stl_throw_out_of_range("deque");
- }
- reference at(size_type __n)
- { _M_range_check(__n); return (*this)[__n]; }
- const_reference at(size_type __n) const
- { _M_range_check(__n); return (*this)[__n]; }
-
- reference front() { return *this->_M_start; }
- reference back() {
- iterator __tmp = this->_M_finish;
- --__tmp;
- return *__tmp;
- }
- const_reference front() const { return *this->_M_start; }
- const_reference back() const {
- const_iterator __tmp = this->_M_finish;
- --__tmp;
- return *__tmp;
- }
-
- size_type size() const { return this->_M_finish - this->_M_start; }
- size_type max_size() const { return size_type(-1); }
- bool empty() const { return this->_M_finish == this->_M_start; }
- allocator_type get_allocator() const { return this->_M_map_size; }
-
-public: // Constructor, destructor.
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit deque(const allocator_type& __a = allocator_type())
-#else
- deque()
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), 0) {}
- deque(const allocator_type& __a)
-#endif
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, 0) {}
-
- deque(const _Self& __x)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__x.get_allocator(), __x.size())
- { _STLP_PRIV __ucopy(__x.begin(), __x.end(), this->_M_start); }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
-private:
- void _M_initialize(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
- typedef typename _TrivialInit<_Tp>::_Ret _TrivialInit;
- _M_fill_initialize(__val, _TrivialInit());
- }
-public:
- explicit deque(size_type __n)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), __n)
- { _M_initialize(__n); }
- deque(size_type __n, const value_type& __val, const allocator_type& __a = allocator_type())
-#else
- explicit deque(size_type __n)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), __n) {
- typedef typename _TrivialInit<_Tp>::_Ret _TrivialInit;
- _M_fill_initialize(_STLP_DEFAULT_CONSTRUCTED(_Tp), _TrivialInit());
- }
- deque(size_type __n, const value_type& __val)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), __n)
- { _M_fill_initialize(__val, __false_type()); }
- deque(size_type __n, const value_type& __val, const allocator_type& __a)
-#endif
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, __n)
- { _M_fill_initialize(__val, __false_type()); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-protected:
- template <class _Integer>
- void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type&) {
- this->_M_initialize_map(__n);
- _M_fill_initialize(__x, __false_type());
- }
-
- template <class _InputIter>
- void _M_initialize_dispatch(_InputIter __first, _InputIter __last,
- const __false_type&) {
- _M_range_initialize(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter));
- }
-
-public:
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- deque(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_dispatch(__first, __last, _Integral());
- }
-
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- deque(_InputIterator __first, _InputIterator __last)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type()) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_dispatch(__first, __last, _Integral());
- }
-# endif
-
-#else
- deque(const value_type* __first, const value_type* __last,
- const allocator_type& __a = allocator_type() )
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, __last - __first)
- { _STLP_PRIV __ucopy(__first, __last, this->_M_start); }
-
- deque(const_iterator __first, const_iterator __last,
- const allocator_type& __a = allocator_type() )
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, __last - __first)
- { _STLP_PRIV __ucopy(__first, __last, this->_M_start); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- deque(__move_source<_Self> src)
- : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__move_source<_Base>(src.get()))
- {}
-#endif
-
- ~deque()
- { _STLP_STD::_Destroy_Range(this->_M_start, this->_M_finish); }
-
- _Self& operator= (const _Self& __x);
-
- void swap(_Self& __x) {
- _STLP_STD::swap(this->_M_start, __x._M_start);
- _STLP_STD::swap(this->_M_finish, __x._M_finish);
- this->_M_map.swap(__x._M_map);
- this->_M_map_size.swap(__x._M_map_size);
- }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
-public:
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- void _M_fill_assign(size_type __n, const _Tp& __val) {
- if (__n > size()) {
- _STLP_STD::fill(begin(), end(), __val);
- insert(end(), __n - size(), __val);
- }
- else {
- erase(begin() + __n, end());
- _STLP_STD::fill(begin(), end(), __val);
- }
- }
-
- void assign(size_type __n, const _Tp& __val) {
- _M_fill_assign(__n, __val);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void assign(_InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-
-private: // helper functions for assign()
-
- template <class _Integer>
- void _M_assign_dispatch(_Integer __n, _Integer __val,
- const __true_type& /*_IsIntegral*/)
- { _M_fill_assign((size_type) __n, (_Tp) __val); }
-
- template <class _InputIterator>
- void _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
- const __false_type& /*_IsIntegral*/) {
- _M_assign_aux(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
- }
-
- template <class _InputIter>
- void _M_assign_aux(_InputIter __first, _InputIter __last, const input_iterator_tag &) {
- iterator __cur = begin();
- for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
- *__cur = *__first;
- if (__first == __last)
- erase(__cur, end());
- else
- insert(end(), __first, __last);
- }
-
- template <class _ForwardIterator>
- void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
-#else
- void assign(const value_type *__first, const value_type *__last) {
- size_type __size = size();
- size_type __len = __last - __first;
- if (__len > __size) {
- const value_type *__mid = __first + __size;
- _STLP_STD::copy(__first, __mid, begin());
- insert(end(), __mid, __last);
- }
- else {
- erase(_STLP_STD::copy(__first, __last, begin()), end());
- }
- }
- void assign(const_iterator __first, const_iterator __last) {
- typedef const_iterator _ForwardIterator;
-#endif /* _STLP_MEMBER_TEMPLATES */
- size_type __len = _STLP_STD::distance(__first, __last);
- if (__len > size()) {
- _ForwardIterator __mid = __first;
- _STLP_STD::advance(__mid, size());
- _STLP_STD::copy(__first, __mid, begin());
- insert(end(), __mid, __last);
- }
- else {
- erase(_STLP_STD::copy(__first, __last, begin()), end());
- }
- }
-
-
-public: // push_* and pop_*
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void push_back(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
-#else
- void push_back(const value_type& __t) {
-#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
- if (this->_M_finish._M_cur != this->_M_finish._M_last - 1) {
- _Copy_Construct(this->_M_finish._M_cur, __t);
- ++this->_M_finish._M_cur;
- }
- else
- _M_push_back_aux_v(__t);
- }
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void push_front(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
-#else
- void push_front(const value_type& __t) {
-#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
- if (this->_M_start._M_cur != this->_M_start._M_first) {
- _Copy_Construct(this->_M_start._M_cur - 1, __t);
- --this->_M_start._M_cur;
- }
- else
- _M_push_front_aux_v(__t);
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void push_back() {
- if (this->_M_finish._M_cur != this->_M_finish._M_last - 1) {
- _STLP_STD::_Construct(this->_M_finish._M_cur);
- ++this->_M_finish._M_cur;
- }
- else
- _M_push_back_aux();
- }
- void push_front() {
- if (this->_M_start._M_cur != this->_M_start._M_first) {
- _STLP_STD::_Construct(this->_M_start._M_cur - 1);
- --this->_M_start._M_cur;
- }
- else
- _M_push_front_aux();
- }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-
- void pop_back() {
- if (this->_M_finish._M_cur != this->_M_finish._M_first) {
- --this->_M_finish._M_cur;
- _STLP_STD::_Destroy(this->_M_finish._M_cur);
- }
- else {
- _M_pop_back_aux();
- _STLP_STD::_Destroy(this->_M_finish._M_cur);
- }
- }
-
- void pop_front() {
- _STLP_STD::_Destroy(this->_M_start._M_cur);
- _M_pop_front_aux();
- }
-
-public: // Insert
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- iterator insert(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
-#else
- iterator insert(iterator __pos, const value_type& __x) {
-#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- if (__pos._M_cur == this->_M_start._M_cur) {
- push_front(__x);
- return this->_M_start;
- }
- else if (__pos._M_cur == this->_M_finish._M_cur) {
- push_back(__x);
- iterator __tmp = this->_M_finish;
- --__tmp;
- return __tmp;
- }
- else {
- return _M_fill_insert_aux(__pos, 1, __x, _Movable());
- }
- }
-
-#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS)
- iterator insert(iterator __pos)
- { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-
- void insert(iterator __pos, size_type __n, const value_type& __x)
- { _M_fill_insert(__pos, __n, __x); }
-
-protected:
- iterator _M_fill_insert_aux(iterator __pos, size_type __n, const value_type& __x, const __true_type& /*_Movable*/);
- iterator _M_fill_insert_aux(iterator __pos, size_type __n, const value_type& __x, const __false_type& /*_Movable*/);
-
- void _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Integer>
- void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
- const __true_type& /*_IsIntegral*/) {
- _M_fill_insert(__pos, (size_type) __n, (value_type) __x);
- }
-
- template <class _InputIterator>
- void _M_insert_dispatch(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- const __false_type& /*_IsIntegral*/) {
- _M_insert(__pos, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator));
- }
-
-public:
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- void insert(iterator __pos, _InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_insert_dispatch(__pos, __first, __last, _Integral());
- }
-
-#else /* _STLP_MEMBER_TEMPLATES */
- void _M_insert_range_aux(iterator __pos,
- const value_type* __first, const value_type* __last,
- size_type __n, const __true_type& /*_Movable*/);
- void _M_insert_range_aux(iterator __pos,
- const value_type* __first, const value_type* __last,
- size_type __n, const __false_type& /*_Movable*/);
- void _M_insert_range_aux(iterator __pos,
- const_iterator __first, const_iterator __last,
- size_type __n, const __true_type& /*_Movable*/);
- void _M_insert_range_aux(iterator __pos,
- const_iterator __first, const_iterator __last,
- size_type __n, const __false_type& /*_Movable*/);
-public:
- void insert(iterator __pos,
- const value_type* __first, const value_type* __last);
- void insert(iterator __pos,
- const_iterator __first, const_iterator __last);
-
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-public:
-#if !defined(_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type __new_size,
- const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
-#else
- void resize(size_type __new_size, const value_type& __x) {
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- const size_type __len = size();
- if (__new_size < __len)
- erase(this->_M_start + __new_size, this->_M_finish);
- else
- insert(this->_M_finish, __new_size - __len, __x);
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type __new_size)
- { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
-protected:
- iterator _M_erase(iterator __pos, const __true_type& /*_Movable*/);
- iterator _M_erase(iterator __pos, const __false_type& /*_Movable*/);
-
- iterator _M_erase(iterator __first, iterator __last, const __true_type& /*_Movable*/);
- iterator _M_erase(iterator __first, iterator __last, const __false_type& /*_Movable*/);
-public: // Erase
- iterator erase(iterator __pos) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- return _M_erase(__pos, _Movable());
- }
- iterator erase(iterator __first, iterator __last) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- if (__first == this->_M_start && __last == this->_M_finish) {
- clear();
- return this->_M_finish;
- }
- else {
- if (__first == __last)
- return __first;
- return _M_erase(__first, __last, _Movable());
- }
- }
- void clear();
-
-protected: // Internal construction/destruction
-
- void _M_fill_initialize(const value_type& __val, const __true_type& /*_TrivialInit*/)
- {}
- void _M_fill_initialize(const value_type& __val, const __false_type& /*_TrivialInit*/);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void _M_range_initialize(_InputIterator __first, _InputIterator __last,
- const input_iterator_tag &) {
- this->_M_initialize_map(0);
- _STLP_TRY {
- for ( ; __first != __last; ++__first)
- push_back(*__first);
- }
- _STLP_UNWIND(clear())
- }
- template <class _ForwardIterator>
- void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
- size_type __n = _STLP_STD::distance(__first, __last);
- this->_M_initialize_map(__n);
- _Map_pointer __cur_node = this->_M_start._M_node;
- _STLP_TRY {
- for (; __cur_node < this->_M_finish._M_node; ++__cur_node) {
- _ForwardIterator __mid = __first;
- _STLP_STD::advance(__mid, this->buffer_size());
- _STLP_STD::uninitialized_copy(__first, __mid, *__cur_node);
- __first = __mid;
- }
- _STLP_STD::uninitialized_copy(__first, __last, this->_M_finish._M_first);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(this->_M_start, iterator(*__cur_node, __cur_node)))
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-protected: // Internal push_* and pop_*
-
- void _M_push_back_aux_v(const value_type&);
- void _M_push_front_aux_v(const value_type&);
-#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void _M_push_back_aux();
- void _M_push_front_aux();
-#endif /*_STLP_DONT_SUP_DFLT_PARAM !_STLP_NO_ANACHRONISMS*/
- void _M_pop_back_aux();
- void _M_pop_front_aux();
-
-protected: // Internal insert functions
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-
- template <class _InputIterator>
- void _M_insert(iterator __pos,
- _InputIterator __first,
- _InputIterator __last,
- const input_iterator_tag &) {
- _STLP_STD::copy(__first, __last, inserter(*this, __pos));
- }
-
- template <class _ForwardIterator>
- void _M_insert(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- size_type __n = _STLP_STD::distance(__first, __last);
- if (__pos._M_cur == this->_M_start._M_cur) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- _STLP_TRY {
- uninitialized_copy(__first, __last, __new_start);
- this->_M_start = __new_start;
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else if (__pos._M_cur == this->_M_finish._M_cur) {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- _STLP_TRY {
- uninitialized_copy(__first, __last, this->_M_finish);
- this->_M_finish = __new_finish;
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
- else
- _M_insert_range_aux(__pos, __first, __last, __n, _Movable());
- }
-
- template <class _ForwardIterator>
- void _M_insert_range_aux(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- size_type __n, const __true_type& /*_Movable*/) {
- const difference_type __elemsbefore = __pos - this->_M_start;
- size_type __length = size();
- if (__elemsbefore <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- __pos = this->_M_start + __elemsbefore;
- _STLP_TRY {
- iterator __dst = __new_start;
- iterator __src = this->_M_start;
- for (; __src != __pos; ++__dst, ++__src) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_start = __new_start;
- uninitialized_copy(__first, __last, __dst);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- const difference_type __elemsafter = difference_type(__length) - __elemsbefore;
- __pos = this->_M_finish - __elemsafter;
- _STLP_TRY {
- iterator __dst = __new_finish;
- iterator __src = this->_M_finish;
- for (--__src, --__dst; __src >= __pos; --__src, --__dst) {
- _STLP_STD::_Move_Construct(&(*__dst), *__src);
- _STLP_STD::_Destroy_Moved(&(*__src));
- }
- this->_M_finish = __new_finish;
- uninitialized_copy(__first, __last, __pos);
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
- }
-
- template <class _ForwardIterator>
- void _M_insert_range_aux(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- size_type __n, const __false_type& /*_Movable*/) {
- const difference_type __elemsbefore = __pos - this->_M_start;
- size_type __length = size();
- if (__elemsbefore <= difference_type(__length / 2)) {
- iterator __new_start = _M_reserve_elements_at_front(__n);
- iterator __old_start = this->_M_start;
- __pos = this->_M_start + __elemsbefore;
- _STLP_TRY {
- if (__elemsbefore >= difference_type(__n)) {
- iterator __start_n = this->_M_start + difference_type(__n);
- _STLP_STD::uninitialized_copy(this->_M_start, __start_n, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__start_n, __pos, __old_start);
- _STLP_STD::copy(__first, __last, __pos - difference_type(__n));
- }
- else {
- _ForwardIterator __mid = __first;
- _STLP_STD::advance(__mid, difference_type(__n) - __elemsbefore);
- _STLP_PRIV __uninitialized_copy_copy(this->_M_start, __pos, __first, __mid, __new_start);
- this->_M_start = __new_start;
- _STLP_STD::copy(__mid, __last, __old_start);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node))
- }
- else {
- iterator __new_finish = _M_reserve_elements_at_back(__n);
- iterator __old_finish = this->_M_finish;
- const difference_type __elemsafter = difference_type(__length) - __elemsbefore;
- __pos = this->_M_finish - __elemsafter;
- _STLP_TRY {
- if (__elemsafter > difference_type(__n)) {
- iterator __finish_n = this->_M_finish - difference_type(__n);
- _STLP_STD::uninitialized_copy(__finish_n, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- _STLP_STD::copy_backward(__pos, __finish_n, __old_finish);
- _STLP_STD::copy(__first, __last, __pos);
- }
- else {
- _ForwardIterator __mid = __first;
- _STLP_STD::advance(__mid, __elemsafter);
- _STLP_PRIV __uninitialized_copy_copy(__mid, __last, __pos, this->_M_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- _STLP_STD::copy(__first, __mid, __pos);
- }
- }
- _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1))
- }
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- iterator _M_reserve_elements_at_front(size_type __n) {
- size_type __vacancies = this->_M_start._M_cur - this->_M_start._M_first;
- if (__n > __vacancies)
- _M_new_elements_at_front(__n - __vacancies);
- return this->_M_start - difference_type(__n);
- }
-
- iterator _M_reserve_elements_at_back(size_type __n) {
- size_type __vacancies = (this->_M_finish._M_last - this->_M_finish._M_cur) - 1;
- if (__n > __vacancies)
- _M_new_elements_at_back(__n - __vacancies);
- return this->_M_finish + difference_type(__n);
- }
-
- void _M_new_elements_at_front(size_type __new_elements);
- void _M_new_elements_at_back(size_type __new_elements);
-
-protected: // Allocation of _M_map and nodes
-
- // Makes sure the _M_map has space for new nodes. Does not actually
- // add the nodes. Can invalidate _M_map pointers. (And consequently,
- // deque iterators.)
-
- void _M_reserve_map_at_back (size_type __nodes_to_add = 1) {
- if (__nodes_to_add + 1 > this->_M_map_size._M_data - (this->_M_finish._M_node - this->_M_map._M_data))
- _M_reallocate_map(__nodes_to_add, false);
- }
-
- void _M_reserve_map_at_front (size_type __nodes_to_add = 1) {
- if (__nodes_to_add > size_type(this->_M_start._M_node - this->_M_map._M_data))
- _M_reallocate_map(__nodes_to_add, true);
- }
-
- void _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front);
-};
-
-#if defined (deque)
-# undef deque
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_deque.c>
-#endif
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# include <stl/pointers/_deque.h>
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_deque.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#define _STLP_TEMPLATE_CONTAINER deque<_Tp, _Alloc>
-#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Tp, class _Alloc>
-struct __move_traits<deque<_Tp, _Alloc> > {
- typedef __true_type implemented;
- typedef typename __move_traits<_Alloc>::complete complete;
-};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_DEQUE_H */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/stl/_epilog.h b/stlport/stlport/stl/_epilog.h
deleted file mode 100644
index 0747ae3..0000000
--- a/stlport/stlport/stl/_epilog.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* NOTE : this header has no guards and is MEANT for multiple inclusion!
- * If you are using "header protection" option with your compiler,
- * please also find #pragma which disables it and put it here, to
- * allow reentrancy of this header.
- */
-
-#ifndef _STLP_PROLOG_HEADER_INCLUDED
-# error STLport epilog header can not be included as long as prolog has not be included.
-#endif
-
-/* If the platform provides any specific epilog actions,
- * like #pragmas, do include platform-specific prolog file
- */
-#if defined (_STLP_HAS_SPECIFIC_PROLOG_EPILOG)
-# include <stl/config/_epilog.h>
-#endif
-
-#if !defined (_STLP_NO_POST_COMPATIBLE_SECTION)
-# include <stl/_config_compat_post.h>
-#endif
-
-#if defined (_STLP_USE_OWN_NAMESPACE)
-
-# if !defined (_STLP_DONT_REDEFINE_STD)
-/* We redefine "std" to STLPORT, so that user code may use std:: transparently
- * The STLPORT macro contains the STLport namespace name containing all the std
- * stuff.
- */
-# if defined (std)
-/*
- * Looks like the compiler native library on which STLport rely defined the std macro.
- * This might introduce major incompatibility so report the problem to the STLport
- * forum or comment the following #error at your own risk.
- */
-# error Incompatible native Std library.
-# endif /* std */
-# define std STLPORT
-# endif /* _STLP_DONT_REDEFINE_STD */
-
-#endif
-
-#undef _STLP_PROLOG_HEADER_INCLUDED /* defined in _prolog.h */
diff --git a/stlport/stlport/stl/_exception.h b/stlport/stlport/stl/_exception.h
deleted file mode 100644
index a0bf4ad..0000000
--- a/stlport/stlport/stl/_exception.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-// The header <exception> contains low-level functions that interact
-// with a compiler's exception-handling mechanism. It is assumed to
-// be supplied with the compiler, rather than with the library, because
-// it is inherently tied very closely to the compiler itself.
-
-// On platforms where <exception> does not exist, this header defines
-// an exception base class. This is *not* a substitute for everything
-// in <exception>, but it suffices to support a bare minimum of STL
-// functionality.
-
-#ifndef _STLP_INTERNAL_EXCEPTION
-#define _STLP_INTERNAL_EXCEPTION
-
-#if !defined (_STLP_NO_EXCEPTION_HEADER)
-
-# if defined ( _UNCAUGHT_EXCEPTION )
-# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
-# endif
-
-# if defined (_STLP_BROKEN_EXCEPTION_CLASS)
-# define exception _STLP_NULLIFIED_BROKEN_EXCEPTION_CLASS
-# define bad_exception _STLP_NULLIFIED_BROKEN_BAD_EXCEPTION_CLASS
-# if defined (_STLP_NO_NEW_NEW_HEADER)
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(Exception.h)
-# else
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(Exception)
-# endif
-# undef exception
-# undef bad_exception
-# else
-# if defined (_STLP_NO_NEW_NEW_HEADER)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <exception.h>
-# else
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception.h)
-# endif
-# else
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <exception>
-# else
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception)
-# endif
-# endif
-# endif
-
-# if defined (_STLP_HAS_SPECIFIC_PROLOG_EPILOG) && defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1300)
-// dwa 02/04/00
-// The header <yvals.h> which ships with vc6 and is included by its native <exception>
-// actually turns on warnings, so we have to turn them back off.
-# include <stl/config/_warnings_off.h>
-# endif
-
-# if defined (_STLP_USE_OWN_NAMESPACE)
-
-_STLP_BEGIN_NAMESPACE
-# if !defined (_STLP_BROKEN_EXCEPTION_CLASS)
-# if !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_WIN64)
-using _STLP_VENDOR_EXCEPT_STD::exception;
-# else
-using ::exception;
-# endif
-using _STLP_VENDOR_EXCEPT_STD::bad_exception;
-# endif
-
-# if !defined (_STLP_NO_USING_FOR_GLOBAL_FUNCTIONS)
-// fbp : many platforms present strange mix of
-// those in various namespaces
-# if !defined (_STLP_VENDOR_UNEXPECTED_STD)
-# define _STLP_VENDOR_UNEXPECTED_STD _STLP_VENDOR_EXCEPT_STD
-# else
-/* The following definitions are for backward compatibility as _STLP_VENDOR_TERMINATE_STD
- * and _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD has been introduce after _STLP_VENDOR_UNEXPECTED_STD
- * and _STLP_VENDOR_UNEXPECTED_STD was the macro used in their place before that introduction.
- */
-# if !defined (_STLP_VENDOR_TERMINATE_STD)
-# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_UNEXPECTED_STD
-# endif
-# if !defined (_STLP_VENDOR_UNCAUGHT_EXCEPTION_STD)
-# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_UNEXPECTED_STD
-# endif
-# endif
-# if !defined (_STLP_VENDOR_TERMINATE_STD)
-# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_EXCEPT_STD
-# endif
-# if !defined (_STLP_VENDOR_UNCAUGHT_EXCEPTION_STD)
-# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_EXCEPT_STD
-# endif
-# if !defined (_STLP_VENDOR_TERMINATE_STD)
-# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_EXCEPT_STD
-# endif
-# if !defined (_STLP_VENDOR_UNCAUGHT_EXCEPTION_STD)
-# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_EXCEPT_STD
-# endif
-// weird errors
-# if !defined (_STLP_NO_UNEXPECTED_EXCEPT_SUPPORT)
-# if defined (__ICL) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300)
-//See config/_intel.h for reason about this workaround
-using std::unexpected;
-# else
-using _STLP_VENDOR_UNEXPECTED_STD::unexpected;
-# endif
-using _STLP_VENDOR_UNEXPECTED_STD::unexpected_handler;
-using _STLP_VENDOR_UNEXPECTED_STD::set_unexpected;
-# endif
-using _STLP_VENDOR_TERMINATE_STD::terminate;
-using _STLP_VENDOR_TERMINATE_STD::terminate_handler;
-using _STLP_VENDOR_TERMINATE_STD::set_terminate;
-
-# if !defined (_STLP_NO_UNCAUGHT_EXCEPT_SUPPORT)
-using _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD::uncaught_exception;
-# endif
-# endif /* !_STLP_NO_USING_FOR_GLOBAL_FUNCTIONS */
-_STLP_END_NAMESPACE
-# endif /* _STLP_OWN_NAMESPACE */
-#else /* _STLP_NO_EXCEPTION_HEADER */
-
-/* fbp : absence of <exception> usually means that those
- * functions are not going to be called by compiler.
- * Still, define them for the user.
- * dums: Policy modification, if the function do not behave like the Standard
- * defined it we do not grant it in the STLport namespace. We will have
- * compile time error rather than runtime error.
- */
-#if 0
-/*
-typedef void (*unexpected_handler)();
-unexpected_handler set_unexpected(unexpected_handler f) _STLP_NOTHROW_INHERENTLY;
-void unexpected();
-
-typedef void (*terminate_handler)();
-terminate_handler set_terminate(terminate_handler f) _STLP_NOTHROW_INHERENTLY;
-void terminate();
-
-bool uncaught_exception(); // not implemented under mpw as of Jan/1999
-*/
-#endif
-
-#endif /* _STLP_NO_EXCEPTION_HEADER */
-
-#if defined (_STLP_NO_EXCEPTION_HEADER) || defined (_STLP_BROKEN_EXCEPTION_CLASS)
-_STLP_BEGIN_NAMESPACE
-
-// section 18.6.1
-class _STLP_CLASS_DECLSPEC exception {
-public:
-# ifndef _STLP_USE_NO_IOSTREAMS
- exception() _STLP_NOTHROW;
- virtual ~exception() _STLP_NOTHROW;
- virtual const char* what() const _STLP_NOTHROW;
-# else
- exception() _STLP_NOTHROW {}
- virtual ~exception() _STLP_NOTHROW {}
- virtual const char* what() const _STLP_NOTHROW {return "class exception";}
-# endif
-};
-
-// section 18.6.2.1
-class _STLP_CLASS_DECLSPEC bad_exception : public exception {
-public:
-# ifndef _STLP_USE_NO_IOSTREAMS
- bad_exception() _STLP_NOTHROW;
- ~bad_exception() _STLP_NOTHROW;
- const char* what() const _STLP_NOTHROW;
-# else
- bad_exception() _STLP_NOTHROW {}
- ~bad_exception() _STLP_NOTHROW {}
- const char* what() const _STLP_NOTHROW {return "class bad_exception";}
-# endif
-};
-
-// forward declaration
-class __Named_exception;
-_STLP_END_NAMESPACE
-#endif
-
-#endif /* _STLP_INTERNAL_EXCEPTION */
diff --git a/stlport/stlport/stl/_function.h b/stlport/stlport/stl/_function.h
deleted file mode 100644
index bf4ad3e..0000000
--- a/stlport/stlport/stl/_function.h
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_FUNCTION_H
-#define _STLP_INTERNAL_FUNCTION_H
-
-#ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp>
-struct not_equal_to : public binary_function<_Tp, _Tp, bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; }
-};
-
-template <class _Tp>
-struct greater : public binary_function<_Tp, _Tp, bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; }
-};
-
-template <class _Tp>
-struct greater_equal : public binary_function<_Tp, _Tp, bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; }
-};
-
-template <class _Tp>
-struct less_equal : public binary_function<_Tp, _Tp, bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; }
-};
-
-template <class _Tp>
-struct divides : public binary_function<_Tp, _Tp, _Tp> {
- _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; }
-};
-
-template <class _Tp>
-struct modulus : public binary_function<_Tp, _Tp, _Tp> {
- _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; }
-};
-
-template <class _Tp>
-struct negate : public unary_function<_Tp, _Tp> {
- _Tp operator()(const _Tp& __x) const { return -__x; }
-};
-
-template <class _Tp>
-struct logical_and : public binary_function<_Tp, _Tp, bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; }
-};
-
-template <class _Tp>
-struct logical_or : public binary_function<_Tp, _Tp,bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; }
-};
-
-template <class _Tp>
-struct logical_not : public unary_function<_Tp, bool> {
- bool operator()(const _Tp& __x) const { return !__x; }
-};
-
-#if !defined (_STLP_NO_EXTENSIONS)
-// identity_element (not part of the C++ standard).
-template <class _Tp> inline _Tp identity_element(plus<_Tp>) { return _Tp(0); }
-template <class _Tp> inline _Tp identity_element(multiplies<_Tp>) { return _Tp(1); }
-#endif
-
-#if defined (_STLP_BASE_TYPEDEF_BUG)
-// this workaround is needed for SunPro 4.0.1
-// suggested by "Martin Abernethy" <gma@paston.co.uk>:
-
-// We have to introduce the XXary_predicate_aux structures in order to
-// access the argument and return types of predicate functions supplied
-// as type parameters. SUN C++ 4.0.1 compiler gives errors for template type parameters
-// of the form 'name1::name2', where name1 is itself a type parameter.
-template <class _Pair>
-struct __pair_aux : private _Pair {
- typedef typename _Pair::first_type first_type;
- typedef typename _Pair::second_type second_type;
-};
-
-template <class _Operation>
-struct __unary_fun_aux : private _Operation {
- typedef typename _Operation::argument_type argument_type;
- typedef typename _Operation::result_type result_type;
-};
-
-template <class _Operation>
-struct __binary_fun_aux : private _Operation {
- typedef typename _Operation::first_argument_type first_argument_type;
- typedef typename _Operation::second_argument_type second_argument_type;
- typedef typename _Operation::result_type result_type;
-};
-
-# define __UNARY_ARG(__Operation,__type) __unary_fun_aux<__Operation>::__type
-# define __BINARY_ARG(__Operation,__type) __binary_fun_aux<__Operation>::__type
-# define __PAIR_ARG(__Pair,__type) __pair_aux<__Pair>::__type
-#else
-# define __UNARY_ARG(__Operation,__type) __Operation::__type
-# define __BINARY_ARG(__Operation,__type) __Operation::__type
-# define __PAIR_ARG(__Pair,__type) __Pair::__type
-#endif
-
-template <class _Predicate>
-class unary_negate
- : public unary_function<typename __UNARY_ARG(_Predicate, argument_type), bool> {
- typedef unary_function<typename __UNARY_ARG(_Predicate, argument_type), bool> _Base;
-public:
- typedef typename _Base::argument_type argument_type;
-private:
- typedef typename __call_traits<argument_type>::const_param_type _ArgParamType;
-protected:
- _Predicate _M_pred;
-public:
- explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {}
- bool operator()(_ArgParamType __x) const {
- return !_M_pred(__x);
- }
-};
-
-template <class _Predicate>
-inline unary_negate<_Predicate>
-not1(const _Predicate& __pred) {
- return unary_negate<_Predicate>(__pred);
-}
-
-template <class _Predicate>
-class binary_negate
- : public binary_function<typename __BINARY_ARG(_Predicate, first_argument_type),
- typename __BINARY_ARG(_Predicate, second_argument_type),
- bool> {
- typedef binary_function<typename __BINARY_ARG(_Predicate, first_argument_type),
- typename __BINARY_ARG(_Predicate, second_argument_type),
- bool> _Base;
-public:
- typedef typename _Base::first_argument_type first_argument_type;
- typedef typename _Base::second_argument_type second_argument_type;
-private:
- typedef typename __call_traits<first_argument_type>::const_param_type _FstArgParamType;
- typedef typename __call_traits<second_argument_type>::const_param_type _SndArgParamType;
-protected:
- _Predicate _M_pred;
-public:
- explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {}
- bool operator()(_FstArgParamType __x, _SndArgParamType __y) const {
- return !_M_pred(__x, __y);
- }
-};
-
-template <class _Predicate>
-inline binary_negate<_Predicate>
-not2(const _Predicate& __pred) {
- return binary_negate<_Predicate>(__pred);
-}
-
-template <class _Operation>
-class binder1st :
- public unary_function<typename __BINARY_ARG(_Operation, second_argument_type),
- typename __BINARY_ARG(_Operation, result_type) > {
- typedef unary_function<typename __BINARY_ARG(_Operation, second_argument_type),
- typename __BINARY_ARG(_Operation, result_type) > _Base;
-public:
- typedef typename _Base::argument_type argument_type;
- typedef typename _Base::result_type result_type;
-private:
- typedef typename __call_traits<argument_type>::param_type _ArgParamType;
- typedef typename __call_traits<argument_type>::const_param_type _ConstArgParamType;
- typedef typename __call_traits<typename _Operation::first_argument_type>::const_param_type _ValueParamType;
-protected:
- //op is a Standard name (20.3.6.1), do no make it STLport naming convention compliant.
- _Operation op;
- typename _Operation::first_argument_type _M_value;
-public:
- binder1st(const _Operation& __x, _ValueParamType __y)
- : op(__x), _M_value(__y) {}
-
- result_type operator()(_ConstArgParamType __x) const
- { return op(_M_value, __x); }
- // DR 109 Missing binders for non-const sequence elements
- result_type operator()(_ArgParamType __x) const
- { return op(_M_value, __x); }
-};
-
-template <class _Operation, class _Tp>
-inline binder1st<_Operation>
-bind1st(const _Operation& __fn, const _Tp& __x) {
- typedef typename _Operation::first_argument_type _Arg1_type;
- return binder1st<_Operation>(__fn, _Arg1_type(__x));
-}
-
-template <class _Operation>
-class binder2nd
- : public unary_function<typename __BINARY_ARG(_Operation, first_argument_type),
- typename __BINARY_ARG(_Operation, result_type)> {
- typedef unary_function<typename __BINARY_ARG(_Operation, first_argument_type),
- typename __BINARY_ARG(_Operation, result_type)> _Base;
-public:
- typedef typename _Base::argument_type argument_type;
- typedef typename _Base::result_type result_type;
-private:
- typedef typename __call_traits<argument_type>::param_type _ArgParamType;
- typedef typename __call_traits<argument_type>::const_param_type _ConstArgParamType;
- typedef typename __call_traits<typename _Operation::second_argument_type>::const_param_type _ValueParamType;
-protected:
- //op is a Standard name (20.3.6.3), do no make it STLport naming convention compliant.
- _Operation op;
- typename _Operation::second_argument_type value;
-public:
- binder2nd(const _Operation& __x, _ValueParamType __y)
- : op(__x), value(__y) {}
-
- result_type operator()(_ConstArgParamType __x) const
- { return op(__x, value); }
- // DR 109 Missing binders for non-const sequence elements
- result_type operator()(_ArgParamType __x) const
- { return op(__x, value); }
-};
-
-template <class _Operation, class _Tp>
-inline binder2nd<_Operation>
-bind2nd(const _Operation& __fn, const _Tp& __x) {
- typedef typename _Operation::second_argument_type _Arg2_type;
- return binder2nd<_Operation>(__fn, _Arg2_type(__x));
-}
-
-#if !defined (_STLP_NO_EXTENSIONS)
-// unary_compose and binary_compose (extensions, not part of the standard).
-
-template <class _Operation1, class _Operation2>
-class unary_compose :
- public unary_function<typename __UNARY_ARG(_Operation2, argument_type),
- typename __UNARY_ARG(_Operation1, result_type)> {
- typedef unary_function<typename __UNARY_ARG(_Operation2, argument_type),
- typename __UNARY_ARG(_Operation1, result_type)> _Base;
-public:
- typedef typename _Base::argument_type argument_type;
- typedef typename _Base::result_type result_type;
-private:
- typedef typename __call_traits<argument_type>::const_param_type _ArgParamType;
-protected:
- _Operation1 _M_fn1;
- _Operation2 _M_fn2;
-public:
- unary_compose(const _Operation1& __x, const _Operation2& __y)
- : _M_fn1(__x), _M_fn2(__y) {}
-
- result_type operator()(_ArgParamType __x) const {
- return _M_fn1(_M_fn2(__x));
- }
-};
-
-template <class _Operation1, class _Operation2>
-inline unary_compose<_Operation1,_Operation2>
-compose1(const _Operation1& __fn1, const _Operation2& __fn2) {
- return unary_compose<_Operation1,_Operation2>(__fn1, __fn2);
-}
-
-template <class _Operation1, class _Operation2, class _Operation3>
-class binary_compose :
- public unary_function<typename __UNARY_ARG(_Operation2, argument_type),
- typename __BINARY_ARG(_Operation1, result_type)> {
- typedef unary_function<typename __UNARY_ARG(_Operation2, argument_type),
- typename __BINARY_ARG(_Operation1, result_type)> _Base;
-public:
- typedef typename _Base::argument_type argument_type;
- typedef typename _Base::result_type result_type;
-private:
- typedef typename __call_traits<argument_type>::const_param_type _ArgParamType;
-protected:
- _Operation1 _M_fn1;
- _Operation2 _M_fn2;
- _Operation3 _M_fn3;
-public:
- binary_compose(const _Operation1& __x, const _Operation2& __y,
- const _Operation3& __z)
- : _M_fn1(__x), _M_fn2(__y), _M_fn3(__z) { }
-
- result_type operator()(_ArgParamType __x) const {
- return _M_fn1(_M_fn2(__x), _M_fn3(__x));
- }
-};
-
-template <class _Operation1, class _Operation2, class _Operation3>
-inline binary_compose<_Operation1, _Operation2, _Operation3>
-compose2(const _Operation1& __fn1, const _Operation2& __fn2,
- const _Operation3& __fn3) {
- return binary_compose<_Operation1,_Operation2,_Operation3>(__fn1, __fn2, __fn3);
-}
-
-// identity is an extension: it is not part of the standard.
-template <class _Tp> struct identity : public _STLP_PRIV _Identity<_Tp> {};
-// select1st and select2nd are extensions: they are not part of the standard.
-template <class _Pair> struct select1st : public _STLP_PRIV _Select1st<_Pair> {};
-template <class _Pair> struct select2nd : public _STLP_PRIV _Select2nd<_Pair> {};
-
-template <class _Arg1, class _Arg2>
-struct project1st : public _STLP_PRIV _Project1st<_Arg1, _Arg2> {};
-
-template <class _Arg1, class _Arg2>
-struct project2nd : public _STLP_PRIV _Project2nd<_Arg1, _Arg2> {};
-
-
-// constant_void_fun, constant_unary_fun, and constant_binary_fun are
-// extensions: they are not part of the standard. (The same, of course,
-// is true of the helper functions constant0, constant1, and constant2.)
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Result>
-struct _Constant_void_fun {
- typedef _Result result_type;
- result_type _M_val;
-
- _Constant_void_fun(const result_type& __v) : _M_val(__v) {}
- const result_type& operator()() const { return _M_val; }
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _Result>
-struct constant_void_fun : public _STLP_PRIV _Constant_void_fun<_Result> {
- constant_void_fun(const _Result& __v)
- : _STLP_PRIV _Constant_void_fun<_Result>(__v) {}
-};
-
-template <class _Result, _STLP_DFL_TMPL_PARAM( _Argument , _Result) >
-struct constant_unary_fun : public _STLP_PRIV _Constant_unary_fun<_Result, _Argument> {
- constant_unary_fun(const _Result& __v)
- : _STLP_PRIV _Constant_unary_fun<_Result, _Argument>(__v) {}
-};
-
-template <class _Result, _STLP_DFL_TMPL_PARAM( _Arg1 , _Result), _STLP_DFL_TMPL_PARAM( _Arg2 , _Arg1) >
-struct constant_binary_fun
- : public _STLP_PRIV _Constant_binary_fun<_Result, _Arg1, _Arg2> {
- constant_binary_fun(const _Result& __v)
- : _STLP_PRIV _Constant_binary_fun<_Result, _Arg1, _Arg2>(__v) {}
-};
-
-template <class _Result>
-inline constant_void_fun<_Result> constant0(const _Result& __val) {
- return constant_void_fun<_Result>(__val);
-}
-
-template <class _Result>
-inline constant_unary_fun<_Result,_Result> constant1(const _Result& __val) {
- return constant_unary_fun<_Result,_Result>(__val);
-}
-
-template <class _Result>
-inline constant_binary_fun<_Result,_Result,_Result>
-constant2(const _Result& __val) {
- return constant_binary_fun<_Result,_Result,_Result>(__val);
-}
-
-// subtractive_rng is an extension: it is not part of the standard.
-// Note: this code assumes that int is 32 bits.
-class subtractive_rng : public unary_function<_STLP_UINT32_T, _STLP_UINT32_T> {
-private:
- _STLP_UINT32_T _M_table[55];
- _STLP_UINT32_T _M_index1;
- _STLP_UINT32_T _M_index2;
-public:
- _STLP_UINT32_T operator()(_STLP_UINT32_T __limit) {
- _M_index1 = (_M_index1 + 1) % 55;
- _M_index2 = (_M_index2 + 1) % 55;
- _M_table[_M_index1] = _M_table[_M_index1] - _M_table[_M_index2];
- return _M_table[_M_index1] % __limit;
- }
-
- void _M_initialize(_STLP_UINT32_T __seed) {
- _STLP_UINT32_T __k = 1;
- _M_table[54] = __seed;
- _STLP_UINT32_T __i;
- for (__i = 0; __i < 54; __i++) {
- _STLP_UINT32_T __ii = (21 * (__i + 1) % 55) - 1;
- _M_table[__ii] = __k;
- __k = __seed - __k;
- __seed = _M_table[__ii];
- }
- for (int __loop = 0; __loop < 4; __loop++) {
- for (__i = 0; __i < 55; __i++)
- _M_table[__i] = _M_table[__i] - _M_table[(1 + __i + 30) % 55];
- }
- _M_index1 = 0;
- _M_index2 = 31;
- }
-
- subtractive_rng(unsigned int __seed) { _M_initialize(__seed); }
- subtractive_rng() { _M_initialize(161803398ul); }
-};
-
-#endif /* _STLP_NO_EXTENSIONS */
-
-_STLP_END_NAMESPACE
-
-#include <stl/_function_adaptors.h>
-
-#endif /* _STLP_INTERNAL_FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_function_adaptors.h b/stlport/stlport/stl/_function_adaptors.h
deleted file mode 100644
index 0da419b..0000000
--- a/stlport/stlport/stl/_function_adaptors.h
+++ /dev/null
@@ -1,783 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * Copyright (c) 2000
- * Pavel Kuznetsov
- *
- * Copyright (c) 2001
- * Meridian'93
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-// This file has noo macro protection as it is meant to be included several times
-// from other header.
-// Adaptor function objects: pointers to member functions.
-
-// There are a total of 16 = 2^4 function objects in this family.
-// (1) Member functions taking no arguments vs member functions taking
-// one argument.
-// (2) Call through pointer vs call through reference.
-// (3) Member function with void return type vs member function with
-// non-void return type.
-// (4) Const vs non-const member function.
-
-// Note that choice (3) is nothing more than a workaround: according
-// to the draft, compilers should handle void and non-void the same way.
-// This feature is not yet widely implemented, though. You can only use
-// member functions returning void if your compiler supports partial
-// specialization.
-
-// All of this complexity is in the function objects themselves. You can
-// ignore it by using the helper function mem_fun and mem_fun_ref,
-// which create whichever type of adaptor is appropriate.
-
-_STLP_BEGIN_NAMESPACE
-
-//This implementation will only be used if needed, that is to say when there is the return void bug
-//and when there is no partial template specialization
-#if defined (_STLP_DONT_RETURN_VOID) && defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && defined (_STLP_MEMBER_TEMPLATE_CLASSES)
-
-template<class _Result, class _Tp>
-class _Mem_fun0_ptr : public unary_function<_Tp*, _Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) ();
- explicit _Mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(_Tp* __p) const { return (__p->*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp, class _Arg>
-class _Mem_fun1_ptr : public binary_function<_Tp*,_Arg,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) (_Arg);
- explicit _Mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp>
-class _Const_mem_fun0_ptr : public unary_function<const _Tp*,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) () const;
- explicit _Const_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(const _Tp* __p) const { return (__p->*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp, class _Arg>
-class _Const_mem_fun1_ptr : public binary_function<const _Tp*,_Arg,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) (_Arg) const;
- explicit _Const_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(const _Tp* __p, _Arg __x) const {
- return (__p->*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp>
-class _Mem_fun0_ref : public unary_function<_Tp,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) ();
- explicit _Mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(_Tp& __p) const { return (__p.*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp, class _Arg>
-class _Mem_fun1_ref : public binary_function<_Tp,_Arg,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) (_Arg);
- explicit _Mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(_Tp& __p, _Arg __x) const { return (__p.*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp>
-class _Const_mem_fun0_ref : public unary_function<_Tp,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) () const;
- explicit _Const_mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(const _Tp& __p) const { return (__p.*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result, class _Tp, class _Arg>
-class _Const_mem_fun1_ref : public binary_function<_Tp,_Arg,_Result> {
-protected:
- typedef _Result (_Tp::*__fun_type) (_Arg) const;
- explicit _Const_mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator ()(const _Tp& __p, _Arg __x) const { return (__p.*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result>
-struct _Mem_fun_traits {
- template<class _Tp>
- struct _Args0 {
- typedef _Mem_fun0_ptr<_Result,_Tp> _Ptr;
- typedef _Const_mem_fun0_ptr<_Result,_Tp> _Ptr_const;
- typedef _Mem_fun0_ref<_Result,_Tp> _Ref;
- typedef _Const_mem_fun0_ref<_Result,_Tp> _Ref_const;
- };
-
- template<class _Tp, class _Arg>
- struct _Args1 {
- typedef _Mem_fun1_ptr<_Result,_Tp,_Arg> _Ptr;
- typedef _Const_mem_fun1_ptr<_Result,_Tp,_Arg> _Ptr_const;
- typedef _Mem_fun1_ref<_Result,_Tp,_Arg> _Ref;
- typedef _Const_mem_fun1_ref<_Result,_Tp,_Arg> _Ref_const;
- };
-};
-
-template<class _Arg, class _Result>
-class _Ptr_fun1_base : public unary_function<_Arg, _Result> {
-protected:
- typedef _Result (*__fun_type) (_Arg);
- explicit _Ptr_fun1_base(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator()(_Arg __x) const { return _M_f(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template <class _Arg1, class _Arg2, class _Result>
-class _Ptr_fun2_base : public binary_function<_Arg1,_Arg2,_Result> {
-protected:
- typedef _Result (*__fun_type) (_Arg1, _Arg2);
- explicit _Ptr_fun2_base(__fun_type __f) : _M_f(__f) {}
-
-public:
- _Result operator()(_Arg1 __x, _Arg2 __y) const { return _M_f(__x, __y); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Result>
-struct _Ptr_fun_traits {
- template<class _Arg> struct _Args1 {
- typedef _Ptr_fun1_base<_Arg,_Result> _Fun;
- };
-
- template<class _Arg1, class _Arg2> struct _Args2 {
- typedef _Ptr_fun2_base<_Arg1,_Arg2,_Result> _Fun;
- };
-};
-
-/* Specializations for void return type */
-template<class _Tp>
-class _Void_mem_fun0_ptr : public unary_function<_Tp*,void> {
-protected:
- typedef void (_Tp::*__fun_type) ();
- explicit _Void_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(_Tp* __p) const { (__p->*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp, class _Arg>
-class _Void_mem_fun1_ptr : public binary_function<_Tp*,_Arg,void> {
-protected:
- typedef void (_Tp::*__fun_type) (_Arg);
- explicit _Void_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp>
-class _Void_const_mem_fun0_ptr : public unary_function<const _Tp*,void> {
-protected:
- typedef void (_Tp::*__fun_type) () const;
- explicit _Void_const_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(const _Tp* __p) const { (__p->*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp, class _Arg>
-class _Void_const_mem_fun1_ptr : public binary_function<const _Tp*,_Arg,void> {
-protected:
- typedef void (_Tp::*__fun_type) (_Arg) const;
- explicit _Void_const_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp>
-class _Void_mem_fun0_ref : public unary_function<_Tp,void> {
-protected:
- typedef void (_Tp::*__fun_type) ();
- explicit _Void_mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(_Tp& __p) const { (__p.*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp, class _Arg>
-class _Void_mem_fun1_ref : public binary_function<_Tp,_Arg,void> {
-protected:
- typedef void (_Tp::*__fun_type) (_Arg);
- explicit _Void_mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(_Tp& __p, _Arg __x) const { (__p.*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp>
-class _Void_const_mem_fun0_ref : public unary_function<_Tp,void> {
-protected:
- typedef void (_Tp::*__fun_type) () const;
- explicit _Void_const_mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(const _Tp& __p) const { (__p.*_M_f)(); }
-
-private:
- __fun_type _M_f;
-};
-
-template<class _Tp, class _Arg>
-class _Void_const_mem_fun1_ref : public binary_function<_Tp,_Arg,void> {
-protected:
- typedef void (_Tp::*__fun_type) (_Arg) const;
- explicit _Void_const_mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator ()(const _Tp& __p, _Arg __x) const { (__p.*_M_f)(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-_STLP_TEMPLATE_NULL
-struct _Mem_fun_traits<void> {
- template<class _Tp> struct _Args0 {
- typedef _Void_mem_fun0_ptr<_Tp> _Ptr;
- typedef _Void_const_mem_fun0_ptr<_Tp> _Ptr_const;
- typedef _Void_mem_fun0_ref<_Tp> _Ref;
- typedef _Void_const_mem_fun0_ref<_Tp> _Ref_const;
- };
-
- template<class _Tp, class _Arg> struct _Args1 {
- typedef _Void_mem_fun1_ptr<_Tp,_Arg> _Ptr;
- typedef _Void_const_mem_fun1_ptr<_Tp,_Arg> _Ptr_const;
- typedef _Void_mem_fun1_ref<_Tp,_Arg> _Ref;
- typedef _Void_const_mem_fun1_ref<_Tp,_Arg> _Ref_const;
- };
-};
-
-template<class _Arg>
-class _Ptr_void_fun1_base : public unary_function<_Arg, void> {
-protected:
- typedef void (*__fun_type) (_Arg);
- explicit _Ptr_void_fun1_base(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator()(_Arg __x) const { _M_f(__x); }
-
-private:
- __fun_type _M_f;
-};
-
-template <class _Arg1, class _Arg2>
-class _Ptr_void_fun2_base : public binary_function<_Arg1,_Arg2,void> {
-protected:
- typedef void (*__fun_type) (_Arg1, _Arg2);
- explicit _Ptr_void_fun2_base(__fun_type __f) : _M_f(__f) {}
-
-public:
- void operator()(_Arg1 __x, _Arg2 __y) const { _M_f(__x, __y); }
-
-private:
- __fun_type _M_f;
-};
-
-_STLP_TEMPLATE_NULL
-struct _Ptr_fun_traits<void> {
- template<class _Arg> struct _Args1 {
- typedef _Ptr_void_fun1_base<_Arg> _Fun;
- };
-
- template<class _Arg1, class _Arg2> struct _Args2 {
- typedef _Ptr_void_fun2_base<_Arg1,_Arg2> _Fun;
- };
-};
-
-// pavel: need extra level of inheritance here since MSVC++ does not
-// accept traits-based fake partial specialization for template
-// arguments other than first
-
-template<class _Result, class _Arg>
-class _Ptr_fun1 :
- public _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Arg>::_Fun {
-protected:
- typedef typename _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Arg>::_Fun _Base;
- explicit _Ptr_fun1(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template<class _Result, class _Arg1, class _Arg2>
-class _Ptr_fun2 :
- public _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args2<_Arg1,_Arg2>::_Fun {
-protected:
- typedef typename _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args2<_Arg1,_Arg2>::_Fun _Base;
- explicit _Ptr_fun2(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp>
-class mem_fun_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr _Base;
-public:
- explicit mem_fun_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp>
-class const_mem_fun_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr_const {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr_const _Base;
-public:
- explicit const_mem_fun_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp>
-class mem_fun_ref_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref _Base;
-public:
- explicit mem_fun_ref_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp>
-class const_mem_fun_ref_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref_const {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref_const _Base;
-public:
- explicit const_mem_fun_ref_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp, class _Arg>
-class mem_fun1_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr _Base;
-public:
- explicit mem_fun1_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp, class _Arg>
-class const_mem_fun1_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr_const {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr_const _Base;
-public:
- explicit const_mem_fun1_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp, class _Arg>
-class mem_fun1_ref_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref _Base;
-public:
- explicit mem_fun1_ref_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Result, class _Tp, class _Arg>
-class const_mem_fun1_ref_t :
- public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref_const {
- typedef typename
- _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref_const _Base;
-public:
- explicit const_mem_fun1_ref_t(typename _Base::__fun_type __f) : _Base(__f) {}
-};
-
-template <class _Arg, class _Result>
-class pointer_to_unary_function :
- public _Ptr_fun1<_Result,_Arg> {
- typedef typename
- _Ptr_fun1<_Result,_Arg>::__fun_type __fun_type;
-public:
- explicit pointer_to_unary_function(__fun_type __f)
- : _Ptr_fun1<_Result,_Arg>(__f) {}
-};
-
-template <class _Arg1, class _Arg2, class _Result>
-class pointer_to_binary_function :
- public _Ptr_fun2<_Result,_Arg1,_Arg2> {
- typedef typename
- _Ptr_fun2<_Result,_Arg1,_Arg2>::__fun_type __fun_type;
-public:
- explicit pointer_to_binary_function(__fun_type __f)
- : _Ptr_fun2<_Result,_Arg1,_Arg2>(__f) {}
-};
-
-#else
-
-template <class _Ret, class _Tp>
-class mem_fun_t : public unary_function<_Tp*,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(void);
-public:
- explicit mem_fun_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp>
-class const_mem_fun_t : public unary_function<const _Tp*,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(void) const;
-public:
- explicit const_mem_fun_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp>
-class mem_fun_ref_t : public unary_function<_Tp,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(void);
-public:
- explicit mem_fun_ref_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp>
-class const_mem_fun_ref_t : public unary_function<_Tp,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(void) const;
-public:
- explicit const_mem_fun_ref_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp, class _Arg>
-class mem_fun1_t : public binary_function<_Tp*,_Arg,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(_Arg);
-public:
- explicit mem_fun1_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp, class _Arg>
-class const_mem_fun1_t : public binary_function<const _Tp*,_Arg,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(_Arg) const;
-public:
- explicit const_mem_fun1_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(const _Tp* __p, _Arg __x) const
- { return (__p->*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp, class _Arg>
-class mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(_Arg);
-public:
- explicit mem_fun1_ref_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Ret, class _Tp, class _Arg>
-class const_mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> {
- typedef _Ret (_Tp::*__fun_type)(_Arg) const;
-public:
- explicit const_mem_fun1_ref_t(__fun_type __pf) : _M_f(__pf) {}
- _Ret operator()(const _Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Arg, class _Result>
-class pointer_to_unary_function : public unary_function<_Arg, _Result> {
-protected:
- _Result (*_M_ptr)(_Arg);
-public:
- pointer_to_unary_function() {}
- explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) {}
- _Result operator()(_Arg __x) const { return _M_ptr(__x); }
-};
-
-template <class _Arg1, class _Arg2, class _Result>
-class pointer_to_binary_function :
- public binary_function<_Arg1,_Arg2,_Result> {
-protected:
- _Result (*_M_ptr)(_Arg1, _Arg2);
-public:
- pointer_to_binary_function() {}
- explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
- : _M_ptr(__x) {}
- _Result operator()(_Arg1 __x, _Arg2 __y) const {
- return _M_ptr(__x, __y);
- }
-};
-
-# if defined (_STLP_DONT_RETURN_VOID) && !defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION)
-//Partial specializations for the void type
-template <class _Tp>
-class mem_fun_t<void, _Tp> : public unary_function<_Tp*,void> {
- typedef void (_Tp::*__fun_type)(void);
-public:
- explicit mem_fun_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(_Tp* __p) const { (__p->*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp>
-class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*,void> {
- typedef void (_Tp::*__fun_type)(void) const;
-public:
- explicit const_mem_fun_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(const _Tp* __p) const { (__p->*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp>
-class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> {
- typedef void (_Tp::*__fun_type)(void);
-public:
- explicit mem_fun_ref_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(_Tp& __r) const { (__r.*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp>
-class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> {
- typedef void (_Tp::*__fun_type)(void) const;
-public:
- explicit const_mem_fun_ref_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(const _Tp& __r) const { (__r.*_M_f)(); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp, class _Arg>
-class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*,_Arg,void> {
- typedef void (_Tp::*__fun_type)(_Arg);
-public:
- explicit mem_fun1_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp, class _Arg>
-class const_mem_fun1_t<void, _Tp, _Arg>
- : public binary_function<const _Tp*,_Arg,void> {
- typedef void (_Tp::*__fun_type)(_Arg) const;
-public:
- explicit const_mem_fun1_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp, class _Arg>
-class mem_fun1_ref_t<void, _Tp, _Arg>
- : public binary_function<_Tp,_Arg,void> {
- typedef void (_Tp::*__fun_type)(_Arg);
-public:
- explicit mem_fun1_ref_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(_Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Tp, class _Arg>
-class const_mem_fun1_ref_t<void, _Tp, _Arg>
- : public binary_function<_Tp,_Arg,void> {
- typedef void (_Tp::*__fun_type)(_Arg) const;
-public:
- explicit const_mem_fun1_ref_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {}
- void operator()(const _Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); }
-private:
- __fun_type _M_f;
-};
-
-template <class _Arg>
-class pointer_to_unary_function<_Arg, void> : public unary_function<_Arg, void> {
- typedef void (*__fun_type)(_Arg);
- __fun_type _M_ptr;
-public:
- pointer_to_unary_function() {}
- explicit pointer_to_unary_function(__fun_type __x) : _M_ptr(__x) {}
- void operator()(_Arg __x) const { _M_ptr(__x); }
-};
-
-template <class _Arg1, class _Arg2>
-class pointer_to_binary_function<_Arg1, _Arg2, void> : public binary_function<_Arg1,_Arg2,void> {
- typedef void (*__fun_type)(_Arg1, _Arg2);
- __fun_type _M_ptr;
-public:
- pointer_to_binary_function() {}
- explicit pointer_to_binary_function(__fun_type __x) : _M_ptr(__x) {}
- void operator()(_Arg1 __x, _Arg2 __y) const { _M_ptr(__x, __y); }
-};
-
-# endif
-
-#endif
-
-#if !defined (_STLP_MEMBER_POINTER_PARAM_BUG)
-// Mem_fun adaptor helper functions. There are only two:
-// mem_fun and mem_fun_ref. (mem_fun1 and mem_fun1_ref
-// are provided for backward compatibility, but they are no longer
-// part of the C++ standard.)
-
-template <class _Result, class _Tp>
-inline mem_fun_t<_Result,_Tp>
-mem_fun(_Result (_Tp::*__f)()) { return mem_fun_t<_Result,_Tp>(__f); }
-
-template <class _Result, class _Tp>
-inline const_mem_fun_t<_Result,_Tp>
-mem_fun(_Result (_Tp::*__f)() const) { return const_mem_fun_t<_Result,_Tp>(__f); }
-
-template <class _Result, class _Tp>
-inline mem_fun_ref_t<_Result,_Tp>
-mem_fun_ref(_Result (_Tp::*__f)()) { return mem_fun_ref_t<_Result,_Tp>(__f); }
-
-template <class _Result, class _Tp>
-inline const_mem_fun_ref_t<_Result,_Tp>
-mem_fun_ref(_Result (_Tp::*__f)() const) { return const_mem_fun_ref_t<_Result,_Tp>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline mem_fun1_t<_Result,_Tp,_Arg>
-mem_fun(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Result,_Tp,_Arg>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline const_mem_fun1_t<_Result,_Tp,_Arg>
-mem_fun(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_t<_Result,_Tp,_Arg>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline mem_fun1_ref_t<_Result,_Tp,_Arg>
-mem_fun_ref(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline const_mem_fun1_ref_t<_Result,_Tp,_Arg>
-mem_fun_ref(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); }
-
-# if !(defined (_STLP_NO_EXTENSIONS) || defined (_STLP_NO_ANACHRONISMS))
-// mem_fun1 and mem_fun1_ref are no longer part of the C++ standard,
-// but they are provided for backward compatibility.
-template <class _Result, class _Tp, class _Arg>
-inline mem_fun1_t<_Result,_Tp,_Arg>
-mem_fun1(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Result,_Tp,_Arg>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline const_mem_fun1_t<_Result,_Tp,_Arg>
-mem_fun1(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_t<_Result,_Tp,_Arg>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline mem_fun1_ref_t<_Result,_Tp,_Arg>
-mem_fun1_ref(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); }
-
-template <class _Result, class _Tp, class _Arg>
-inline const_mem_fun1_ref_t<_Result,_Tp,_Arg>
-mem_fun1_ref(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); }
-
-# endif
-
-#endif
-
-template <class _Arg, class _Result>
-inline pointer_to_unary_function<_Arg, _Result>
-ptr_fun(_Result (*__f)(_Arg))
-{ return pointer_to_unary_function<_Arg, _Result>(__f); }
-
-template <class _Arg1, class _Arg2, class _Result>
-inline pointer_to_binary_function<_Arg1,_Arg2,_Result>
-ptr_fun(_Result (*__f)(_Arg1, _Arg2))
-{ return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f); }
-
-_STLP_END_NAMESPACE
diff --git a/stlport/stlport/stl/_function_base.h b/stlport/stlport/stl/_function_base.h
deleted file mode 100644
index 1e7f4f5..0000000
--- a/stlport/stlport/stl/_function_base.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-#define _STLP_INTERNAL_FUNCTION_BASE_H
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_TYPE_TRAITS_H)
-# include <stl/type_traits.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Arg, class _Result>
-struct unary_function {
- typedef _Arg argument_type;
- typedef _Result result_type;
-#if !defined (__BORLANDC__) || (__BORLANDC__ < 0x580)
-protected:
- /* This class purpose is to be derived but it is not polymorphic so users should never try
- * to destroy an instance of it directly. The protected non-virtual destructor make this
- * fact obvious at compilation time. */
- ~unary_function() {}
-#endif
-};
-
-template <class _Arg1, class _Arg2, class _Result>
-struct binary_function {
- typedef _Arg1 first_argument_type;
- typedef _Arg2 second_argument_type;
- typedef _Result result_type;
-#if !defined (__BORLANDC__) || (__BORLANDC__ < 0x580)
-protected:
- /* See unary_function comment. */
- ~binary_function() {}
-#endif
-};
-
-template <class _Tp>
-struct equal_to : public binary_function<_Tp, _Tp, bool> {
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; }
-};
-
-template <class _Tp>
-struct less : public binary_function<_Tp,_Tp,bool>
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-/* less is the default template parameter for many STL containers, to fully use
- * the move constructor feature we need to know that the default less is just a
- * functor.
- */
- , public __stlport_class<less<_Tp> >
-#endif
-{
- bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; }
-
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(less<_Tp>& __x) {}
-#endif
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _Tp>
-struct __type_traits<less<_Tp> > {
-#if !defined (__BORLANDC__)
- typedef typename _IsSTLportClass<less<_Tp> >::_Ret _STLportLess;
-#else
- enum { _Is = _IsSTLportClass<less<_Tp> >::_Is };
- typedef typename __bool2type<_Is>::_Ret _STLportLess;
-#endif
- typedef _STLportLess has_trivial_default_constructor;
- typedef _STLportLess has_trivial_copy_constructor;
- typedef _STLportLess has_trivial_assignment_operator;
- typedef _STLportLess has_trivial_destructor;
- typedef _STLportLess is_POD_type;
-};
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp>
-less<_Tp> __less(_Tp* ) { return less<_Tp>(); }
-
-template <class _Tp>
-equal_to<_Tp> __equal_to(_Tp* ) { return equal_to<_Tp>(); }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _Tp>
-struct plus : public binary_function<_Tp, _Tp, _Tp> {
- _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; }
-};
-
-template <class _Tp>
-struct minus : public binary_function<_Tp, _Tp, _Tp> {
- _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; }
-};
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp>
-plus<_Tp> __plus(_Tp* ) { return plus<_Tp>(); }
-
-template <class _Tp>
-minus<_Tp> __minus(_Tp* ) { return minus<_Tp>(); }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _Tp>
-struct multiplies : public binary_function<_Tp, _Tp, _Tp> {
- _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; }
-};
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Pair>
-struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> {
- const typename _Pair::first_type& operator()(const _Pair& __x) const {
- return __x.first;
- }
-};
-
-template <class _Pair>
-struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type> {
- const typename _Pair::second_type& operator()(const _Pair& __x) const {
- return __x.second;
- }
-};
-
-// project1st and project2nd are extensions: they are not part of the standard
-template <class _Arg1, class _Arg2>
-struct _Project1st : public binary_function<_Arg1, _Arg2, _Arg1> {
- _Arg1 operator()(const _Arg1& __x, const _Arg2&) const { return __x; }
-};
-
-template <class _Arg1, class _Arg2>
-struct _Project2nd : public binary_function<_Arg1, _Arg2, _Arg2> {
- _Arg2 operator()(const _Arg1&, const _Arg2& __y) const { return __y; }
-};
-
-#if defined (_STLP_MULTI_CONST_TEMPLATE_ARG_BUG)
-// fbp : sort of select1st just for maps
-template <class _Pair, class _Whatever>
-// JDJ (CW Pro1 doesn't like const when first_type is also const)
-struct __Select1st_hint : public unary_function<_Pair, _Whatever> {
- const _Whatever& operator () (const _Pair& __x) const { return __x.first; }
-};
-# define _STLP_SELECT1ST(__x,__y) _STLP_PRIV __Select1st_hint< __x, __y >
-#else
-# define _STLP_SELECT1ST(__x, __y) _STLP_PRIV _Select1st< __x >
-#endif
-
-template <class _Tp>
-struct _Identity : public unary_function<_Tp,_Tp> {
- const _Tp& operator()(const _Tp& __x) const { return __x; }
-};
-
-template <class _Result, class _Argument>
-struct _Constant_unary_fun {
- typedef _Argument argument_type;
- typedef _Result result_type;
- result_type _M_val;
-
- _Constant_unary_fun(const result_type& __v) : _M_val(__v) {}
- const result_type& operator()(const _Argument&) const { return _M_val; }
-};
-
-template <class _Result, class _Arg1, class _Arg2>
-struct _Constant_binary_fun {
- typedef _Arg1 first_argument_type;
- typedef _Arg2 second_argument_type;
- typedef _Result result_type;
- _Result _M_val;
-
- _Constant_binary_fun(const _Result& __v) : _M_val(__v) {}
- const result_type& operator()(const _Arg1&, const _Arg2&) const {
- return _M_val;
- }
-};
-
-// identity_element (not part of the C++ standard).
-template <class _Tp> inline _Tp __identity_element(plus<_Tp>) { return _Tp(0); }
-template <class _Tp> inline _Tp __identity_element(multiplies<_Tp>) { return _Tp(1); }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_FUNCTION_BASE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_hash_fun.h b/stlport/stlport/stl/_hash_fun.h
deleted file mode 100644
index 6197d7b..0000000
--- a/stlport/stlport/stl/_hash_fun.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Hewlett-Packard Company makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_HASH_FUN_H
-#define _STLP_HASH_FUN_H
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Key> struct hash { };
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-inline size_t __stl_hash_string(const char* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- unsigned long __h = 0;
- for ( ; *__s; ++__s)
- __h = 5*__h + *__s;
-
- return size_t(__h);
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_TEMPLATE_NULL
-struct hash<char*> {
- size_t operator()(const char* __s) const {
- _STLP_FIX_LITERAL_BUG(__s)
- return _STLP_PRIV __stl_hash_string(__s);
- }
-};
-
-_STLP_TEMPLATE_NULL
-struct hash<const char*> {
- size_t operator()(const char* __s) const {
- _STLP_FIX_LITERAL_BUG(__s)
- return _STLP_PRIV __stl_hash_string(__s);
- }
-};
-
-_STLP_TEMPLATE_NULL struct hash<char> {
- size_t operator()(char __x) const { return __x; }
-};
-_STLP_TEMPLATE_NULL struct hash<unsigned char> {
- size_t operator()(unsigned char __x) const { return __x; }
-};
-#if !defined (_STLP_NO_SIGNED_BUILTINS)
-_STLP_TEMPLATE_NULL struct hash<signed char> {
- size_t operator()(unsigned char __x) const { return __x; }
-};
-#endif
-_STLP_TEMPLATE_NULL struct hash<short> {
- size_t operator()(short __x) const { return __x; }
-};
-_STLP_TEMPLATE_NULL struct hash<unsigned short> {
- size_t operator()(unsigned short __x) const { return __x; }
-};
-_STLP_TEMPLATE_NULL struct hash<int> {
- size_t operator()(int __x) const { return __x; }
-};
-
-#if !defined (_STLP_MSVC) || (_STLP_MSVC < 1300) || defined (_WIN64)
-_STLP_TEMPLATE_NULL struct hash<unsigned int> {
- size_t operator()(unsigned int __x) const { return __x; }
-};
-#else
-/* MSVC .Net since 2002 has a 64 bits portability warning feature. typedef
- * like size_t are tagged as potential 64 bits variables making them different from
- * unsigned int. To avoid the warning when a hash container is instanciated with
- * the size_t key we prefer to grant the size_t specialization rather than the
- * unsigned int one.
- */
-_STLP_TEMPLATE_NULL struct hash<size_t> {
- size_t operator()(size_t __x) const { return __x; }
-};
-#endif
-
-_STLP_TEMPLATE_NULL struct hash<long> {
- size_t operator()(long __x) const { return __x; }
-};
-_STLP_TEMPLATE_NULL struct hash<unsigned long> {
- size_t operator()(unsigned long __x) const { return __x; }
-};
-
-#if defined (_STLP_LONG_LONG)
-_STLP_TEMPLATE_NULL struct hash<_STLP_LONG_LONG> {
- size_t operator()(_STLP_LONG_LONG x) const { return (size_t)x; }
-};
-_STLP_TEMPLATE_NULL struct hash<unsigned _STLP_LONG_LONG> {
- size_t operator()(unsigned _STLP_LONG_LONG x) const { return (size_t)x; }
-};
-#endif
-
-_STLP_TEMPLATE_NULL
-struct hash<void *>
-{
- union __vp {
- size_t s;
- void *p;
- };
-
- size_t operator()(void *__x) const
- {
- __vp vp;
- vp.p = __x;
- return vp.s;
- }
-};
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_HASH_FUN_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_hash_map.h b/stlport/stlport/stl/_hash_map.h
deleted file mode 100644
index cd46603..0000000
--- a/stlport/stlport/stl/_hash_map.h
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_HASH_MAP_H
-#define _STLP_INTERNAL_HASH_MAP_H
-
-#ifndef _STLP_INTERNAL_HASHTABLE_H
-# include <stl/_hashtable.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-//Specific iterator traits creation
-_STLP_CREATE_HASH_ITERATOR_TRAITS(HashMapTraitsT, traits)
-
-template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>),
- _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>),
- _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
-class hash_map
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<hash_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> >
-#endif
-{
-private:
- typedef hash_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self;
-public:
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<_STLP_CONST key_type, data_type> value_type;
-private:
- //Specific iterator traits creation
- typedef _STLP_PRIV _HashMapTraitsT<value_type> _HashMapTraits;
-
-public:
- typedef hashtable<value_type, key_type, _HashFcn, _HashMapTraits,
- _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht;
-
- typedef typename _Ht::hasher hasher;
- typedef typename _Ht::key_equal key_equal;
-
- typedef typename _Ht::size_type size_type;
- typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::reference reference;
- typedef typename _Ht::const_reference const_reference;
-
- typedef typename _Ht::iterator iterator;
- typedef typename _Ht::const_iterator const_iterator;
-
- typedef typename _Ht::allocator_type allocator_type;
-
- hasher hash_funct() const { return _M_ht.hash_funct(); }
- key_equal key_eq() const { return _M_ht.key_eq(); }
- allocator_type get_allocator() const { return _M_ht.get_allocator(); }
-
-private:
- _Ht _M_ht;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-public:
- hash_map() : _M_ht(0, hasher(), key_equal(), allocator_type()) {}
- explicit hash_map(size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type()) {}
- hash_map(size_type __n, const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type()) {}
- hash_map(size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- hash_map(__move_source<_Self> src)
- : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {
- }
-#endif
-
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- hash_map(_InputIterator __f, _InputIterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- template <class _InputIterator>
- hash_map(_InputIterator __f, _InputIterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- template <class _InputIterator>
- hash_map(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
-# ifdef _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
- template <class _InputIterator>
- hash_map(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : _M_ht(__n, __hf, __eql, allocator_type())
- { _M_ht.insert_unique(__f, __l); }
-# endif
- template <class _InputIterator>
- hash_map(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-
-#else
- hash_map(const value_type* __f, const value_type* __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_map(const value_type* __f, const value_type* __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_map(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_map(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-
- hash_map(const_iterator __f, const_iterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_map(const_iterator __f, const_iterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_map(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_map(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
-public:
- size_type size() const { return _M_ht.size(); }
- size_type max_size() const { return _M_ht.max_size(); }
- bool empty() const { return _M_ht.empty(); }
- void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
- iterator begin() { return _M_ht.begin(); }
- iterator end() { return _M_ht.end(); }
- const_iterator begin() const { return _M_ht.begin(); }
- const_iterator end() const { return _M_ht.end(); }
-
-public:
- pair<iterator,bool> insert(const value_type& __obj)
- { return _M_ht.insert_unique(__obj); }
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- void insert(_InputIterator __f, _InputIterator __l)
- { _M_ht.insert_unique(__f,__l); }
-#else
- void insert(const value_type* __f, const value_type* __l)
- { _M_ht.insert_unique(__f,__l); }
- void insert(const_iterator __f, const_iterator __l)
- { _M_ht.insert_unique(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
- pair<iterator,bool> insert_noresize(const value_type& __obj)
- { return _M_ht.insert_unique_noresize(__obj); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_ht.find(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- _Tp& operator[](const _KT& __key) {
- iterator __it = _M_ht.find(__key);
- return (__it == _M_ht.end() ?
- _M_ht._M_insert(value_type(__key, _STLP_DEFAULT_CONSTRUCTED(_Tp))).second :
- (*__it).second );
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const { return _M_ht.count(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __key)
- { return _M_ht.equal_range(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __key) const
- { return _M_ht.equal_range(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type erase(const _KT& __key) {return _M_ht.erase(__key); }
- void erase(iterator __it) { _M_ht.erase(__it); }
- void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); }
- void clear() { _M_ht.clear(); }
-
- void resize(size_type __hint) { _M_ht.resize(__hint); }
- size_type bucket_count() const { return _M_ht.bucket_count(); }
- size_type max_bucket_count() const { return _M_ht.max_bucket_count(); }
- size_type elems_in_bucket(size_type __n) const
- { return _M_ht.elems_in_bucket(__n); }
-};
-
-//Specific iterator traits creation
-_STLP_CREATE_HASH_ITERATOR_TRAITS(HashMultimapTraitsT, traits)
-
-template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>),
- _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>),
- _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
-class hash_multimap
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<hash_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> >
-#endif
-{
-private:
- typedef hash_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self;
-public:
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<_STLP_CONST key_type, data_type> value_type;
-private:
- //Specific iterator traits creation
- typedef _STLP_PRIV _HashMultimapTraitsT<value_type> _HashMultimapTraits;
-
-public:
- typedef hashtable<value_type, key_type, _HashFcn, _HashMultimapTraits,
- _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht;
-
- typedef typename _Ht::hasher hasher;
- typedef typename _Ht::key_equal key_equal;
-
- typedef typename _Ht::size_type size_type;
- typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::reference reference;
- typedef typename _Ht::const_reference const_reference;
-
- typedef typename _Ht::iterator iterator;
- typedef typename _Ht::const_iterator const_iterator;
-
- typedef typename _Ht::allocator_type allocator_type;
-
- hasher hash_funct() const { return _M_ht.hash_funct(); }
- key_equal key_eq() const { return _M_ht.key_eq(); }
- allocator_type get_allocator() const { return _M_ht.get_allocator(); }
-
-private:
- _Ht _M_ht;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-public:
- hash_multimap() : _M_ht(0, hasher(), key_equal(), allocator_type()) {}
- explicit hash_multimap(size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type()) {}
- hash_multimap(size_type __n, const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type()) {}
- hash_multimap(size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- hash_multimap(__move_source<_Self> src)
- : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {
- }
-#endif
-
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- hash_multimap(_InputIterator __f, _InputIterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- template <class _InputIterator>
- hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- template <class _InputIterator>
- hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
-# ifdef _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
- template <class _InputIterator>
- hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : _M_ht(__n, __hf, __eql, allocator_type())
- { _M_ht.insert_equal(__f, __l); }
-# endif
- template <class _InputIterator>
- hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-
-#else
- hash_multimap(const value_type* __f, const value_type* __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multimap(const value_type* __f, const value_type* __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multimap(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multimap(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-
- hash_multimap(const_iterator __f, const_iterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multimap(const_iterator __f, const_iterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multimap(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multimap(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
-public:
- size_type size() const { return _M_ht.size(); }
- size_type max_size() const { return _M_ht.max_size(); }
- bool empty() const { return _M_ht.empty(); }
- void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- iterator begin() { return _M_ht.begin(); }
- iterator end() { return _M_ht.end(); }
- const_iterator begin() const { return _M_ht.begin(); }
- const_iterator end() const { return _M_ht.end(); }
-
-public:
- iterator insert(const value_type& __obj)
- { return _M_ht.insert_equal(__obj); }
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- void insert(_InputIterator __f, _InputIterator __l)
- { _M_ht.insert_equal(__f,__l); }
-#else
- void insert(const value_type* __f, const value_type* __l) {
- _M_ht.insert_equal(__f,__l);
- }
- void insert(const_iterator __f, const_iterator __l)
- { _M_ht.insert_equal(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
- iterator insert_noresize(const value_type& __obj)
- { return _M_ht.insert_equal_noresize(__obj); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_ht.find(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const { return _M_ht.count(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator>
- equal_range(const _KT& __key) { return _M_ht.equal_range(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator>
- equal_range(const _KT& __key) const { return _M_ht.equal_range(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type erase(const _KT& __key) {return _M_ht.erase(__key); }
- void erase(iterator __it) { _M_ht.erase(__it); }
- void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); }
- void clear() { _M_ht.clear(); }
-
-public:
- void resize(size_type __hint) { _M_ht.resize(__hint); }
- size_type bucket_count() const { return _M_ht.bucket_count(); }
- size_type max_bucket_count() const { return _M_ht.max_bucket_count(); }
- size_type elems_in_bucket(size_type __n) const
- { return _M_ht.elems_in_bucket(__n); }
-};
-
-#define _STLP_TEMPLATE_HEADER template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>
-#include <stl/_relops_hash_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#define _STLP_TEMPLATE_CONTAINER hash_multimap<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>
-#include <stl/_relops_hash_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-struct __move_traits<hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > :
- _STLP_PRIV __move_traits_help<typename hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht>
-{};
-
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-struct __move_traits<hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > :
- _STLP_PRIV __move_traits_help<typename hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht>
-{};
-# endif
-
-// Specialization of insert_iterator so that it will work for hash_map
-// and hash_multimap.
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-class insert_iterator<hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > {
-protected:
- typedef hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
- _Container* container;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x) : container(&__x) {}
- insert_iterator(_Container& __x, typename _Container::iterator)
- : container(&__x) {}
- insert_iterator<_Container>&
- operator=(const typename _Container::value_type& __val) {
- container->insert(__val);
- return *this;
- }
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-class insert_iterator<hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > {
-protected:
- typedef hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
- _Container* container;
- typename _Container::iterator iter;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x) : container(&__x) {}
- insert_iterator(_Container& __x, typename _Container::iterator)
- : container(&__x) {}
- insert_iterator<_Container>&
- operator=(const typename _Container::value_type& __val) {
- container->insert(__val);
- return *this;
- }
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_HASH_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_hash_set.h b/stlport/stlport/stl/_hash_set.h
deleted file mode 100644
index 29b168b..0000000
--- a/stlport/stlport/stl/_hash_set.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_HASH_SET_H
-#define _STLP_INTERNAL_HASH_SET_H
-
-#ifndef _STLP_INTERNAL_HASHTABLE_H
-# include <stl/_hashtable.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-//Specific iterator traits creation
-_STLP_CREATE_HASH_ITERATOR_TRAITS(HashSetTraitsT, Const_traits)
-
-template <class _Value, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Value>),
- _STLP_DFL_TMPL_PARAM(_EqualKey, equal_to<_Value>),
- _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Value>) >
-class hash_set
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> >
-#endif
-{
- typedef hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Self;
- //Specific iterator traits creation
- typedef _STLP_PRIV _HashSetTraitsT<_Value> _HashSetTraits;
-public:
- typedef hashtable<_Value, _Value, _HashFcn,
- _HashSetTraits, _STLP_PRIV _Identity<_Value>, _EqualKey, _Alloc> _Ht;
-public:
- typedef typename _Ht::key_type key_type;
- typedef typename _Ht::value_type value_type;
- typedef typename _Ht::hasher hasher;
- typedef typename _Ht::key_equal key_equal;
-
- typedef typename _Ht::size_type size_type;
- typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::reference reference;
- typedef typename _Ht::const_reference const_reference;
-
- typedef typename _Ht::iterator iterator;
- typedef typename _Ht::const_iterator const_iterator;
-
- typedef typename _Ht::allocator_type allocator_type;
-
- hasher hash_funct() const { return _M_ht.hash_funct(); }
- key_equal key_eq() const { return _M_ht.key_eq(); }
- allocator_type get_allocator() const { return _M_ht.get_allocator(); }
-
-private:
- _Ht _M_ht;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
- hash_set()
- : _M_ht(0, hasher(), key_equal(), allocator_type()) {}
- explicit hash_set(size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type()) {}
- hash_set(size_type __n, const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type()) {}
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- hash_set(size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
-#else
- hash_set(size_type __n, const hasher& __hf, const key_equal& __eql)
- : _M_ht(__n, __hf, __eql, allocator_type()) {}
- hash_set(size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a)
-#endif
- : _M_ht(__n, __hf, __eql, __a) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- hash_set(__move_source<_Self> src)
- : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {}
-#endif
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- hash_set(_InputIterator __f, _InputIterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- template <class _InputIterator>
- hash_set(_InputIterator __f, _InputIterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- template <class _InputIterator>
- hash_set(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- template <class _InputIterator>
- hash_set(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- hash_set(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : _M_ht(__n, __hf, __eql, allocator_type())
- { _M_ht.insert_unique(__f, __l); }
-# endif
-#else
- hash_set(const value_type* __f, const value_type* __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_set(const value_type* __f, const value_type* __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_set(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_set(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-
- hash_set(const_iterator __f, const_iterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_set(const_iterator __f, const_iterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_set(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_unique(__f, __l); }
- hash_set(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
-public:
- size_type size() const { return _M_ht.size(); }
- size_type max_size() const { return _M_ht.max_size(); }
- bool empty() const { return _M_ht.empty(); }
- void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- iterator begin() { return _M_ht.begin(); }
- iterator end() { return _M_ht.end(); }
- const_iterator begin() const { return _M_ht.begin(); }
- const_iterator end() const { return _M_ht.end(); }
-
-public:
- pair<iterator, bool> insert(const value_type& __obj)
- { return _M_ht.insert_unique(__obj); }
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __f, _InputIterator __l)
-#else
- void insert(const_iterator __f, const_iterator __l)
- {_M_ht.insert_unique(__f, __l); }
- void insert(const value_type* __f, const value_type* __l)
-#endif
- { _M_ht.insert_unique(__f,__l); }
-
- pair<iterator, bool> insert_noresize(const value_type& __obj)
- { return _M_ht.insert_unique_noresize(__obj); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_ht.find(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const { return _M_ht.count(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __key)
- { return _M_ht.equal_range(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __key) const
- { return _M_ht.equal_range(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type erase(const _KT& __key) {return _M_ht.erase(__key); }
- void erase(iterator __it) { _M_ht.erase(__it); }
- void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); }
- void clear() { _M_ht.clear(); }
-
-public:
- void resize(size_type __hint) { _M_ht.resize(__hint); }
- size_type bucket_count() const { return _M_ht.bucket_count(); }
- size_type max_bucket_count() const { return _M_ht.max_bucket_count(); }
- size_type elems_in_bucket(size_type __n) const
- { return _M_ht.elems_in_bucket(__n); }
-};
-
-//Specific iterator traits creation
-_STLP_CREATE_HASH_ITERATOR_TRAITS(HashMultisetTraitsT, Const_traits)
-
-template <class _Value, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Value>),
- _STLP_DFL_TMPL_PARAM(_EqualKey, equal_to<_Value>),
- _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Value>) >
-class hash_multiset
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> >
-#endif
-{
- typedef hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Self;
- //Specific iterator traits creation
- typedef _STLP_PRIV _HashMultisetTraitsT<_Value> _HashMultisetTraits;
-public:
- typedef hashtable<_Value, _Value, _HashFcn,
- _HashMultisetTraits, _STLP_PRIV _Identity<_Value>, _EqualKey, _Alloc> _Ht;
-
- typedef typename _Ht::key_type key_type;
- typedef typename _Ht::value_type value_type;
- typedef typename _Ht::hasher hasher;
- typedef typename _Ht::key_equal key_equal;
-
- typedef typename _Ht::size_type size_type;
- typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::reference reference;
- typedef typename _Ht::const_reference const_reference;
-
- typedef typename _Ht::iterator iterator;
- typedef typename _Ht::const_iterator const_iterator;
-
- typedef typename _Ht::allocator_type allocator_type;
-
- hasher hash_funct() const { return _M_ht.hash_funct(); }
- key_equal key_eq() const { return _M_ht.key_eq(); }
- allocator_type get_allocator() const { return _M_ht.get_allocator(); }
-
-private:
- _Ht _M_ht;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
- hash_multiset()
- : _M_ht(0, hasher(), key_equal(), allocator_type()) {}
- explicit hash_multiset(size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type()) {}
- hash_multiset(size_type __n, const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type()) {}
- hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql)
- : _M_ht(__n, __hf, __eql, allocator_type()) {}
- hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a)
- : _M_ht(__n, __hf, __eql, __a) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- hash_multiset(__move_source<_Self> src)
- : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {}
-#endif
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- hash_multiset(_InputIterator __f, _InputIterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- template <class _InputIterator>
- hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- template <class _InputIterator>
- hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
-
- template <class _InputIterator>
- hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql)
- : _M_ht(__n, __hf, __eql, allocator_type())
- { _M_ht.insert_equal(__f, __l); }
-# endif
-#else
- hash_multiset(const value_type* __f, const value_type* __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multiset(const value_type* __f, const value_type* __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multiset(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multiset(const value_type* __f, const value_type* __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-
- hash_multiset(const_iterator __f, const_iterator __l)
- : _M_ht(0, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multiset(const_iterator __f, const_iterator __l, size_type __n)
- : _M_ht(__n, hasher(), key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multiset(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf)
- : _M_ht(__n, __hf, key_equal(), allocator_type())
- { _M_ht.insert_equal(__f, __l); }
- hash_multiset(const_iterator __f, const_iterator __l, size_type __n,
- const hasher& __hf, const key_equal& __eql,
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
-public:
- size_type size() const { return _M_ht.size(); }
- size_type max_size() const { return _M_ht.max_size(); }
- bool empty() const { return _M_ht.empty(); }
- void swap(_Self& hs) { _M_ht.swap(hs._M_ht); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- iterator begin() { return _M_ht.begin(); }
- iterator end() { return _M_ht.end(); }
- const_iterator begin() const { return _M_ht.begin(); }
- const_iterator end() const { return _M_ht.end(); }
-
-public:
- iterator insert(const value_type& __obj) { return _M_ht.insert_equal(__obj); }
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __f, _InputIterator __l)
- { _M_ht.insert_equal(__f,__l); }
-#else
- void insert(const value_type* __f, const value_type* __l)
- { _M_ht.insert_equal(__f,__l); }
- void insert(const_iterator __f, const_iterator __l)
- { _M_ht.insert_equal(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
- iterator insert_noresize(const value_type& __obj)
- { return _M_ht.insert_equal_noresize(__obj); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const { return _M_ht.count(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __key)
- { return _M_ht.equal_range(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __key) const
- { return _M_ht.equal_range(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type erase(const _KT& __key) {return _M_ht.erase(__key); }
- void erase(iterator __it) { _M_ht.erase(__it); }
- void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); }
- void clear() { _M_ht.clear(); }
-
-public:
- void resize(size_type __hint) { _M_ht.resize(__hint); }
- size_type bucket_count() const { return _M_ht.bucket_count(); }
- size_type max_bucket_count() const { return _M_ht.max_bucket_count(); }
- size_type elems_in_bucket(size_type __n) const
- { return _M_ht.elems_in_bucket(__n); }
-};
-
-#define _STLP_TEMPLATE_HEADER template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER hash_set<_Value,_HashFcn,_EqualKey,_Alloc>
-
-#include <stl/_relops_hash_cont.h>
-
-#undef _STLP_TEMPLATE_CONTAINER
-#define _STLP_TEMPLATE_CONTAINER hash_multiset<_Value,_HashFcn,_EqualKey,_Alloc>
-#include <stl/_relops_hash_cont.h>
-
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-// Specialization of insert_iterator so that it will work for hash_set
-// and hash_multiset.
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-struct __move_traits<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > :
- _STLP_PRIV __move_traits_aux<typename hash_set<_Value, _HashFcn, _EqualKey, _Alloc>::_Ht>
-{};
-
-template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-struct __move_traits<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > :
- _STLP_PRIV __move_traits_aux<typename hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc>::_Ht>
-{};
-# endif
-
-template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-class insert_iterator<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > {
-protected:
- typedef hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Container;
- _Container* container;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x) : container(&__x) {}
- insert_iterator(_Container& __x, typename _Container::iterator)
- : container(&__x) {}
- insert_iterator<_Container>&
- operator=(const typename _Container::value_type& __val) {
- container->insert(__val);
- return *this;
- }
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-
-template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-class insert_iterator<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > {
-protected:
- typedef hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Container;
- _Container* container;
- typename _Container::iterator iter;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x) : container(&__x) {}
- insert_iterator(_Container& __x, typename _Container::iterator)
- : container(&__x) {}
- insert_iterator<_Container>&
- operator=(const typename _Container::value_type& __val) {
- container->insert(__val);
- return *this;
- }
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_HASH_SET_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_hashtable.c b/stlport/stlport/stl/_hashtable.c
deleted file mode 100644
index ddc21bb..0000000
--- a/stlport/stlport/stl/_hashtable.c
+++ /dev/null
@@ -1,553 +0,0 @@
-/*
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_HASHTABLE_C
-#define _STLP_HASHTABLE_C
-
-#ifndef _STLP_INTERNAL_HASHTABLE_H
-# include <stl/_hashtable.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION)
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-# define __PRIME_LIST_BODY { \
- 7ul, 23ul, \
- 53ul, 97ul, 193ul, 389ul, 769ul, \
- 1543ul, 3079ul, 6151ul, 12289ul, 24593ul, \
- 49157ul, 98317ul, 196613ul, 393241ul, 786433ul, \
- 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul, \
- 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,\
- 1610612741ul, 3221225473ul, 4294967291ul \
-}
-
-template <class _Dummy>
-const size_t* _STLP_CALL
-_Stl_prime<_Dummy>::_S_primes(size_t &__size) {
- static const size_t _list[] = __PRIME_LIST_BODY;
-# ifndef __MWERKS__
- __size = sizeof(_list) / sizeof(_list[0]);
-# else
- __size = 30;
-# endif
- return _list;
-}
-
-template <class _Dummy>
-size_t _STLP_CALL
-_Stl_prime<_Dummy>::_S_max_nb_buckets() {
- size_t __size;
- const size_t* __first = _S_primes(__size);
- return *(__first + __size - 1);
-}
-
-template <class _Dummy>
-size_t _STLP_CALL
-_Stl_prime<_Dummy>::_S_next_size(size_t __n) {
- size_t __size;
- const size_t* __first = _S_primes(__size);
- const size_t* __last = __first + __size;
- const size_t* pos = __lower_bound(__first, __last, __n,
- __less((size_t*)0), __less((size_t*)0), (ptrdiff_t*)0);
- return (pos == __last ? *(__last - 1) : *pos);
-}
-
-template <class _Dummy>
-void _STLP_CALL
-_Stl_prime<_Dummy>::_S_prev_sizes(size_t __n, size_t const*&__begin, size_t const*&__pos) {
- size_t __size;
- __begin = _S_primes(__size);
- const size_t* __last = __begin + __size;
- __pos = __lower_bound(__begin, __last, __n,
- __less((size_t*)0), __less((size_t*)0), (ptrdiff_t*)0);
-
- if (__pos== __last)
- --__pos;
- else if (*__pos == __n) {
- if (__pos != __begin)
- --__pos;
- }
-}
-
-# undef __PRIME_LIST_BODY
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#endif
-
-#if defined (_STLP_DEBUG)
-# define hashtable _STLP_NON_DBG_NAME(hashtable)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-// fbp: these defines are for outline methods definitions.
-// needed to definitions to be portable. Should not be used in method bodies.
-
-#if defined ( _STLP_NESTED_TYPE_PARAM_BUG )
-# define __size_type__ size_t
-# define size_type size_t
-# define value_type _Val
-# define key_type _Key
-# define __reference__ _Val&
-
-# define __iterator__ _Ht_iterator<_Val, _STLP_HEADER_TYPENAME _Traits::_NonConstTraits, \
- _Key, _HF, _ExK, _EqK, _All>
-# define __const_iterator__ _Ht_iterator<_Val, _STLP_HEADER_TYPENAME _Traits::_ConstTraits, \
- _Key, _HF, _ExK, _EqK, _All>
-#else
-# define __size_type__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::size_type
-# define __reference__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::reference
-# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::iterator
-# define __const_iterator__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::const_iterator
-#endif
-
-/*
- * This method is too difficult to implement for hashtable that do not
- * require a sorted operation on the stored type.
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-bool hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>::_M_equal(
- const hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>& __ht1,
- const hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>& __ht2) {
- return __ht1._M_buckets == __ht2._M_buckets &&
- __ht1._M_elems == __ht2._M_elems;
-}
-*/
-
-/* Returns the iterator before the first iterator of the bucket __n and set
- * __n to the first previous bucket having the same first iterator as bucket
- * __n.
- */
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-__iterator__
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_before_begin(size_type &__n) const {
- return _S_before_begin(_M_elems, _M_buckets, __n);
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-__iterator__
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_S_before_begin(const _ElemsCont& __elems, const _BucketVector& __buckets,
- size_type &__n) {
- _ElemsCont &__mutable_elems = __CONST_CAST(_ElemsCont&, __elems);
- typename _BucketVector::const_iterator __bpos(__buckets.begin() + __n);
-
- _ElemsIte __pos(*__bpos);
- if (__pos == __mutable_elems.begin()) {
- __n = 0;
- return __mutable_elems.before_begin();
- }
-
- typename _BucketVector::const_iterator __bcur(__bpos);
- _BucketType *__pos_node = __pos._M_node;
- for (--__bcur; __pos_node == *__bcur; --__bcur) ;
-
- __n = __bcur - __buckets.begin() + 1;
- _ElemsIte __cur(*__bcur);
- _ElemsIte __prev = __cur++;
- for (; __cur != __pos; ++__prev, ++__cur) ;
- return __prev;
-}
-
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-__iterator__
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_insert_noresize(size_type __n, const value_type& __obj) {
- //We always insert this element as 1st in the bucket to not break
- //the elements order as equal elements must be kept next to each other.
- size_type __prev = __n;
- _ElemsIte __pos = _M_before_begin(__prev)._M_ite;
-
- fill(_M_buckets.begin() + __prev, _M_buckets.begin() + __n + 1,
- _M_elems.insert_after(__pos, __obj)._M_node);
- ++_M_num_elements;
- return iterator(_ElemsIte(_M_buckets[__n]));
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-pair<__iterator__, bool>
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::insert_unique_noresize(const value_type& __obj) {
- const size_type __n = _M_bkt_num(__obj);
- _ElemsIte __cur(_M_buckets[__n]);
- _ElemsIte __last(_M_buckets[__n + 1]);
-
- if (__cur != __last) {
- for (; __cur != __last; ++__cur) {
- if (_M_equals(_M_get_key(*__cur), _M_get_key(__obj))) {
- //We check that equivalent keys have equals hash code as otherwise, on resize,
- //equivalent value might not be in the same bucket
- _STLP_ASSERT(_M_hash(_M_get_key(*__cur)) == _M_hash(_M_get_key(__obj)))
- return pair<iterator, bool>(iterator(__cur), false);
- }
- }
- /* Here we do not rely on the _M_insert_noresize method as we know
- * that we cannot break element orders, elements are unique, and
- * insertion after the first bucket element is faster than what is
- * done in _M_insert_noresize.
- */
- __cur = _M_elems.insert_after(_ElemsIte(_M_buckets[__n]), __obj);
- ++_M_num_elements;
- return pair<iterator, bool>(iterator(__cur), true);
- }
-
- return pair<iterator, bool>(_M_insert_noresize(__n, __obj), true);
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-__iterator__
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::insert_equal_noresize(const value_type& __obj) {
- const size_type __n = _M_bkt_num(__obj);
- {
- _ElemsIte __cur(_M_buckets[__n]);
- _ElemsIte __last(_M_buckets[__n + 1]);
-
- for (; __cur != __last; ++__cur) {
- if (_M_equals(_M_get_key(*__cur), _M_get_key(__obj))) {
- //We check that equivalent keys have equals hash code as otherwise, on resize,
- //equivalent value might not be in the same bucket
- _STLP_ASSERT(_M_hash(_M_get_key(*__cur)) == _M_hash(_M_get_key(__obj)))
- ++_M_num_elements;
- return _M_elems.insert_after(__cur, __obj);
- }
- }
- }
-
- return _M_insert_noresize(__n, __obj);
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-__reference__
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_insert(const value_type& __obj) {
- _M_enlarge(_M_num_elements + 1);
- return *insert_unique_noresize(__obj).first;
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-__size_type__
-hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::erase(const key_type& __key) {
- const size_type __n = _M_bkt_num_key(__key);
-
- _ElemsIte __cur(_M_buckets[__n]);
- _ElemsIte __last(_M_buckets[__n + 1]);
- if (__cur == __last)
- return 0;
-
- size_type __erased = 0;
- if (_M_equals(_M_get_key(*__cur), __key)) {
- //We look for the pos before __cur:
- size_type __prev_b = __n;
- _ElemsIte __prev = _M_before_begin(__prev_b)._M_ite;
- do {
- __cur = _M_elems.erase_after(__prev);
- ++__erased;
- } while ((__cur != __last) && _M_equals(_M_get_key(*__cur), __key));
- fill(_M_buckets.begin() + __prev_b, _M_buckets.begin() + __n + 1, __cur._M_node);
- }
- else {
- _ElemsIte __prev = __cur++;
- for (; __cur != __last; ++__prev, ++__cur) {
- if (_M_equals(_M_get_key(*__cur), __key)) {
- do {
- __cur = _M_elems.erase_after(__prev);
- ++__erased;
- } while ((__cur != __last) && _M_equals(_M_get_key(*__cur), __key));
- break;
- }
- }
- }
-
- _M_num_elements -= __erased;
- _M_reduce();
- return __erased;
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::erase(const_iterator __it) {
- const size_type __n = _M_bkt_num(*__it);
- _ElemsIte __cur(_M_buckets[__n]);
-
- size_type __erased = 0;
- if (__cur == __it._M_ite) {
- size_type __prev_b = __n;
- _ElemsIte __prev = _M_before_begin(__prev_b)._M_ite;
- fill(_M_buckets.begin() + __prev_b, _M_buckets.begin() + __n + 1,
- _M_elems.erase_after(__prev)._M_node);
- ++__erased;
- }
- else {
- _ElemsIte __prev = __cur++;
- _ElemsIte __last(_M_buckets[__n + 1]);
- for (; __cur != __last; ++__prev, ++__cur) {
- if (__cur == __it._M_ite) {
- _M_elems.erase_after(__prev);
- ++__erased;
- break;
- }
- }
- }
-
- _M_num_elements -= __erased;
- _M_reduce();
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::erase(const_iterator __first, const_iterator __last) {
- if (__first == __last)
- return;
- size_type __f_bucket = _M_bkt_num(*__first);
- size_type __l_bucket = __last != end() ? _M_bkt_num(*__last) : (_M_buckets.size() - 1);
-
- _ElemsIte __cur(_M_buckets[__f_bucket]);
- _ElemsIte __prev;
- if (__cur == __first._M_ite) {
- __prev = _M_before_begin(__f_bucket)._M_ite;
- }
- else {
- _ElemsIte __last(_M_buckets[++__f_bucket]);
- __prev = __cur++;
- for (; (__cur != __last) && (__cur != __first._M_ite); ++__prev, ++__cur) ;
- }
- size_type __erased = 0;
- //We do not use the slist::erase_after method taking a range to count the
- //number of erased elements:
- while (__cur != __last._M_ite) {
- __cur = _M_elems.erase_after(__prev);
- ++__erased;
- }
- fill(_M_buckets.begin() + __f_bucket, _M_buckets.begin() + __l_bucket + 1, __cur._M_node);
- _M_num_elements -= __erased;
- _M_reduce();
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::rehash(size_type __num_buckets_hint) {
- if (bucket_count() >= __num_buckets_hint) {
- // We are trying to reduce number of buckets, we have to validate it:
- size_type __limit_num_buckets = (size_type)((float)size() / max_load_factor());
- if (__num_buckets_hint < __limit_num_buckets) {
- // Targetted number of buckets __num_buckets_hint would break
- // load_factor() <= max_load_factor() rule.
- return;
- }
- }
-
- _M_rehash(__num_buckets_hint);
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_enlarge(size_type __to_size) {
- size_type __num_buckets = bucket_count();
- size_type __num_buckets_hint = (size_type)((float)__to_size / max_load_factor());
- if (__num_buckets_hint <= __num_buckets) {
- return;
- }
- __num_buckets = _STLP_PRIV _Stl_prime_type::_S_next_size(__num_buckets_hint);
-
- _M_rehash(__num_buckets);
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_reduce() {
- size_type __num_buckets = bucket_count();
- // We only try to reduce the hashtable if the theorical load factor
- // is lower than a fraction of the max load factor:
- // 4 factor is coming from the fact that prime number list is almost a
- // geometrical suite with reason 2, as we try to jump 2 levels is means
- // a 4 factor.
- if ((float)size() / (float)__num_buckets > max_load_factor() / 4.0f)
- return;
-
- const size_type *__first;
- const size_type *__prev;
- _STLP_PRIV _Stl_prime_type::_S_prev_sizes(__num_buckets, __first, __prev);
-
- /* We are only going to reduce number of buckets if moving to yet the previous number
- * of buckets in the prime numbers would respect the load rule. Otherwise algorithm
- * successively removing and adding an element would each time perform an expensive
- * rehash operation. */
- const size_type *__prev_prev = __prev;
- if (__prev_prev != __first) {
- --__prev_prev;
- if ((float)size() / (float)*__prev_prev > max_load_factor())
- return;
- }
- else {
- if (*__prev >= __num_buckets)
- return;
- }
-
- // Can we reduce further:
- while (__prev_prev != __first) {
- --__prev_prev;
- if ((float)size() / (float)*__prev_prev > max_load_factor())
- // We cannot reduce further.
- break;
- --__prev;
- }
-
- _M_rehash(*__prev);
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_resize() {
- if (load_factor() > max_load_factor()) {
- // We have to enlarge
- _M_enlarge(size());
- }
- else {
- // We can try to reduce size:
- _M_reduce();
- }
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_rehash(size_type __num_buckets) {
-#if defined (_STLP_DEBUG)
- _M_check();
-#endif
- _ElemsCont __tmp_elems(_M_elems.get_allocator());
- _BucketVector __tmp(__num_buckets + 1, __STATIC_CAST(_BucketType*, 0), _M_buckets.get_allocator());
- _ElemsIte __cur, __last(_M_elems.end());
- while (!_M_elems.empty()) {
- __cur = _M_elems.begin();
- size_type __new_bucket = _M_bkt_num(*__cur, __num_buckets);
- _ElemsIte __ite(__cur), __before_ite(__cur);
- for (++__ite;
- __ite != __last && _M_equals(_M_get_key(*__cur), _M_get_key(*__ite));
- ++__ite, ++__before_ite) ;
- size_type __prev_bucket = __new_bucket;
- _ElemsIte __prev = _S_before_begin(__tmp_elems, __tmp, __prev_bucket)._M_ite;
- __tmp_elems.splice_after(__prev, _M_elems, _M_elems.before_begin(), __before_ite);
- fill(__tmp.begin() + __prev_bucket, __tmp.begin() + __new_bucket + 1, __cur._M_node);
- }
- _M_elems.swap(__tmp_elems);
- _M_buckets.swap(__tmp);
-}
-
-#if defined (_STLP_DEBUG)
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>::_M_check() const {
- //We check that hash code of stored keys haven't change and also that equivalent
- //relation hasn't been modified
- size_t __num_buckets = bucket_count();
- for (size_t __b = 0; __b < __num_buckets; ++__b) {
- _ElemsIte __cur(_M_buckets[__b]), __last(_M_buckets[__b + 1]);
- _ElemsIte __fst(__cur), __snd(__cur);
- for (; __cur != __last; ++__cur) {
- _STLP_ASSERT( _M_bkt_num(*__cur, __num_buckets) == __b )
- _STLP_ASSERT( !_M_equals(_M_get_key(*__fst), _M_get_key(*__cur)) || _M_equals(_M_get_key(*__snd), _M_get_key(*__cur)) )
- if (__fst != __snd)
- ++__fst;
- if (__snd != __cur)
- ++__snd;
- }
- }
-}
-#endif
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>::clear() {
- _M_elems.clear();
- _M_buckets.assign(_M_buckets.size(), __STATIC_CAST(_BucketType*, 0));
- _M_num_elements = 0;
-}
-
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
- ::_M_copy_from(const hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>& __ht) {
- _M_elems.clear();
- _M_elems.insert(_M_elems.end(), __ht._M_elems.begin(), __ht._M_elems.end());
- _M_buckets.resize(__ht._M_buckets.size());
- _ElemsConstIte __src(__ht._M_elems.begin()), __src_end(__ht._M_elems.end());
- _ElemsIte __dst(_M_elems.begin());
- typename _BucketVector::const_iterator __src_b(__ht._M_buckets.begin()),
- __src_end_b(__ht._M_buckets.end());
- typename _BucketVector::iterator __dst_b(_M_buckets.begin()), __dst_end_b(_M_buckets.end());
- for (; __src != __src_end; ++__src, ++__dst) {
- for (; __src_b != __src_end_b; ++__src_b, ++__dst_b) {
- if (*__src_b == __src._M_node) {
- *__dst_b = __dst._M_node;
- }
- else
- break;
- }
- }
- fill(__dst_b, __dst_end_b, __STATIC_CAST(_BucketType*, 0));
- _M_num_elements = __ht._M_num_elements;
- _M_max_load_factor = __ht._M_max_load_factor;
-}
-
-#undef __iterator__
-#undef const_iterator
-#undef __size_type__
-#undef __reference__
-#undef size_type
-#undef value_type
-#undef key_type
-#undef __stl_num_primes
-
-#if defined (_STLP_DEBUG)
-# undef hashtable
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_HASHTABLE_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_hashtable.h b/stlport/stlport/stl/_hashtable.h
deleted file mode 100644
index 0d2bda6..0000000
--- a/stlport/stlport/stl/_hashtable.h
+++ /dev/null
@@ -1,658 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_HASHTABLE_H
-#define _STLP_INTERNAL_HASHTABLE_H
-
-#ifndef _STLP_INTERNAL_VECTOR_H
-# include <stl/_vector.h>
-#endif
-
-#ifndef _STLP_INTERNAL_SLIST_H
-# include <stl/_slist.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_HASH_FUN_H
-# include <stl/_hash_fun.h>
-#endif
-
-/*
- * Hashtable class, used to implement the hashed associative containers
- * hash_set, hash_map, hash_multiset, hash_multimap,
- * unordered_set, unordered_map, unordered_multiset, unordered_multimap.
- */
-
-_STLP_BEGIN_NAMESPACE
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-//Export of the classes used to represent buckets in the hashtable implementation.
-# if !defined (_STLP_USE_PTR_SPECIALIZATIONS)
-//If pointer specialization is enabled vector<_Slist_node_base*> will use the void*
-//storage type for which internal classes have already been exported.
-_STLP_EXPORT_TEMPLATE_CLASS allocator<_STLP_PRIV _Slist_node_base*>;
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<_Slist_node_base**, _Slist_node_base*,
- allocator<_Slist_node_base*> >;
-_STLP_EXPORT_TEMPLATE_CLASS _Vector_base<_Slist_node_base*,
- allocator<_Slist_node_base*> >;
-_STLP_MOVE_TO_STD_NAMESPACE
-# endif
-
-# if defined (_STLP_DEBUG)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-# define _STLP_NON_DBG_VECTOR _STLP_NON_DBG_NAME(vector)
-_STLP_EXPORT_TEMPLATE_CLASS __construct_checker<_STLP_NON_DBG_VECTOR<_Slist_node_base*, allocator<_Slist_node_base*> > >;
-_STLP_EXPORT_TEMPLATE_CLASS _STLP_NON_DBG_VECTOR<_Slist_node_base*, allocator<_Slist_node_base*> >;
-# undef _STLP_NON_DBG_VECTOR
-_STLP_MOVE_TO_STD_NAMESPACE
-# endif
-
-_STLP_EXPORT_TEMPLATE_CLASS vector<_STLP_PRIV _Slist_node_base*,
- allocator<_STLP_PRIV _Slist_node_base*> >;
-#endif
-
-#if defined (_STLP_DEBUG)
-# define hashtable _STLP_NON_DBG_NAME(hashtable)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-// some compilers require the names of template parameters to be the same
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-class hashtable;
-
-#if !defined (_STLP_DEBUG)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-template <class _BaseIte, class _Traits>
-struct _Ht_iterator {
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
-
- typedef _Ht_iterator<_BaseIte,_Traits> _Self;
-
- typedef typename _Traits::value_type value_type;
- typedef typename _Traits::pointer pointer;
- typedef typename _Traits::reference reference;
- typedef forward_iterator_tag iterator_category;
- typedef ptrdiff_t difference_type;
- typedef size_t size_type;
-
- typedef _Ht_iterator<_BaseIte, _NonConstTraits> iterator;
- typedef _Ht_iterator<_BaseIte, _ConstTraits> const_iterator;
-
- _Ht_iterator() {}
- //copy constructor for iterator and constructor from iterator for const_iterator
- _Ht_iterator(const iterator& __it) : _M_ite(__it._M_ite) {}
- _Ht_iterator(_BaseIte __it) : _M_ite(__it) {}
-
- reference operator*() const {
- return *_M_ite;
- }
- _STLP_DEFINE_ARROW_OPERATOR
-
- _Self& operator++() {
- ++_M_ite;
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- ++*this;
- return __tmp;
- }
-
- bool operator == (const_iterator __rhs) const {
- return _M_ite == __rhs._M_ite;
- }
- bool operator != (const_iterator __rhs) const {
- return _M_ite != __rhs._M_ite;
- }
-
- _BaseIte _M_ite;
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _BaseIte, class _Traits>
-struct __type_traits<_STLP_PRIV _Ht_iterator<_BaseIte, _Traits> > {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-template <class _BaseIte, class _Traits>
-inline
-# if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-_STLP_TYPENAME_ON_RETURN_TYPE _Traits::value_type *
-# else
-_STLP_TYPENAME_ON_RETURN_TYPE _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>::value_type *
-# endif
-value_type(const _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>&) {
- typedef _STLP_TYPENAME _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>::value_type _Val;
- return (_Val*) 0;
-}
-template <class _BaseIte, class _Traits>
-inline forward_iterator_tag iterator_category(const _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>&)
-{ return forward_iterator_tag(); }
-template <class _BaseIte, class _Traits>
-inline ptrdiff_t* distance_type(const _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>&)
-{ return (ptrdiff_t*) 0; }
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Dummy>
-class _Stl_prime {
- // Returns begining of primes list and size by reference.
- static const size_t* _S_primes(size_t&);
-public:
- //Returns the maximum number of buckets handled by the hashtable implementation
- static size_t _STLP_CALL _S_max_nb_buckets();
-
- //Returns the bucket size next to a required size
- static size_t _STLP_CALL _S_next_size(size_t);
-
- // Returns the bucket range containing sorted list of prime numbers <= __hint.
- static void _STLP_CALL _S_prev_sizes(size_t __hint, const size_t *&__begin, const size_t *&__end);
-};
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _Stl_prime<bool>;
-#endif
-
-typedef _Stl_prime<bool> _Stl_prime_type;
-
-#if !defined (_STLP_DEBUG)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-/*
- * Hashtables handle allocators a bit differently than other containers
- * do. If we're using standard-conforming allocators, then a hashtable
- * unconditionally has a member variable to hold its allocator, even if
- * it so happens that all instances of the allocator type are identical.
- * This is because, for hashtables, this extra storage is negligible.
- * Additionally, a base class wouldn't serve any other purposes; it
- * wouldn't, for example, simplify the exception-handling code.
- */
-template <class _Val, class _Key, class _HF,
- class _Traits, class _ExK, class _EqK, class _All>
-class hashtable {
- typedef hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All> _Self;
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef typename _Traits::_NonConstLocalTraits _NonConstLocalTraits;
- typedef typename _Traits::_ConstLocalTraits _ConstLocalTraits;
-
-public:
- typedef _Key key_type;
- typedef _Val value_type;
- typedef _HF hasher;
- typedef _EqK key_equal;
-
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef typename _NonConstTraits::pointer pointer;
- typedef const value_type* const_pointer;
- typedef typename _NonConstTraits::reference reference;
- typedef const value_type& const_reference;
- typedef forward_iterator_tag _Iterator_category;
-
- hasher hash_funct() const { return _M_hash; }
- key_equal key_eq() const { return _M_equals; }
-
-private:
- _STLP_FORCE_ALLOCATORS(_Val, _All)
-#if defined (_STLP_DEBUG)
- typedef _STLP_PRIV _STLP_NON_DBG_NAME(slist)<value_type, _All> _ElemsCont;
-#else
- typedef slist<value_type, _All> _ElemsCont;
-#endif
- typedef typename _ElemsCont::iterator _ElemsIte;
- typedef typename _ElemsCont::const_iterator _ElemsConstIte;
- typedef _STLP_PRIV _Slist_node_base _BucketType;
- typedef typename _Alloc_traits<_BucketType*, _All>::allocator_type _BucketAllocType;
- /*
- * We are going to use vector of _Slist_node_base pointers for 2 reasons:
- * - limit code bloat, all hashtable instanciation use the same buckets representation.
- * - avoid _STLP_DEBUG performance trouble: with a vector of iterator on slist the resize
- * method would be too slow because the slist::splice_after method become linear on
- * the number of iterators in the buckets rather than constant in time as the iterator
- * has to be move from a slist to the other.
- */
-#if defined (_STLP_DEBUG)
- typedef _STLP_PRIV _STLP_NON_DBG_NAME(vector)<_BucketType*, _BucketAllocType> _BucketVector;
-#else
- typedef vector<_BucketType*, _BucketAllocType> _BucketVector;
-#endif
-
- hasher _M_hash;
- key_equal _M_equals;
- _ElemsCont _M_elems;
- _BucketVector _M_buckets;
- size_type _M_num_elements;
- float _M_max_load_factor;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
- static const key_type& _M_get_key(const value_type& __val) {
- _ExK k;
- return k(__val);
- }
-public:
- typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _NonConstTraits> iterator;
- typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _ConstTraits> const_iterator;
- //TODO: Avoids this debug check and make the local_iterator different from
- //iterator in debug mode too.
-#if !defined (_STLP_DEBUG)
- typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _NonConstLocalTraits> local_iterator;
- typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _ConstLocalTraits> const_local_iterator;
-#else
- typedef iterator local_iterator;
- typedef const_iterator const_local_iterator;
-#endif
-
- typedef _All allocator_type;
- allocator_type get_allocator() const { return _M_elems.get_allocator(); }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- hashtable(size_type __n,
- const _HF& __hf,
- const _EqK& __eql,
- const allocator_type& __a = allocator_type())
-#else
- hashtable(size_type __n,
- const _HF& __hf,
- const _EqK& __eql)
- : _M_hash(__hf),
- _M_equals(__eql),
- _M_elems(allocator_type()),
- _M_buckets(_STLP_CONVERT_ALLOCATOR(__a, _BucketType*)),
- _M_num_elements(0),
- _M_max_load_factor(1.0f)
- { _M_initialize_buckets(__n); }
-
- hashtable(size_type __n,
- const _HF& __hf,
- const _EqK& __eql,
- const allocator_type& __a)
-#endif
- : _M_hash(__hf),
- _M_equals(__eql),
- _M_elems(__a),
- _M_buckets(_STLP_CONVERT_ALLOCATOR(__a, _BucketType*)),
- _M_num_elements(0),
- _M_max_load_factor(1.0f)
- { _M_initialize_buckets(__n); }
-
- hashtable(const _Self& __ht)
- : _M_hash(__ht._M_hash),
- _M_equals(__ht._M_equals),
- _M_elems(__ht.get_allocator()),
- _M_buckets(_STLP_CONVERT_ALLOCATOR(__ht.get_allocator(), _BucketType*)),
- _M_num_elements(0),
- _M_max_load_factor(1.0f)
- { _M_copy_from(__ht); }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- hashtable(__move_source<_Self> src)
- : _M_hash(_STLP_PRIV _AsMoveSource(src.get()._M_hash)),
- _M_equals(_STLP_PRIV _AsMoveSource(src.get()._M_equals)),
- _M_elems(__move_source<_ElemsCont>(src.get()._M_elems)),
- _M_buckets(__move_source<_BucketVector>(src.get()._M_buckets)),
- _M_num_elements(src.get()._M_num_elements),
- _M_max_load_factor(src.get()._M_max_load_factor) {}
-#endif
-
- _Self& operator= (const _Self& __ht) {
- if (&__ht != this) {
- clear();
- _M_hash = __ht._M_hash;
- _M_equals = __ht._M_equals;
- _M_copy_from(__ht);
- }
- return *this;
- }
-
- ~hashtable() { clear(); }
-
- size_type size() const { return _M_num_elements; }
- size_type max_size() const { return size_type(-1); }
- bool empty() const { return size() == 0; }
-
- void swap(_Self& __ht) {
- _STLP_STD::swap(_M_hash, __ht._M_hash);
- _STLP_STD::swap(_M_equals, __ht._M_equals);
- _M_elems.swap(__ht._M_elems);
- _M_buckets.swap(__ht._M_buckets);
- _STLP_STD::swap(_M_num_elements, __ht._M_num_elements);
- _STLP_STD::swap(_M_max_load_factor, __ht._M_max_load_factor);
- }
-
- iterator begin() { return _M_elems.begin(); }
- iterator end() { return _M_elems.end(); }
- local_iterator begin(size_type __n) { return _ElemsIte(_M_buckets[__n]); }
- local_iterator end(size_type __n) { return _ElemsIte(_M_buckets[__n + 1]); }
-
- const_iterator begin() const { return __CONST_CAST(_ElemsCont&, _M_elems).begin(); }
- const_iterator end() const { return __CONST_CAST(_ElemsCont&, _M_elems).end(); }
- const_local_iterator begin(size_type __n) const { return _ElemsIte(_M_buckets[__n]); }
- const_local_iterator end(size_type __n) const { return _ElemsIte(_M_buckets[__n + 1]); }
-
- //static bool _STLP_CALL _M_equal (const _Self&, const _Self&);
-
-public:
- //The number of buckets is size() - 1 because the last bucket always contains
- //_M_elems.end() to make algo easier to implement.
- size_type bucket_count() const { return _M_buckets.size() - 1; }
- size_type max_bucket_count() const { return _STLP_PRIV _Stl_prime_type::_S_max_nb_buckets(); }
- size_type elems_in_bucket(size_type __bucket) const
- { return _STLP_STD::distance(_ElemsIte(_M_buckets[__bucket]), _ElemsIte(_M_buckets[__bucket + 1])); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type bucket(const _KT& __k) const { return _M_bkt_num_key(__k); }
-
- // hash policy
- float load_factor() const { return (float)size() / (float)bucket_count(); }
- float max_load_factor() const { return _M_max_load_factor; }
- void max_load_factor(float __z) {
- _M_max_load_factor = __z;
- _M_resize();
- }
-
- pair<iterator, bool> insert_unique(const value_type& __obj) {
- _M_enlarge(_M_num_elements + 1);
- return insert_unique_noresize(__obj);
- }
-
- iterator insert_equal(const value_type& __obj) {
- _M_enlarge(_M_num_elements + 1);
- return insert_equal_noresize(__obj);
- }
-
-protected:
- iterator _M_insert_noresize(size_type __n, const value_type& __obj);
-public:
- pair<iterator, bool> insert_unique_noresize(const value_type& __obj);
- iterator insert_equal_noresize(const value_type& __obj);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert_unique(_InputIterator __f, _InputIterator __l)
- { insert_unique(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIterator)); }
-
- template <class _InputIterator>
- void insert_equal(_InputIterator __f, _InputIterator __l)
- { insert_equal(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIterator)); }
-
- template <class _InputIterator>
- void insert_unique(_InputIterator __f, _InputIterator __l,
- const input_iterator_tag &) {
- for ( ; __f != __l; ++__f)
- insert_unique(*__f);
- }
-
- template <class _InputIterator>
- void insert_equal(_InputIterator __f, _InputIterator __l,
- const input_iterator_tag &) {
- for ( ; __f != __l; ++__f)
- insert_equal(*__f);
- }
-
- template <class _ForwardIterator>
- void insert_unique(_ForwardIterator __f, _ForwardIterator __l,
- const forward_iterator_tag &) {
- size_type __n = _STLP_STD::distance(__f, __l);
- _M_enlarge(_M_num_elements + __n);
- for ( ; __n > 0; --__n, ++__f)
- insert_unique_noresize(*__f);
- }
-
- template <class _ForwardIterator>
- void insert_equal(_ForwardIterator __f, _ForwardIterator __l,
- const forward_iterator_tag &) {
- size_type __n = _STLP_STD::distance(__f, __l);
- _M_enlarge(_M_num_elements + __n);
- for ( ; __n > 0; --__n, ++__f)
- insert_equal_noresize(*__f);
- }
-
-#else /* _STLP_MEMBER_TEMPLATES */
- void insert_unique(const value_type* __f, const value_type* __l) {
- size_type __n = __l - __f;
- _M_enlarge(_M_num_elements + __n);
- for ( ; __n > 0; --__n, ++__f)
- insert_unique_noresize(*__f);
- }
-
- void insert_equal(const value_type* __f, const value_type* __l) {
- size_type __n = __l - __f;
- _M_enlarge(_M_num_elements + __n);
- for ( ; __n > 0; --__n, ++__f)
- insert_equal_noresize(*__f);
- }
-
- void insert_unique(const_iterator __f, const_iterator __l) {
- size_type __n = _STLP_STD::distance(__f, __l);
- _M_enlarge(_M_num_elements + __n);
- for ( ; __n > 0; --__n, ++__f)
- insert_unique_noresize(*__f);
- }
-
- void insert_equal(const_iterator __f, const_iterator __l) {
- size_type __n = _STLP_STD::distance(__f, __l);
- _M_enlarge(_M_num_elements + __n);
- for ( ; __n > 0; --__n, ++__f)
- insert_equal_noresize(*__f);
- }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
- //reference find_or_insert(const value_type& __obj);
-
-private:
- _STLP_TEMPLATE_FOR_CONT_EXT
- _ElemsIte _M_find(const _KT& __key) const {
- size_type __n = _M_bkt_num_key(__key);
- _ElemsIte __first(_M_buckets[__n]);
- _ElemsIte __last(_M_buckets[__n + 1]);
- for ( ; (__first != __last) && !_M_equals(_M_get_key(*__first), __key); ++__first) ;
- if (__first != __last)
- return __first;
- else
- return __CONST_CAST(_ElemsCont&, _M_elems).end();
- }
-
-public:
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_find(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const {
- const size_type __n = _M_bkt_num_key(__key);
-
- _ElemsIte __cur(_M_buckets[__n]);
- _ElemsIte __last(_M_buckets[__n + 1]);
- for (; __cur != __last; ++__cur) {
- if (_M_equals(_M_get_key(*__cur), __key)) {
- size_type __result = 1;
- for (++__cur;
- __cur != __last && _M_equals(_M_get_key(*__cur), __key);
- ++__result, ++__cur) ;
- return __result;
- }
- }
- return 0;
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __key) {
- typedef pair<iterator, iterator> _Pii;
- const size_type __n = _M_bkt_num_key(__key);
-
- for (_ElemsIte __first(_M_buckets[__n]), __last(_M_buckets[__n + 1]);
- __first != __last; ++__first) {
- if (_M_equals(_M_get_key(*__first), __key)) {
- _ElemsIte __cur(__first);
- for (++__cur; (__cur != __last) && _M_equals(_M_get_key(*__cur), __key); ++__cur) ;
- return _Pii(__first, __cur);
- }
- }
- return _Pii(end(), end());
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __key) const {
- typedef pair<const_iterator, const_iterator> _Pii;
- const size_type __n = _M_bkt_num_key(__key);
-
- for (_ElemsIte __first(_M_buckets[__n]), __last(_M_buckets[__n + 1]);
- __first != __last; ++__first) {
- if (_M_equals(_M_get_key(*__first), __key)) {
- _ElemsIte __cur(__first);
- for (++__cur; (__cur != __last) && _M_equals(_M_get_key(*__cur), __key); ++__cur) ;
- return _Pii(__first, __cur);
- }
- }
- return _Pii(end(), end());
- }
-
- size_type erase(const key_type& __key);
- void erase(const_iterator __it);
- void erase(const_iterator __first, const_iterator __last);
-
-private:
- void _M_enlarge(size_type __n);
- void _M_reduce();
- void _M_resize();
- void _M_rehash(size_type __num_buckets);
-#if defined (_STLP_DEBUG)
- void _M_check() const;
-#endif
-
-public:
- void rehash(size_type __num_buckets_hint);
- void resize(size_type __num_buckets_hint)
- { rehash(__num_buckets_hint); }
- void clear();
-
- // this is for hash_map::operator[]
- reference _M_insert(const value_type& __obj);
-
-private:
- //__n is set to the first bucket that has to be modified if any
- //erase/insert operation is done after the returned iterator.
- iterator _M_before_begin(size_type &__n) const;
-
- static iterator _S_before_begin(const _ElemsCont& __elems, const _BucketVector& __buckets,
- size_type &__n);
-
- void _M_initialize_buckets(size_type __n) {
- const size_type __n_buckets = _STLP_PRIV _Stl_prime_type::_S_next_size(__n) + 1;
- _M_buckets.reserve(__n_buckets);
- _M_buckets.assign(__n_buckets, __STATIC_CAST(_BucketType*, 0));
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type _M_bkt_num_key(const _KT& __key) const
- { return _M_bkt_num_key(__key, bucket_count()); }
-
- size_type _M_bkt_num(const value_type& __obj) const
- { return _M_bkt_num_key(_M_get_key(__obj)); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type _M_bkt_num_key(const _KT& __key, size_type __n) const
- { return _M_hash(__key) % __n; }
-
- size_type _M_bkt_num(const value_type& __obj, size_t __n) const
- { return _M_bkt_num_key(_M_get_key(__obj), __n); }
-
- void _M_copy_from(const _Self& __ht);
-};
-
-#if defined (_STLP_DEBUG)
-# undef hashtable
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_hashtable.c>
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_hashtable.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#define _STLP_TEMPLATE_HEADER template <class _Val, class _Key, class _HF, class _Traits, class _ExK, class _EqK, class _All>
-#define _STLP_TEMPLATE_CONTAINER hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
-#include <stl/_relops_hash_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Val, class _Key, class _HF, class _Traits, class _ExK, class _EqK, class _All>
-struct __move_traits<hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All> > {
- //Hashtables are movable:
- typedef __true_type implemented;
-
- //Completeness depends on many template parameters, for the moment we consider it not complete:
- typedef __false_type complete;
-};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_HASHTABLE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_heap.c b/stlport/stlport/stl/_heap.c
deleted file mode 100644
index a4ab049..0000000
--- a/stlport/stlport/stl/_heap.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_HEAP_C
-#define _STLP_HEAP_C
-
-#ifndef _STLP_INTERNAL_HEAP_H
-# include <stl/_heap.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _RandomAccessIterator, class _Distance, class _Tp>
-_STLP_INLINE_LOOP
-void
-__push_heap(_RandomAccessIterator __first,
- _Distance __holeIndex, _Distance __topIndex, _Tp __val)
-{
- _Distance __parent = (__holeIndex - 1) / 2;
- while (__holeIndex > __topIndex && *(__first + __parent) < __val) {
- *(__first + __holeIndex) = *(__first + __parent);
- __holeIndex = __parent;
- __parent = (__holeIndex - 1) / 2;
- }
- *(__first + __holeIndex) = __val;
-}
-
-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>
-void
-push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
-{
- __push_heap_aux(__first, __last,
- _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator), _STLP_VALUE_TYPE(__first, _RandomAccessIterator));
-}
-
-
-template <class _RandomAccessIterator, class _Distance, class _Tp,
- class _Compare>
-_STLP_INLINE_LOOP
-void
-__push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
- _Distance __topIndex, _Tp __val, _Compare __comp)
-{
- _Distance __parent = (__holeIndex - 1) / 2;
- while (__holeIndex > __topIndex && __comp(*(__first + __parent), __val)) {
- _STLP_VERBOSE_ASSERT(!__comp(__val, *(__first + __parent)), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- *(__first + __holeIndex) = *(__first + __parent);
- __holeIndex = __parent;
- __parent = (__holeIndex - 1) / 2;
- }
- *(__first + __holeIndex) = __val;
-}
-
-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>
-void
-push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
- _Compare __comp)
-{
- __push_heap_aux(__first, __last, __comp,
- _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator), _STLP_VALUE_TYPE(__first, _RandomAccessIterator));
-}
-
-template <class _RandomAccessIterator, class _Distance, class _Tp>
-void
-__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
- _Distance __len, _Tp __val) {
- _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, __val);
-}
-
-
-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)), _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator));
-}
-
-template <class _RandomAccessIterator>
-void pop_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last) {
- __pop_heap_aux(__first, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIterator));
-}
-
-template <class _RandomAccessIterator, class _Distance,
- class _Tp, class _Compare>
-void
-__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
- _Distance __len, _Tp __val, _Compare __comp)
-{
- _Distance __topIndex = __holeIndex;
- _Distance __secondChild = 2 * __holeIndex + 2;
- while (__secondChild < __len) {
- if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) {
- _STLP_VERBOSE_ASSERT(!__comp(*(__first + (__secondChild - 1)), *(__first + __secondChild)),
- _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __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, __val, __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,
- _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator));
-}
-
-
-template <class _RandomAccessIterator, class _Compare>
-void
-pop_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last, _Compare __comp)
-{
- __pop_heap_aux(__first, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIterator), __comp);
-}
-
-template <class _RandomAccessIterator, class _Tp, class _Distance>
-_STLP_INLINE_LOOP
-void
-__make_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last, _Tp*, _Distance*)
-{
- if (__last - __first < 2) return;
- _Distance __len = __last - __first;
- _Distance __parent = (__len - 2)/2;
-
- for (;;) {
- __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent)));
- if (__parent == 0) return;
- __parent--;
- }
-}
-
-template <class _RandomAccessIterator>
-void
-make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
-{
- __make_heap(__first, __last,
- _STLP_VALUE_TYPE(__first, _RandomAccessIterator), _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator));
-}
-
-template <class _RandomAccessIterator, class _Compare,
- class _Tp, class _Distance>
-_STLP_INLINE_LOOP
-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;
-
- for (;;) {
- __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent)),
- __comp);
- if (__parent == 0) return;
- __parent--;
- }
-}
-
-template <class _RandomAccessIterator, class _Compare>
-void
-make_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last, _Compare __comp)
-{
- __make_heap(__first, __last, __comp,
- _STLP_VALUE_TYPE(__first, _RandomAccessIterator), _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator));
-}
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_HEAP_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_heap.h b/stlport/stlport/stl/_heap.h
deleted file mode 100644
index 016dc49..0000000
--- a/stlport/stlport/stl/_heap.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Hewlett-Packard Company makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_HEAP_H
-#define _STLP_INTERNAL_HEAP_H
-
-_STLP_BEGIN_NAMESPACE
-
-// Heap-manipulation functions: push_heap, pop_heap, make_heap, sort_heap.
-
-template <class _RandomAccessIterator>
-void
-push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last);
-
-
-template <class _RandomAccessIterator, class _Compare>
-void
-push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
- _Compare __comp);
-
-template <class _RandomAccessIterator, class _Distance, class _Tp>
-void
-__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
- _Distance __len, _Tp __val);
-
-template <class _RandomAccessIterator, class _Tp, class _Distance>
-inline void
-__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
- _RandomAccessIterator __result, _Tp __val, _Distance*)
-{
- *__result = *__first;
- __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __val);
-}
-
-template <class _RandomAccessIterator>
-void pop_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last);
-
-template <class _RandomAccessIterator, class _Distance,
- class _Tp, class _Compare>
-void
-__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
- _Distance __len, _Tp __val, _Compare __comp);
-
-template <class _RandomAccessIterator, class _Tp, class _Compare,
- class _Distance>
-inline void
-__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
- _RandomAccessIterator __result, _Tp __val, _Compare __comp,
- _Distance*)
-{
- *__result = *__first;
- __adjust_heap(__first, _Distance(0), _Distance(__last - __first),
- __val, __comp);
-}
-
-template <class _RandomAccessIterator, class _Compare>
-void
-pop_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last, _Compare __comp);
-
-template <class _RandomAccessIterator>
-void
-make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last);
-
-template <class _RandomAccessIterator, class _Compare>
-void
-make_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last, _Compare __comp);
-
-template <class _RandomAccessIterator>
-_STLP_INLINE_LOOP
-void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
-{
- while (__last - __first > 1)
- pop_heap(__first, __last--);
-}
-
-template <class _RandomAccessIterator, class _Compare>
-_STLP_INLINE_LOOP
-void
-sort_heap(_RandomAccessIterator __first,
- _RandomAccessIterator __last, _Compare __comp)
-{
- while (__last - __first > 1)
- pop_heap(__first, __last--, __comp);
-}
-
-_STLP_END_NAMESPACE
-
-# if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_heap.c>
-# endif
-
-#endif /* _STLP_INTERNAL_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_iosfwd.h b/stlport/stlport/stl/_iosfwd.h
deleted file mode 100644
index e31db31..0000000
--- a/stlport/stlport/stl/_iosfwd.h
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef _STLP_INTERNAL_IOSFWD
-#define _STLP_INTERNAL_IOSFWD
-
-#if defined (__sgi) && !defined (__GNUC__) && !defined (_STANDARD_C_PLUS_PLUS)
-# error This header file requires the -LANG:std option
-#endif
-
-// This file provides forward declarations of the most important I/O
-// classes. Note that almost all of those classes are class templates,
-// with default template arguments. According to the C++ standard,
-// if a class template is declared more than once in the same scope
-// then only one of those declarations may have default arguments.
-
-// <iosfwd> contains the same declarations as other headers, and including
-// both <iosfwd> and (say) <iostream> is permitted. This means that only
-// one header may contain those default template arguments.
-
-// In this implementation, the declarations in <iosfwd> contain default
-// template arguments. All of the other I/O headers include <iosfwd>.
-
-#ifndef _STLP_CHAR_TRAITS_H
-# include <stl/char_traits.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-class ios_base;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_ios;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_streambuf;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_istream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_ostream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_iostream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM( _Traits , char_traits<_CharT>),
- _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
-class basic_stringbuf;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
- _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
-class basic_istringstream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
- _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
-class basic_ostringstream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
- _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
-class basic_stringstream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_filebuf;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_ifstream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_ofstream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class basic_fstream;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class istreambuf_iterator;
-
-template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
-class ostreambuf_iterator;
-
-typedef basic_ios<char, char_traits<char> > ios;
-
-#if !defined (_STLP_NO_WCHAR_T)
-typedef basic_ios<wchar_t, char_traits<wchar_t> > wios;
-#endif
-
-// Forward declaration of class locale, and of the most important facets.
-class locale;
-template <class _Facet>
-#if defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
-struct _Use_facet {
- const locale& __loc;
- _Use_facet(const locale& __p_loc) : __loc(__p_loc) {}
- inline const _Facet& operator *() const;
-};
-# define use_facet *_Use_facet
-#else
-inline const _Facet& use_facet(const locale&);
-#endif
-
-template <class _CharT> class ctype;
-template <class _CharT> class ctype_byname;
-template <class _CharT> class collate;
-template <class _CharT> class collate_byname;
-
-_STLP_TEMPLATE_NULL class ctype<char>;
-_STLP_TEMPLATE_NULL class ctype_byname<char>;
-_STLP_TEMPLATE_NULL class collate<char>;
-_STLP_TEMPLATE_NULL class collate_byname<char>;
-
-#if !defined (_STLP_NO_WCHAR_T)
-_STLP_TEMPLATE_NULL class ctype<wchar_t>;
-_STLP_TEMPLATE_NULL class ctype_byname<wchar_t>;
-_STLP_TEMPLATE_NULL class collate<wchar_t>;
-_STLP_TEMPLATE_NULL class collate_byname<wchar_t>;
-#endif
-
-#if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 )
-// Typedefs for ordinary (narrow-character) streams.
-//_STLP_TEMPLATE_NULL class basic_streambuf<char, char_traits<char> >;
-#endif
-
-typedef basic_istream<char, char_traits<char> > istream;
-typedef basic_ostream<char, char_traits<char> > ostream;
-typedef basic_iostream<char, char_traits<char> > iostream;
-typedef basic_streambuf<char,char_traits<char> > streambuf;
-
-typedef basic_stringbuf<char, char_traits<char>, allocator<char> > stringbuf;
-typedef basic_istringstream<char, char_traits<char>, allocator<char> > istringstream;
-typedef basic_ostringstream<char, char_traits<char>, allocator<char> > ostringstream;
-typedef basic_stringstream<char, char_traits<char>, allocator<char> > stringstream;
-
-typedef basic_filebuf<char, char_traits<char> > filebuf;
-typedef basic_ifstream<char, char_traits<char> > ifstream;
-typedef basic_ofstream<char, char_traits<char> > ofstream;
-typedef basic_fstream<char, char_traits<char> > fstream;
-
-#if !defined (_STLP_NO_WCHAR_T)
-// Typedefs for wide-character streams.
-typedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf;
-typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream;
-typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream;
-typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream;
-
-typedef basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringbuf;
-typedef basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wistringstream;
-typedef basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wostringstream;
-typedef basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringstream;
-
-typedef basic_filebuf<wchar_t, char_traits<wchar_t> > wfilebuf;
-typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream;
-typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream;
-typedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream;
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_iterator.h b/stlport/stlport/stl/_iterator.h
deleted file mode 100644
index 8e3b7b0..0000000
--- a/stlport/stlport/stl/_iterator.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-#define _STLP_INTERNAL_ITERATOR_H
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-// This is the new version of reverse_iterator, as defined in the
-// draft C++ standard. It relies on the iterator_traits template,
-// which in turn relies on partial specialization. The class
-// reverse_bidirectional_iterator is no longer part of the draft
-// standard, but it is retained for backward compatibility.
-
-template <class _Iterator>
-class reverse_iterator :
- public iterator<typename iterator_traits<_Iterator>::iterator_category,
- typename iterator_traits<_Iterator>::value_type,
- typename iterator_traits<_Iterator>::difference_type,
- typename iterator_traits<_Iterator>::pointer,
- typename iterator_traits<_Iterator>::reference> {
-protected:
- _Iterator current;
- typedef reverse_iterator<_Iterator> _Self;
-public:
- typedef typename iterator_traits<_Iterator>::difference_type difference_type;
- // pointer type required for arrow operator hidden behind _STLP_DEFINE_ARROW_OPERATOR:
- typedef typename iterator_traits<_Iterator>::pointer pointer;
- typedef typename iterator_traits<_Iterator>::reference reference;
- typedef _Iterator iterator_type;
-public:
- reverse_iterator() {}
- explicit reverse_iterator(iterator_type __x) : current(__x) {}
- reverse_iterator(const _Self& __x) : current(__x.current) {}
- _Self& operator = (const _Self& __x) { current = __x.base(); return *this; }
-# if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Iter>
- reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) {}
- template <class _Iter>
- _Self& operator = (const reverse_iterator<_Iter>& __x) { current = __x.base(); return *this; }
-# endif /* _STLP_MEMBER_TEMPLATES */
-
- iterator_type base() const { return current; }
- reference operator*() const {
- _Iterator __tmp = current;
- return *--__tmp;
- }
- _STLP_DEFINE_ARROW_OPERATOR
- _Self& operator++() {
- --current;
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- --current;
- return __tmp;
- }
- _Self& operator--() {
- ++current;
- return *this;
- }
- _Self operator--(int) {
- _Self __tmp = *this;
- ++current;
- return __tmp;
- }
-
- _Self operator+(difference_type __n) const { return _Self(current - __n); }
- _Self& operator+=(difference_type __n) {
- current -= __n;
- return *this;
- }
- _Self operator-(difference_type __n) const { return _Self(current + __n); }
- _Self& operator-=(difference_type __n) {
- current += __n;
- return *this;
- }
- reference operator[](difference_type __n) const { return *(*this + __n); }
-};
-
-template <class _Iterator>
-inline bool _STLP_CALL operator==(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return __x.base() == __y.base(); }
-
-template <class _Iterator>
-inline bool _STLP_CALL operator<(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return __y.base() < __x.base(); }
-
-# if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
-template <class _Iterator>
-inline bool _STLP_CALL operator!=(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return !(__x == __y); }
-
-template <class _Iterator>
-inline bool _STLP_CALL operator>(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return __y < __x; }
-
-template <class _Iterator>
-inline bool _STLP_CALL operator<=(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return !(__y < __x); }
-
-template <class _Iterator>
-inline bool _STLP_CALL operator>=(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return !(__x < __y); }
-# endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
-
-template <class _Iterator>
-# if defined (__SUNPRO_CC)
-inline ptrdiff_t _STLP_CALL
-# else
-inline typename reverse_iterator<_Iterator>::difference_type _STLP_CALL
-# endif
-operator-(const reverse_iterator<_Iterator>& __x,
- const reverse_iterator<_Iterator>& __y)
-{ return __y.base() - __x.base(); }
-
-template <class _Iterator, class _DifferenceType>
-inline reverse_iterator<_Iterator> _STLP_CALL
-operator+(_DifferenceType n,const reverse_iterator<_Iterator>& x)
-{ return x.operator+(n); }
-#endif
-
-template <class _Container>
-class back_insert_iterator
- : public iterator<output_iterator_tag, void, void, void, void> {
- typedef back_insert_iterator<_Container> _Self;
-protected:
- //c is a Standard name (24.4.2.1), do no make it STLport naming convention compliant.
- _Container *container;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
-
- explicit back_insert_iterator(_Container& __x) : container(&__x) {}
-
- _Self& operator=(const _Self& __other) {
- container = __other.container;
- return *this;
- }
- _Self& operator=(const typename _Container::value_type& __val) {
- container->push_back(__val);
- return *this;
- }
- _Self& operator*() { return *this; }
- _Self& operator++() { return *this; }
- _Self operator++(int) { return *this; }
-};
-
-template <class _Container>
-inline back_insert_iterator<_Container> _STLP_CALL back_inserter(_Container& __x)
-{ return back_insert_iterator<_Container>(__x); }
-
-template <class _Container>
-class front_insert_iterator
- : public iterator<output_iterator_tag, void, void, void, void> {
- typedef front_insert_iterator<_Container> _Self;
-protected:
- //c is a Standard name (24.4.2.3), do no make it STLport naming convention compliant.
- _Container *container;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- explicit front_insert_iterator(_Container& __x) : container(&__x) {}
-
- _Self& operator=(const _Self& __other) {
- container = __other.container;
- return *this;
- }
- _Self& operator=(const typename _Container::value_type& __val) {
- container->push_front(__val);
- return *this;
- }
- _Self& operator*() { return *this; }
- _Self& operator++() { return *this; }
- _Self operator++(int) { return *this; }
-};
-
-template <class _Container>
-inline front_insert_iterator<_Container> _STLP_CALL front_inserter(_Container& __x)
-{ return front_insert_iterator<_Container>(__x); }
-
-template <class _Container>
-class insert_iterator
- : public iterator<output_iterator_tag, void, void, void, void> {
- typedef insert_iterator<_Container> _Self;
-protected:
- //container is a Standard name (24.4.2.5), do no make it STLport naming convention compliant.
- _Container *container;
- typename _Container::iterator _M_iter;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- insert_iterator(_Container& __x, typename _Container::iterator __i)
- : container(&__x), _M_iter(__i) {}
-
- _Self& operator=(_Self const& __other) {
- container = __other.container;
- _M_iter = __other._M_iter;
- return *this;
- }
- _Self& operator=(const typename _Container::value_type& __val) {
- _M_iter = container->insert(_M_iter, __val);
- ++_M_iter;
- return *this;
- }
- _Self& operator*() { return *this; }
- _Self& operator++() { return *this; }
- _Self& operator++(int) { return *this; }
-};
-
-template <class _Container, class _Iterator>
-inline insert_iterator<_Container> _STLP_CALL
-inserter(_Container& __x, _Iterator __i) {
- typedef typename _Container::iterator __iter;
- return insert_iterator<_Container>(__x, __iter(__i));
-}
-
-_STLP_END_NAMESPACE
-
-#if ! defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-# include <stl/_iterator_old.h>
-#endif
-
-#endif /* _STLP_INTERNAL_ITERATOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_iterator_base.h b/stlport/stlport/stl/_iterator_base.h
deleted file mode 100644
index ef59048..0000000
--- a/stlport/stlport/stl/_iterator_base.h
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-#define _STLP_INTERNAL_ITERATOR_BASE_H
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-#endif
-
-//# if defined (_STLP_IMPORT_VENDOR_CSTD) && ! defined (_STLP_VENDOR_GLOBAL_CSTD)
-//_STLP_BEGIN_NAMESPACE
-//using namespace _STLP_VENDOR_CSTD;
-//_STLP_END_NAMESPACE
-//#endif /* _STLP_IMPORT_VENDOR_CSTD */
-
-#if !defined(_STLP_USE_OLD_HP_ITERATOR_QUERIES) && !defined(_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-# endif
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-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 {};
-
-template <class _Category, class _Tp, _STLP_DFL_TMPL_PARAM(_Distance,ptrdiff_t),
- _STLP_DFL_TMPL_PARAM(_Pointer,_Tp*), _STLP_DFL_TMPL_PARAM(_Reference,_Tp&) >
-struct iterator {
- typedef _Category iterator_category;
- typedef _Tp value_type;
- typedef _Distance difference_type;
- typedef _Pointer pointer;
- typedef _Reference reference;
-};
-_STLP_TEMPLATE_NULL
-struct iterator<output_iterator_tag, void, void, void, void> {
- typedef output_iterator_tag iterator_category;
-#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-#endif
-};
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-# define _STLP_ITERATOR_CATEGORY(_It, _Tp) _STLP_STD::iterator_category(_It)
-# define _STLP_DISTANCE_TYPE(_It, _Tp) _STLP_STD::distance_type(_It)
-# define _STLP_VALUE_TYPE(_It, _Tp) _STLP_STD::value_type(_It)
-//Old HP iterator queries do not give information about the iterator
-//associated reference type so we consider that it is not a real reference.
-# define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp) __false_type()
-#else
-# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# define _STLP_VALUE_TYPE(_It, _Tp) (_STLP_TYPENAME _STLP_STD::iterator_traits< _Tp >::value_type*)0
-# define _STLP_DISTANCE_TYPE(_It, _Tp) (_STLP_TYPENAME _STLP_STD::iterator_traits< _Tp >::difference_type*)0
-# if defined (__BORLANDC__) || defined (__SUNPRO_CC) || ( defined (__MWERKS__) && (__MWERKS__ <= 0x2303)) || \
- (defined (__sgi) && defined (_COMPILER_VERSION)) || defined (__DMC__)
-# define _STLP_ITERATOR_CATEGORY(_It, _Tp) _STLP_STD::iterator_traits< _Tp >::iterator_category()
-# else
-# define _STLP_ITERATOR_CATEGORY(_It, _Tp) _STLP_TYPENAME _STLP_STD::iterator_traits< _Tp >::iterator_category()
-# endif
-# define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp) _STLP_STD::_IsRefType< _STLP_TYPENAME _STLP_STD::iterator_traits< _Tp >::reference >::_Ret()
-# else
-# define _STLP_ITERATOR_CATEGORY(_It, _Tp) _STLP_STD::__iterator_category(_It, _STLP_STD::_IsPtrType<_Tp>::_Ret())
-# define _STLP_DISTANCE_TYPE(_It, _Tp) _STLP_STD::__distance_type(_It, _STLP_STD::_IsPtrType<_Tp>::_Ret())
-# define _STLP_VALUE_TYPE(_It, _Tp) _STLP_STD::__value_type(_It, _STLP_STD::_IsPtrType<_Tp>::_Ret())
-# define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp) __false_type()
-# endif
-#endif
-
-#if defined (_STLP_DONT_REDEFINE_STD) && defined (_STLP_WHOLE_NATIVE_STD)
-/* In this mode we will see both STLport implementation and native
- * one. To allow some interaction between both implementations through
- * iterators we have to map std iterator categories to stlport ones. This
- * way we will be able to initialize STLport containers with native
- * iterators, the other side won't work except when STLport iterators are
- * simple pointers. */
-
-_STLP_END_NAMESPACE
-
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <iterator>
-# else
-# include _STLP_NATIVE_HEADER(iterator)
-# endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _IteCat>
-struct _CategoryMapping
-{ typedef _IteCat _Tag; };
-
-_STLP_TEMPLATE_NULL
-struct _CategoryMapping<::std::input_iterator_tag>
-{ typedef input_iterator_tag _Tag; };
-_STLP_TEMPLATE_NULL
-struct _CategoryMapping<::std::output_iterator_tag>
-{ typedef output_iterator_tag _Tag; };
-_STLP_TEMPLATE_NULL
-struct _CategoryMapping<::std::forward_iterator_tag>
-{ typedef forward_iterator_tag _Tag; };
-_STLP_TEMPLATE_NULL
-struct _CategoryMapping<::std::bidirectional_iterator_tag>
-{ typedef bidirectional_iterator_tag _Tag; };
-_STLP_TEMPLATE_NULL
-struct _CategoryMapping<::std::random_access_iterator_tag>
-{ typedef random_access_iterator_tag _Tag; };
-
-template <class _Iterator>
-struct iterator_traits {
- typedef typename _Iterator::iterator_category _OriginalTag;
- typedef typename _CategoryMapping<_OriginalTag>::_Tag iterator_category;
-#else
-template <class _Iterator>
-struct iterator_traits {
- typedef typename _Iterator::iterator_category iterator_category;
-#endif
- typedef typename _Iterator::value_type value_type;
- typedef typename _Iterator::difference_type difference_type;
- typedef typename _Iterator::pointer pointer;
- typedef typename _Iterator::reference reference;
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (__SUNPRO_CC)
-# define _STLP_DIFFERENCE_TYPE(_Iterator) typename iterator_traits<_Iterator>::difference_type
-#else
-# define _STLP_DIFFERENCE_TYPE(_Iterator) ptrdiff_t
-#endif
-
-#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
-
-// fbp : this order keeps gcc happy
-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;
-};
-
-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;
-};
-
-# if defined (__BORLANDC__)
-template <class _Tp>
-struct iterator_traits<_Tp* const> {
- typedef random_access_iterator_tag iterator_category;
- typedef _Tp value_type;
- typedef ptrdiff_t difference_type;
- typedef const _Tp* pointer;
- typedef const _Tp& reference;
-};
-# endif
-
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-#include <stl/_ptrs_specialize.h>
-_STLP_BEGIN_NAMESPACE
-
-#ifndef _STLP_USE_OLD_HP_ITERATOR_QUERIES
-// 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.
-
-# ifndef _STLP_CLASS_PARTIAL_SPECIALIZATION
-
-template <class _Tp>
-inline _STLP_STD::random_access_iterator_tag
-__iterator_category(const _Tp*, const __true_type&)
-{ return _STLP_STD::random_access_iterator_tag(); }
-
-template <class _Iter>
-inline _STLP_TYPENAME_ON_RETURN_TYPE _STLP_STD::iterator_traits<_Iter>::iterator_category
-__iterator_category(const _Iter&, const __false_type&) {
- typedef _STLP_TYPENAME _STLP_STD::iterator_traits<_Iter>::iterator_category _Category;
- return _Category();
-}
-
-template <class _Tp>
-inline ptrdiff_t*
-__distance_type(const _Tp*, const __true_type&)
-{ return __STATIC_CAST(ptrdiff_t*, 0); }
-
-template <class _Iter>
-inline _STLP_TYPENAME_ON_RETURN_TYPE _STLP_STD::iterator_traits<_Iter>::difference_type*
-__distance_type(const _Iter&, const __false_type&) {
- typedef _STLP_TYPENAME _STLP_STD::iterator_traits<_Iter>::difference_type _diff_type;
- return __STATIC_CAST(_diff_type*,0);
-}
-
-template <class _Tp>
-inline _Tp*
-__value_type(const _Tp*, const __true_type&)
-{ return __STATIC_CAST(_Tp*, 0); }
-
-template <class _Iter>
-inline _STLP_TYPENAME_ON_RETURN_TYPE _STLP_STD::iterator_traits<_Iter>::value_type*
-__value_type(const _Iter&, const __false_type&) {
- typedef _STLP_TYPENAME _STLP_STD::iterator_traits<_Iter>::value_type _value_type;
- return __STATIC_CAST(_value_type*,0);
-}
-
-# endif
-
-#else /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */
-template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
-inline _Category _STLP_CALL iterator_category(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return _Category(); }
-template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
-inline _Tp* _STLP_CALL value_type(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return __STATIC_CAST(_Tp*, 0); }
-template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference>
-inline _Distance* _STLP_CALL distance_type(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return __STATIC_CAST(_Distance*, 0); }
-template <class _Tp>
-inline random_access_iterator_tag _STLP_CALL iterator_category(const _Tp*) { return random_access_iterator_tag(); }
-template <class _Tp>
-inline _Tp* _STLP_CALL value_type(const _Tp*) { return __STATIC_CAST(_Tp*, 0); }
-template <class _Tp>
-inline ptrdiff_t* _STLP_CALL distance_type(const _Tp*) { return __STATIC_CAST(ptrdiff_t*, 0); }
-#endif /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */
-
-#if !defined (_STLP_NO_ANACHRONISMS)
-// 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 :
- public iterator <input_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
-struct output_iterator : public iterator <output_iterator_tag, void, void, void, void> {};
-template <class _Tp, class _Distance> struct forward_iterator :
- public iterator<forward_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
-template <class _Tp, class _Distance> struct bidirectional_iterator :
- public iterator<bidirectional_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
-template <class _Tp, class _Distance> struct random_access_iterator :
- public iterator<random_access_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {};
-
-# if defined (_STLP_BASE_MATCH_BUG) && defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-template <class _Tp, class _Distance>
-inline input_iterator_tag _STLP_CALL
-iterator_category(const input_iterator<_Tp, _Distance>&) { return input_iterator_tag(); }
-inline output_iterator_tag _STLP_CALL
-iterator_category(const output_iterator&) { return output_iterator_tag(); }
-template <class _Tp, class _Distance>
-inline forward_iterator_tag _STLP_CALL
-iterator_category(const forward_iterator<_Tp, _Distance>&) { return forward_iterator_tag(); }
-template <class _Tp, class _Distance>
-inline bidirectional_iterator_tag _STLP_CALL
-iterator_category(const bidirectional_iterator<_Tp, _Distance>&) { return bidirectional_iterator_tag(); }
-template <class _Tp, class _Distance>
-inline random_access_iterator_tag _STLP_CALL
-iterator_category(const random_access_iterator<_Tp, _Distance>&) { return random_access_iterator_tag(); }
-template <class _Tp, class _Distance>
-inline _Tp* _STLP_CALL value_type(const input_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); }
-template <class _Tp, class _Distance>
-inline _Tp* _STLP_CALL value_type(const forward_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); }
-template <class _Tp, class _Distance>
-inline _Tp* _STLP_CALL value_type(const bidirectional_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); }
-template <class _Tp, class _Distance>
-inline _Tp* _STLP_CALL value_type(const random_access_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); }
-template <class _Tp, class _Distance>
-inline _Distance* _STLP_CALL distance_type(const input_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0); }
-template <class _Tp, class _Distance>
-inline _Distance* _STLP_CALL distance_type(const forward_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0); }
-template <class _Tp, class _Distance>
-inline _Distance* _STLP_CALL distance_type(const bidirectional_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0);}
-template <class _Tp, class _Distance>
-inline _Distance* _STLP_CALL distance_type(const random_access_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0); }
-# endif
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIterator>
-inline _STLP_DIFFERENCE_TYPE(_InputIterator) _STLP_CALL
-__distance(const _InputIterator& __first, const _InputIterator& __last,
- const input_iterator_tag &) {
- _STLP_DIFFERENCE_TYPE(_InputIterator) __n = 0;
- _InputIterator __it(__first);
- while (__it != __last) {
- ++__it; ++__n;
- }
- return __n;
-}
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _ForwardIterator>
-inline _STLP_DIFFERENCE_TYPE(_ForwardIterator) _STLP_CALL
-__distance(const _ForwardIterator& __first, const _ForwardIterator& __last,
- const forward_iterator_tag &) {
- _STLP_DIFFERENCE_TYPE(_ForwardIterator) __n = 0;
- _ForwardIterator __it(__first);
- while (__it != __last) {
- ++__it; ++__n;
- }
- return __n;
-}
-
-template <class _BidirectionalIterator>
-_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_BidirectionalIterator) _STLP_CALL
-__distance(const _BidirectionalIterator& __first, const _BidirectionalIterator& __last,
- const bidirectional_iterator_tag &) {
- _STLP_DIFFERENCE_TYPE(_BidirectionalIterator) __n = 0;
- _BidirectionalIterator __it(__first);
- while (__it != __last) {
- ++__it; ++__n;
- }
- return __n;
-}
-#endif
-
-template <class _RandomAccessIterator>
-inline _STLP_DIFFERENCE_TYPE(_RandomAccessIterator) _STLP_CALL
-__distance(const _RandomAccessIterator& __first, const _RandomAccessIterator& __last,
- const random_access_iterator_tag &)
-{ return __last - __first; }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIterator>
-inline _STLP_DIFFERENCE_TYPE(_InputIterator) _STLP_CALL
-distance(_InputIterator __first, _InputIterator __last)
-{ return _STLP_PRIV __distance(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); }
-
-#if !defined (_STLP_NO_ANACHRONISMS)
-template <class _InputIterator, class _Distance>
-inline void _STLP_CALL distance(const _InputIterator& __first,
- const _InputIterator& __last, _Distance& __n)
-{ __n += _STLP_STD::distance(__first, __last); }
-
-# if defined (_STLP_MSVC)
-// MSVC specific
-template <class _InputIterator, class _Dist>
-inline void _STLP_CALL _Distance(_InputIterator __first,
- _InputIterator __last, _Dist& __n)
-{ __n += _STLP_STD::distance(__first, __last); }
-# endif
-#endif
-
-// fbp: those are being used for iterator/const_iterator definitions everywhere
-template <class _Tp>
-struct _Nonconst_traits;
-
-template <class _Tp>
-struct _Const_traits {
- typedef _Tp value_type;
- typedef const _Tp& reference;
- typedef const _Tp* pointer;
- typedef _Const_traits<_Tp> _ConstTraits;
- typedef _Nonconst_traits<_Tp> _NonConstTraits;
-};
-
-template <class _Tp>
-struct _Nonconst_traits {
- typedef _Tp value_type;
- typedef _Tp& reference;
- typedef _Tp* pointer;
- typedef _Const_traits<_Tp> _ConstTraits;
- typedef _Nonconst_traits<_Tp> _NonConstTraits;
-};
-
-/*
- * dums: A special iterator/const_iterator traits for set and multiset for which even
- * the iterator is not mutable
- */
-template <class _Tp>
-struct _Nonconst_Const_traits;
-
-template <class _Tp>
-struct _Const_Const_traits {
- typedef _Tp value_type;
- typedef const _Tp& reference;
- typedef const _Tp* pointer;
- typedef _Const_Const_traits<_Tp> _ConstTraits;
- typedef _Nonconst_Const_traits<_Tp> _NonConstTraits;
-};
-
-template <class _Tp>
-struct _Nonconst_Const_traits {
- typedef _Tp value_type;
- typedef const _Tp& reference;
- typedef const _Tp* pointer;
- typedef _Const_Const_traits<_Tp> _ConstTraits;
- typedef _Nonconst_Const_traits<_Tp> _NonConstTraits;
-};
-
-/*
- * A macro to generate a new iterator traits from one of the
- * previous one. Changing the iterator traits type make iterators
- * from different containers not comparable.
- */
-#define _STLP_CREATE_ITERATOR_TRAITS_BASE(Motif, Traits) \
-template <class _Tp> \
-struct _##Motif; \
-template <class _Tp> \
-struct _Const##Motif : public _STLP_STD::_Const_##Traits<_Tp> { \
- typedef _Const##Motif<_Tp> _ConstTraits; \
- typedef _##Motif<_Tp> _NonConstTraits; \
-}; \
-template <class _Tp> \
-struct _##Motif : public _STLP_STD::_Nonconst_##Traits<_Tp> { \
- typedef _Const##Motif<_Tp> _ConstTraits; \
- typedef _##Motif<_Tp> _NonConstTraits; \
-};
-
-#define _STLP_CREATE_ITERATOR_TRAITS(Motif, Traits) \
-_STLP_MOVE_TO_PRIV_NAMESPACE \
-_STLP_CREATE_ITERATOR_TRAITS_BASE(Motif, Traits) \
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#define _STLP_CREATE_HASH_ITERATOR_TRAITS(Motif, Traits) \
-_STLP_MOVE_TO_PRIV_NAMESPACE \
-_STLP_CREATE_ITERATOR_TRAITS_BASE(NonLocal##Motif, Traits) \
-_STLP_CREATE_ITERATOR_TRAITS_BASE(Local##Motif, Traits) \
-template <class _Tp> \
-struct _##Motif { \
- typedef _ConstNonLocal##Motif<_Tp> _ConstTraits; \
- typedef _NonLocal##Motif<_Tp> _NonConstTraits; \
- typedef _ConstLocal##Motif<_Tp> _ConstLocalTraits; \
- typedef _Local##Motif<_Tp> _NonConstLocalTraits; \
-}; \
-_STLP_MOVE_TO_STD_NAMESPACE
-
-/*
-# if defined (_STLP_BASE_TYPEDEF_BUG)
-// this workaround is needed for SunPro 4.0.1
-template <class _Traits>
-struct __cnst_traits_aux : private _Traits {
- typedef typename _Traits::value_type value_type;
-};
-# define __TRAITS_VALUE_TYPE(_Traits) __cnst_traits_aux<_Traits>::value_type
-# else
-# define __TRAITS_VALUE_TYPE(_Traits) _Traits::value_type
-# endif
-*/
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter, class _Distance>
-_STLP_INLINE_LOOP void _STLP_CALL
-__advance(_InputIter& __i, _Distance __n, const input_iterator_tag &)
-{ while (__n--) ++__i; }
-
-// fbp : added output iterator tag variant
-template <class _InputIter, class _Distance>
-_STLP_INLINE_LOOP void _STLP_CALL
-__advance(_InputIter& __i, _Distance __n, const output_iterator_tag &)
-{ while (__n--) ++__i; }
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _ForwardIterator, class _Distance>
-_STLP_INLINE_LOOP void _STLP_CALL
-__advance(_ForwardIterator& i, _Distance n, const forward_iterator_tag &)
-{ while (n--) ++i; }
-#endif
-
-template <class _BidirectionalIterator, class _Distance>
-_STLP_INLINE_LOOP void _STLP_CALL
-__advance(_BidirectionalIterator& __i, _Distance __n,
- const bidirectional_iterator_tag &) {
- if (__n > 0)
- while (__n--) ++__i;
- else
- while (__n++) --__i;
-}
-
-template <class _RandomAccessIterator, class _Distance>
-inline void _STLP_CALL
-__advance(_RandomAccessIterator& __i, _Distance __n,
- const random_access_iterator_tag &)
-{ __i += __n; }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIterator, class _Distance>
-inline void _STLP_CALL advance(_InputIterator& __i, _Distance __n)
-{ _STLP_PRIV __advance(__i, __n, _STLP_ITERATOR_CATEGORY(__i, _InputIterator)); }
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_ITERATOR_BASE_H */
-
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_limits.c b/stlport/stlport/stl/_limits.c
deleted file mode 100644
index 3938024..0000000
--- a/stlport/stlport/stl/_limits.c
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright (c) 1998,1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_LIMITS_C
-#define _STLP_LIMITS_C
-
-#ifndef _STLP_INTERNAL_LIMITS
-# include <stl/_limits.h>
-#endif
-
-//==========================================================
-// numeric_limits static members
-//==========================================================
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-#if !defined (_STLP_STATIC_CONST_INIT_BUG) && !defined (_STLP_NO_STATIC_CONST_DEFINITION)
-
-# define __declare_numeric_base_member(__type, __mem) \
-template <class __number> \
- const __type _Numeric_limits_base<__number>:: __mem
-
-__declare_numeric_base_member(bool, is_specialized);
-__declare_numeric_base_member(int, digits);
-__declare_numeric_base_member(int, digits10);
-__declare_numeric_base_member(bool, is_signed);
-__declare_numeric_base_member(bool, is_integer);
-__declare_numeric_base_member(bool, is_exact);
-__declare_numeric_base_member(int, radix);
-__declare_numeric_base_member(int, min_exponent);
-__declare_numeric_base_member(int, max_exponent);
-__declare_numeric_base_member(int, min_exponent10);
-__declare_numeric_base_member(int, max_exponent10);
-__declare_numeric_base_member(bool, has_infinity);
-__declare_numeric_base_member(bool, has_quiet_NaN);
-__declare_numeric_base_member(bool, has_signaling_NaN);
-__declare_numeric_base_member(float_denorm_style, has_denorm);
-__declare_numeric_base_member(bool, has_denorm_loss);
-__declare_numeric_base_member(bool, is_iec559);
-__declare_numeric_base_member(bool, is_bounded);
-__declare_numeric_base_member(bool, is_modulo);
-__declare_numeric_base_member(bool, traps);
-__declare_numeric_base_member(bool, tinyness_before);
-__declare_numeric_base_member(float_round_style, round_style);
-
-# undef __declare_numeric_base_member
-
-# define __declare_integer_limits_member(__type, __mem) \
-template <class _Int, _STLP_LIMITS_MIN_TYPE __imin, _STLP_LIMITS_MAX_TYPE __imax, int __idigits, bool __ismod> \
- const __type _Integer_limits<_Int, __imin, __imax, __idigits, __ismod>:: __mem
-
-__declare_integer_limits_member(bool, is_specialized);
-__declare_integer_limits_member(int, digits);
-__declare_integer_limits_member(int, digits10);
-__declare_integer_limits_member(bool, is_signed);
-__declare_integer_limits_member(bool, is_integer);
-__declare_integer_limits_member(bool, is_exact);
-__declare_integer_limits_member(int, radix);
-__declare_integer_limits_member(bool, is_bounded);
-__declare_integer_limits_member(bool, is_modulo);
-# undef __declare_integer_limits_member
-
-# if defined (__GNUC__) && (__GNUC__ != 2 || __GNUC_MINOR__ > 96) && (__GNUC__ != 3 || __GNUC_MINOR__ == 0) && (__GNUC__ <= 3)
-_STLP_MOVE_TO_STD_NAMESPACE
-
-# define __declare_numeric_limits_member(__integer) \
- _STLP_TEMPLATE_NULL const int numeric_limits<__integer>::digits; \
- _STLP_TEMPLATE_NULL const int numeric_limits<__integer>::digits10; \
- _STLP_TEMPLATE_NULL const int numeric_limits<__integer>::radix; \
- _STLP_TEMPLATE_NULL const bool numeric_limits<__integer>::is_specialized; \
- _STLP_TEMPLATE_NULL const bool numeric_limits<__integer>::is_signed; \
- _STLP_TEMPLATE_NULL const bool numeric_limits<__integer>::is_integer; \
- _STLP_TEMPLATE_NULL const bool numeric_limits<__integer>::is_exact; \
- _STLP_TEMPLATE_NULL const bool numeric_limits<__integer>::is_bounded; \
- _STLP_TEMPLATE_NULL const bool numeric_limits<__integer>::is_modulo
-
-__declare_numeric_limits_member(_STLP_LONG_LONG);
-__declare_numeric_limits_member(unsigned _STLP_LONG_LONG);
-
-# undef __declare_numeric_limits_member
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-# endif
-
-# define __declare_float_limits_member(__type, __mem) \
-template <class __number, \
- int __Digits, int __Digits10, \
- int __MinExp, int __MaxExp, \
- int __MinExp10, int __MaxExp10, \
- bool __IsIEC559, \
- float_denorm_style __DenormStyle, \
- float_round_style __RoundStyle> \
-const __type _Floating_limits< __number, __Digits, __Digits10, \
- __MinExp, __MaxExp, __MinExp10, __MaxExp10, \
- __IsIEC559, __DenormStyle, __RoundStyle>::\
- __mem
-
-__declare_float_limits_member(bool, is_specialized);
-__declare_float_limits_member(int, digits);
-__declare_float_limits_member(int, digits10);
-__declare_float_limits_member(bool, is_signed);
-__declare_float_limits_member(int, radix);
-__declare_float_limits_member(int, min_exponent);
-__declare_float_limits_member(int, max_exponent);
-__declare_float_limits_member(int, min_exponent10);
-__declare_float_limits_member(int, max_exponent10);
-__declare_float_limits_member(bool, has_infinity);
-__declare_float_limits_member(bool, has_quiet_NaN);
-__declare_float_limits_member(bool, has_signaling_NaN);
-__declare_float_limits_member(float_denorm_style, has_denorm);
-__declare_float_limits_member(bool, has_denorm_loss);
-__declare_float_limits_member(bool, is_iec559);
-__declare_float_limits_member(bool, is_bounded);
-__declare_float_limits_member(bool, traps);
-__declare_float_limits_member(bool, tinyness_before);
-__declare_float_limits_member(float_round_style, round_style);
-# undef __declare_float_limits_member
-
-#endif
-
-
-#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION)
-
-# if defined (__GNUC__) || defined (__BORLANDC__)
-# define _STLP_ADDITIONAL_OPEN_BRACKET {
-# define _STLP_ADDITIONAL_CLOSE_BRACKET }
-# else
-# define _STLP_ADDITIONAL_OPEN_BRACKET
-# define _STLP_ADDITIONAL_CLOSE_BRACKET
-# endif
-
-/* The following code has been extracted from the boost libraries (www.boost.org) and
- * adapted with the STLport portability macros. Advantage on previous technique is that
- * computation of infinity and NaN values is only based on big/little endianess, compiler
- * float, double or long double representation is taken into account thanks to the sizeof
- * operator. */
-template<class _Number, unsigned short _Word>
-struct float_helper {
- union _WordsNumber {
- unsigned short _Words[8];
- _Number _num;
- };
- static _Number get_word_higher() _STLP_NOTHROW {
- _WordsNumber __tmp = { _STLP_ADDITIONAL_OPEN_BRACKET _Word, 0, 0, 0, 0, 0, 0, 0 _STLP_ADDITIONAL_CLOSE_BRACKET };
- return __tmp._num;
- }
- static _Number get_word_lower() _STLP_NOTHROW {
- _WordsNumber __tmp = { _STLP_ADDITIONAL_OPEN_BRACKET 0, 0, 0, 0, 0, 0, 0, 0 _STLP_ADDITIONAL_CLOSE_BRACKET };
- __tmp._Words[(sizeof(_Number) >= 12 ? 10 : sizeof(_Number)) / sizeof(unsigned short) - 1] = _Word;
- return __tmp._num;
- }
- static _Number get_from_last_word() _STLP_NOTHROW {
-# if defined (_STLP_BIG_ENDIAN)
- return get_word_higher();
-# else /* _STLP_LITTLE_ENDIAN */
- return get_word_lower();
-# endif
- }
- static _Number get_from_first_word() _STLP_NOTHROW {
-# if defined (_STLP_BIG_ENDIAN)
- return get_word_lower();
-# else /* _STLP_LITTLE_ENDIAN */
- return get_word_higher();
-# endif
- }
-};
-
-# if !defined (_STLP_NO_LONG_DOUBLE) && !defined (_STLP_BIG_ENDIAN)
-template<class _Number, unsigned short _Word1, unsigned short _Word2>
-struct float_helper2 {
- union _WordsNumber {
- unsigned short _Words[8];
- _Number _num;
- };
- //static _Number get_word_higher() _STLP_NOTHROW {
- // _WordsNumber __tmp = { _STLP_ADDITIONAL_OPEN_BRACKET _Word1, _Word2, 0, 0, 0, 0, 0, 0 _STLP_ADDITIONAL_CLOSE_BRACKET };
- // return __tmp._num;
- //}
- static _Number get_word_lower() _STLP_NOTHROW {
- _WordsNumber __tmp = { _STLP_ADDITIONAL_OPEN_BRACKET 0, 0, 0, 0, 0, 0, 0, 0 _STLP_ADDITIONAL_CLOSE_BRACKET };
- __tmp._Words[(sizeof(_Number) >= 12 ? 10 : sizeof(_Number)) / sizeof(unsigned short) - 2] = _Word1;
- __tmp._Words[(sizeof(_Number) >= 12 ? 10 : sizeof(_Number)) / sizeof(unsigned short) - 1] = _Word2;
- return __tmp._num;
- }
- static _Number get_from_last_word() _STLP_NOTHROW {
-//# if defined (_STLP_BIG_ENDIAN)
-// return get_word_higher();
-//# else /* _STLP_LITTLE_ENDIAN */
- return get_word_lower();
-//# endif
- }
-};
-# endif
-
-/* Former values kept in case moving to boost code has introduce a regression on
- * some platform. */
-#if 0
-# if defined (_STLP_BIG_ENDIAN)
-# if defined (__OS400__)
-# define _STLP_FLOAT_INF_REP { 0x7f80, 0 }
-# define _STLP_FLOAT_QNAN_REP { 0xffc0, 0 }
-# define _STLP_FLOAT_SNAN_REP { 0xff80, 0 }
-# define _STLP_DOUBLE_INF_REP { 0x7ff0, 0, 0, 0 }
-# define _STLP_DOUBLE_QNAN_REP { 0xfff8, 0, 0, 0 }
-# define _STLP_DOUBLE_SNAN_REP { 0xfff0, 0, 0, 0 }
-# define _STLP_LDOUBLE_INF_REP { 0x7ff0, 0, 0, 0, 0, 0, 0, 0 }
-# define _STLP_LDOUBLE_QNAN_REP { 0xfff8, 0, 0, 0, 0, 0, 0, 0 }
-# define _STLP_LDOUBLE_SNAN_REP { 0xfff0, 0, 0, 0, 0, 0, 0, 0 }
-# else /* __OS400__ */
-# define _STLP_FLOAT_INF_REP { 0x7f80, 0 }
-# define _STLP_FLOAT_QNAN_REP { 0x7fc1, 0 }
-# define _STLP_FLOAT_SNAN_REP { 0x7f81, 0 }
-# define _STLP_DOUBLE_INF_REP { 0x7ff0, 0, 0, 0 }
-# define _STLP_DOUBLE_QNAN_REP { 0x7ff9, 0, 0, 0 }
-# define _STLP_DOUBLE_SNAN_REP { 0x7ff1, 0, 0, 0 }
-# define _STLP_LDOUBLE_INF_REP { 0x7ff0, 0, 0, 0, 0, 0, 0, 0 }
-# define _STLP_LDOUBLE_QNAN_REP { 0x7ff1, 0, 0, 0, 0, 0, 0, 0 }
-# define _STLP_LDOUBLE_SNAN_REP { 0x7ff9, 0, 0, 0, 0, 0, 0, 0 }
-# endif /* __OS400__ */
-# else /* _STLP_LITTLE_ENDIAN */
-# if defined(__DECCXX)
-# define _STLP_FLOAT_INF_REP { 0, 0x7f80 }
-# define _STLP_FLOAT_QNAN_REP { 0, 0xffc0 }
-# define _STLP_FLOAT_SNAN_REP { 0x5555, 0x7f85 }
-# define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 }
-# define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0xfff8 }
-# define _STLP_DOUBLE_SNAN_REP { 0x5555, 0x5555, 0x5555, 0x7ff5 }
-# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0, 0, 0, 0, 0x7fff }
-# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0, 0, 0, 0x8000, 0xffff }
-# define _STLP_LDOUBLE_SNAN_REP { 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x7fff}
-# else
-# define _STLP_FLOAT_INF_REP { 0, 0x7f80 }
-# define _STLP_FLOAT_QNAN_REP { 0, 0x7fc0 }
-# define _STLP_FLOAT_SNAN_REP { 0, 0x7fa0 }
-# define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 }
-# define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0x7ff8 }
-# define _STLP_DOUBLE_SNAN_REP { 0, 0, 0, 0x7ff4 }
-# if defined (_STLP_MSVC) || defined (__ICL)
-# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x7FF0, 0 }
-# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xFFF8, 0 }
-# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xFFF8, 0 }
-# elif defined (__BORLANDC__)
-# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x8000, 0x7fff }
-# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xc000, 0x7fff }
-# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xa000, 0x7fff }
-# else
-# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x8000, 0x7fff, 0 }
-# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xa000, 0x7fff, 0 }
-# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xc000, 0x7fff, 0 }
-# endif
-# endif
-# endif
-
-union _F_rep {
- unsigned short rep[2];
- float val;
-};
-union _D_rep {
- unsigned short rep[4];
- double val;
-};
-
-# ifndef _STLP_NO_LONG_DOUBLE
-union _LD_rep {
- unsigned short rep[8];
- long double val;
-};
-# endif
-#endif
-
-template <class __dummy>
-float _STLP_CALL _LimG<__dummy>::get_F_inf() {
- typedef float_helper<float, 0x7f80u> _FloatHelper;
- return _FloatHelper::get_from_last_word();
-}
-template <class __dummy>
-float _STLP_CALL _LimG<__dummy>::get_F_qNaN() {
- typedef float_helper<float, 0x7f81u> _FloatHelper;
- return _FloatHelper::get_from_last_word();
-}
-template <class __dummy>
-float _STLP_CALL _LimG<__dummy>::get_F_sNaN() {
- typedef float_helper<float, 0x7fc1u> _FloatHelper;
- return _FloatHelper::get_from_last_word();
-}
-template <class __dummy>
-float _STLP_CALL _LimG<__dummy>::get_F_denormMin() {
- typedef float_helper<float, 0x0001u> _FloatHelper;
- return _FloatHelper::get_from_first_word();
-}
-
-template <int __use_double_limits>
-class _NumericLimitsAccess;
-
-_STLP_TEMPLATE_NULL
-class _NumericLimitsAccess<1> {
-public:
- static double get_inf() {
- typedef float_helper<double, 0x7ff0u> _FloatHelper;
- return _FloatHelper::get_from_last_word();
- }
- static double get_qNaN() {
- typedef float_helper<double, 0x7ff1u> _FloatHelper;
- return _FloatHelper::get_from_last_word();
- }
- static double get_sNaN() {
- typedef float_helper<double, 0x7ff9u> _FloatHelper;
- return _FloatHelper::get_from_last_word();
- }
-};
-
-template <class __dummy>
-double _STLP_CALL _LimG<__dummy>::get_D_inf()
-{ return _NumericLimitsAccess<1>::get_inf(); }
-template <class __dummy>
-double _STLP_CALL _LimG<__dummy>::get_D_qNaN()
-{ return _NumericLimitsAccess<1>::get_qNaN(); }
-template <class __dummy>
-double _STLP_CALL _LimG<__dummy>::get_D_sNaN()
-{ return _NumericLimitsAccess<1>::get_sNaN(); }
-template <class __dummy>
-double _STLP_CALL _LimG<__dummy>::get_D_denormMin() {
- typedef float_helper<double, 0x0001u> _FloatHelper;
- return _FloatHelper::get_from_first_word();
-}
-
-# if !defined (_STLP_NO_LONG_DOUBLE)
-_STLP_TEMPLATE_NULL
-class _NumericLimitsAccess<0> {
-public:
- static long double get_inf() {
-# if defined (_STLP_BIG_ENDIAN)
- typedef float_helper<long double, 0x7ff0u> _FloatHelper;
-# else
- typedef float_helper2<long double, 0x8000u, 0x7fffu> _FloatHelper;
-# endif
- return _FloatHelper::get_from_last_word();
- }
- static long double get_qNaN() {
-# if defined (_STLP_BIG_ENDIAN)
- typedef float_helper<long double, 0x7ff1u> _FloatHelper;
-# else
- typedef float_helper2<long double, 0xc000u, 0x7fffu> _FloatHelper;
-# endif
- return _FloatHelper::get_from_last_word();
- }
- static long double get_sNaN() {
-# if defined (_STLP_BIG_ENDIAN)
- typedef float_helper<long double, 0x7ff9u> _FloatHelper;
-# else
- typedef float_helper2<long double, 0x9000u, 0x7fffu> _FloatHelper;
-# endif
- return _FloatHelper::get_from_last_word();
- }
-};
-
-template <class __dummy>
-long double _STLP_CALL _LimG<__dummy>::get_LD_inf() {
- const int __use_double_limits = sizeof(double) == sizeof(long double) ? 1 : 0;
- return _NumericLimitsAccess<__use_double_limits>::get_inf();
-}
-template <class __dummy>
-long double _STLP_CALL _LimG<__dummy>::get_LD_qNaN() {
- const int __use_double_limits = sizeof(double) == sizeof(long double) ? 1 : 0;
- return _NumericLimitsAccess<__use_double_limits>::get_qNaN();
-}
-template <class __dummy>
-long double _STLP_CALL _LimG<__dummy>::get_LD_sNaN() {
- const int __use_double_limits = sizeof(double) == sizeof(long double) ? 1 : 0;
- return _NumericLimitsAccess<__use_double_limits>::get_sNaN();
-}
-template <class __dummy>
-long double _STLP_CALL _LimG<__dummy>::get_LD_denormMin() {
- typedef float_helper<long double, 0x0001u> _FloatHelper;
- return _FloatHelper::get_from_first_word();
-}
-# endif
-
-#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */
-
-#undef _STLP_LIMITS_MIN_TYPE
-#undef _STLP_LIMITS_MAX_TYPE
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_LIMITS_C_INCLUDED */
diff --git a/stlport/stlport/stl/_limits.h b/stlport/stlport/stl/_limits.h
deleted file mode 100644
index c0091f6..0000000
--- a/stlport/stlport/stl/_limits.h
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This may be not portable code. Parts of numeric_limits<> are
- * inherently machine-dependent. At present this file is suitable
- * for the MIPS, SPARC, Alpha and ia32 architectures.
- */
-
-#ifndef _STLP_INTERNAL_LIMITS
-#define _STLP_INTERNAL_LIMITS
-
-#ifndef _STLP_CLIMITS
-# include <climits>
-#endif
-
-#ifndef _STLP_CFLOAT
-# include <cfloat>
-#endif
-
-#if defined (_STLP_HAS_WCHAR_T) && !defined (_STLP_INTERNAL_CWCHAR)
-# include <stl/_cwchar.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-enum float_round_style {
- round_indeterminate = -1,
- round_toward_zero = 0,
- round_to_nearest = 1,
- round_toward_infinity = 2,
- round_toward_neg_infinity = 3
-};
-
-enum float_denorm_style {
- denorm_indeterminate = -1,
- denorm_absent = 0,
- denorm_present = 1
-};
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// Base class for all specializations of numeric_limits.
-template <class __number>
-class _Numeric_limits_base {
-public:
-
- static __number (_STLP_CALL min)() _STLP_NOTHROW { return __number(); }
- static __number (_STLP_CALL max)() _STLP_NOTHROW { return __number(); }
-
- _STLP_STATIC_CONSTANT(int, digits = 0);
- _STLP_STATIC_CONSTANT(int, digits10 = 0);
- _STLP_STATIC_CONSTANT(int, radix = 0);
- _STLP_STATIC_CONSTANT(int, min_exponent = 0);
- _STLP_STATIC_CONSTANT(int, min_exponent10 = 0);
- _STLP_STATIC_CONSTANT(int, max_exponent = 0);
- _STLP_STATIC_CONSTANT(int, max_exponent10 = 0);
-
- _STLP_STATIC_CONSTANT(float_denorm_style, has_denorm = denorm_absent);
- _STLP_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
-
- _STLP_STATIC_CONSTANT(bool, is_specialized = false);
- _STLP_STATIC_CONSTANT(bool, is_signed = false);
- _STLP_STATIC_CONSTANT(bool, is_integer = false);
- _STLP_STATIC_CONSTANT(bool, is_exact = false);
- _STLP_STATIC_CONSTANT(bool, has_infinity = false);
- _STLP_STATIC_CONSTANT(bool, has_quiet_NaN = false);
- _STLP_STATIC_CONSTANT(bool, has_signaling_NaN = false);
- _STLP_STATIC_CONSTANT(bool, has_denorm_loss = false);
- _STLP_STATIC_CONSTANT(bool, is_iec559 = false);
- _STLP_STATIC_CONSTANT(bool, is_bounded = false);
- _STLP_STATIC_CONSTANT(bool, is_modulo = false);
- _STLP_STATIC_CONSTANT(bool, traps = false);
- _STLP_STATIC_CONSTANT(bool, tinyness_before = false);
-
- static __number _STLP_CALL epsilon() _STLP_NOTHROW { return __number(); }
- static __number _STLP_CALL round_error() _STLP_NOTHROW { return __number(); }
-
- static __number _STLP_CALL infinity() _STLP_NOTHROW { return __number(); }
- static __number _STLP_CALL quiet_NaN() _STLP_NOTHROW { return __number(); }
- static __number _STLP_CALL signaling_NaN() _STLP_NOTHROW { return __number(); }
- static __number _STLP_CALL denorm_min() _STLP_NOTHROW { return __number(); }
-};
-
-// Base class for integers.
-
-#ifdef _STLP_LIMITED_DEFAULT_TEMPLATES
-# ifdef _STLP_LONG_LONG
-# define _STLP_LIMITS_MIN_TYPE _STLP_LONG_LONG
-# define _STLP_LIMITS_MAX_TYPE unsigned _STLP_LONG_LONG
-# else
-# define _STLP_LIMITS_MIN_TYPE long
-# define _STLP_LIMITS_MAX_TYPE unsigned long
-# endif
-#else
-# define _STLP_LIMITS_MIN_TYPE _Int
-# define _STLP_LIMITS_MAX_TYPE _Int
-#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */
-
-template <class _Int,
- _STLP_LIMITS_MIN_TYPE __imin,
- _STLP_LIMITS_MAX_TYPE __imax,
- int __idigits, bool __ismod>
-class _Integer_limits : public _Numeric_limits_base<_Int> {
-public:
-
- static _Int (_STLP_CALL min) () _STLP_NOTHROW { return (_Int)__imin; }
- static _Int (_STLP_CALL max) () _STLP_NOTHROW { return (_Int)__imax; }
-
- _STLP_STATIC_CONSTANT(int, digits = (__idigits < 0) ? ((int)((sizeof(_Int) * (CHAR_BIT))) - ((__imin == 0) ? 0 : 1)) : (__idigits));
- _STLP_STATIC_CONSTANT(int, digits10 = (digits * 301UL) / 1000);
- _STLP_STATIC_CONSTANT(int, radix = 2);
- _STLP_STATIC_CONSTANT(bool, is_specialized = true);
- _STLP_STATIC_CONSTANT(bool, is_signed = (__imin != 0));
- _STLP_STATIC_CONSTANT(bool, is_integer = true);
- _STLP_STATIC_CONSTANT(bool, is_exact = true);
- _STLP_STATIC_CONSTANT(bool, is_bounded = true);
- _STLP_STATIC_CONSTANT(bool, is_modulo = __ismod);
-};
-
-// Base class for floating-point numbers.
-template <class __number,
- int __Digits, int __Digits10,
- int __MinExp, int __MaxExp,
- int __MinExp10, int __MaxExp10,
- bool __IsIEC559,
- float_denorm_style __DenormStyle,
- float_round_style __RoundStyle>
-class _Floating_limits : public _Numeric_limits_base<__number> {
-public:
-
- _STLP_STATIC_CONSTANT(int, digits = __Digits);
- _STLP_STATIC_CONSTANT(int, digits10 = __Digits10);
- _STLP_STATIC_CONSTANT(int, radix = FLT_RADIX);
- _STLP_STATIC_CONSTANT(int, min_exponent = __MinExp);
- _STLP_STATIC_CONSTANT(int, max_exponent = __MaxExp);
- _STLP_STATIC_CONSTANT(int, min_exponent10 = __MinExp10);
- _STLP_STATIC_CONSTANT(int, max_exponent10 = __MaxExp10);
-
- _STLP_STATIC_CONSTANT(float_denorm_style, has_denorm = __DenormStyle);
- _STLP_STATIC_CONSTANT(float_round_style, round_style = __RoundStyle);
-
- _STLP_STATIC_CONSTANT(bool, is_specialized = true);
- _STLP_STATIC_CONSTANT(bool, is_signed = true);
-
- _STLP_STATIC_CONSTANT(bool, has_infinity = true);
-#if (!defined (_STLP_MSVC) || (_STLP_MSVC > 1300)) && \
- (!defined (__BORLANDC__) || (__BORLANDC__ >= 0x590)) && \
- (!defined (_CRAY) || defined (_CRAYIEEE))
- _STLP_STATIC_CONSTANT(bool, has_quiet_NaN = true);
- _STLP_STATIC_CONSTANT(bool, has_signaling_NaN = true);
-#else
- _STLP_STATIC_CONSTANT(bool, has_quiet_NaN = false);
- _STLP_STATIC_CONSTANT(bool, has_signaling_NaN = false);
-#endif
-
- _STLP_STATIC_CONSTANT(bool, is_iec559 = __IsIEC559 && has_infinity && has_quiet_NaN && has_signaling_NaN && (has_denorm == denorm_present));
- _STLP_STATIC_CONSTANT(bool, has_denorm_loss = false);
- _STLP_STATIC_CONSTANT(bool, is_bounded = true);
- _STLP_STATIC_CONSTANT(bool, traps = true);
- _STLP_STATIC_CONSTANT(bool, tinyness_before = false);
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-// Class numeric_limits
-
-// The unspecialized class.
-
-template<class _Tp>
-class numeric_limits : public _STLP_PRIV _Numeric_limits_base<_Tp> {};
-
-// Specializations for all built-in integral types.
-
-#if !defined (_STLP_NO_BOOL)
-_STLP_TEMPLATE_NULL
-class numeric_limits<bool>
- : public _STLP_PRIV _Integer_limits<bool, false, true, 1, false>
-{};
-#endif /* _STLP_NO_BOOL */
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<char>
- : public _STLP_PRIV _Integer_limits<char, CHAR_MIN, CHAR_MAX, -1, true>
-{};
-
-#if !defined (_STLP_NO_SIGNED_BUILTINS)
-_STLP_TEMPLATE_NULL
-class numeric_limits<signed char>
- : public _STLP_PRIV _Integer_limits<signed char, SCHAR_MIN, SCHAR_MAX, -1, true>
-{};
-#endif
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<unsigned char>
- : public _STLP_PRIV _Integer_limits<unsigned char, 0, UCHAR_MAX, -1, true>
-{};
-
-#if !(defined (_STLP_NO_WCHAR_T) || defined (_STLP_WCHAR_T_IS_USHORT))
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<wchar_t>
- : public _STLP_PRIV _Integer_limits<wchar_t, WCHAR_MIN, WCHAR_MAX, -1, true>
-{};
-
-#endif
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<short>
- : public _STLP_PRIV _Integer_limits<short, SHRT_MIN, SHRT_MAX, -1, true>
-{};
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<unsigned short>
- : public _STLP_PRIV _Integer_limits<unsigned short, 0, USHRT_MAX, -1, true>
-{};
-
-#if defined (__xlC__) && (__xlC__ == 0x500)
-# undef INT_MIN
-# define INT_MIN -2147483648
-#endif
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<int>
- : public _STLP_PRIV _Integer_limits<int, INT_MIN, INT_MAX, -1, true>
-{};
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<unsigned int>
- : public _STLP_PRIV _Integer_limits<unsigned int, 0, UINT_MAX, -1, true>
-{};
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<long>
- : public _STLP_PRIV _Integer_limits<long, LONG_MIN, LONG_MAX, -1, true>
-{};
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<unsigned long>
- : public _STLP_PRIV _Integer_limits<unsigned long, 0, ULONG_MAX, -1, true>
-{};
-
-#if defined (_STLP_LONG_LONG)
-
-# if defined (_STLP_MSVC) || defined (__BORLANDC__)
-# define LONGLONG_MAX 0x7fffffffffffffffi64
-# define LONGLONG_MIN (-LONGLONG_MAX-1i64)
-# define ULONGLONG_MAX 0xffffffffffffffffUi64
-# else
-# ifndef LONGLONG_MAX
-# define LONGLONG_MAX 0x7fffffffffffffffLL
-# endif
-# ifndef LONGLONG_MIN
-# define LONGLONG_MIN (-LONGLONG_MAX-1LL)
-# endif
-# ifndef ULONGLONG_MAX
-# define ULONGLONG_MAX 0xffffffffffffffffULL
-# endif
-# endif
-
-# if !defined (__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ <= 96) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 3)
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<_STLP_LONG_LONG>
- : public _STLP_PRIV _Integer_limits<_STLP_LONG_LONG, LONGLONG_MIN, LONGLONG_MAX, -1, true>
-{};
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<unsigned _STLP_LONG_LONG>
- : public _STLP_PRIV _Integer_limits<unsigned _STLP_LONG_LONG, 0, ULONGLONG_MAX, -1, true>
-{};
-# else /* gcc 2.97 (after 2000-11-01), 2.98, 3.0 */
-/*
- newest gcc has new mangling scheme, that has problem
- with generating name [instantiated] of template specialization like
- _Integer_limits<_STLP_LONG_LONG, LONGLONG_MIN, LONGLONG_MAX, -1, true>
- ~~~~~~~~~~~~ ~~~~~~~~~~~~
- Below is code that solve this problem.
- - ptr
- */
-_STLP_TEMPLATE_NULL
-class numeric_limits<_STLP_LONG_LONG>
- : public _STLP_PRIV _Numeric_limits_base<_STLP_LONG_LONG> {
-public:
-
- static _STLP_LONG_LONG (_STLP_CALL min) () _STLP_NOTHROW { return LONGLONG_MIN; }
- static _STLP_LONG_LONG (_STLP_CALL max) () _STLP_NOTHROW { return LONGLONG_MAX; }
-
- _STLP_STATIC_CONSTANT(int, digits = ((int)((sizeof(_STLP_LONG_LONG) * (CHAR_BIT))) - 1));
- _STLP_STATIC_CONSTANT(int, digits10 = (digits * 301UL) / 1000);
- _STLP_STATIC_CONSTANT(int, radix = 2);
- _STLP_STATIC_CONSTANT(bool, is_specialized = true);
- _STLP_STATIC_CONSTANT(bool, is_signed = true);
- _STLP_STATIC_CONSTANT(bool, is_integer = true);
- _STLP_STATIC_CONSTANT(bool, is_exact = true);
- _STLP_STATIC_CONSTANT(bool, is_bounded = true);
- _STLP_STATIC_CONSTANT(bool, is_modulo = true);
-};
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<unsigned _STLP_LONG_LONG>
- : public _STLP_PRIV _Numeric_limits_base<unsigned _STLP_LONG_LONG> {
-public:
-
- static unsigned _STLP_LONG_LONG (_STLP_CALL min) () _STLP_NOTHROW { return 0ULL; }
- static unsigned _STLP_LONG_LONG (_STLP_CALL max) () _STLP_NOTHROW { return ULONGLONG_MAX; }
-
- _STLP_STATIC_CONSTANT(int, digits = ((int)((sizeof(unsigned _STLP_LONG_LONG) * (CHAR_BIT)))));
- _STLP_STATIC_CONSTANT(int, digits10 = (digits * 301UL) / 1000);
- _STLP_STATIC_CONSTANT(int, radix = 2);
- _STLP_STATIC_CONSTANT(bool, is_specialized = true);
- _STLP_STATIC_CONSTANT(bool, is_signed = false);
- _STLP_STATIC_CONSTANT(bool, is_integer = true);
- _STLP_STATIC_CONSTANT(bool, is_exact = true);
- _STLP_STATIC_CONSTANT(bool, is_bounded = true);
- _STLP_STATIC_CONSTANT(bool, is_modulo = true);
-};
-
-# endif /* __GNUC__ > 2000-11-01 */
-
-#endif /* _STLP_LONG_LONG */
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// Specializations for all built-in floating-point types.
-template <class __dummy>
-class _LimG {
-public:
- static float _STLP_CALL get_F_inf();
- static float _STLP_CALL get_F_qNaN();
- static float _STLP_CALL get_F_sNaN();
- static float _STLP_CALL get_F_denormMin();
- static double _STLP_CALL get_D_inf();
- static double _STLP_CALL get_D_qNaN();
- static double _STLP_CALL get_D_sNaN();
- static double _STLP_CALL get_D_denormMin();
-
-#if !defined (_STLP_NO_LONG_DOUBLE)
- static long double _STLP_CALL get_LD_inf();
- static long double _STLP_CALL get_LD_qNaN();
- static long double _STLP_CALL get_LD_sNaN();
- static long double _STLP_CALL get_LD_denormMin();
-#endif
-};
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _LimG<bool>;
-#endif
-
-#if defined (__GNUC__)
-# if defined (__FLT_DENORM_MIN__)
-# define _STLP_FLT_DENORM_MIN __FLT_DENORM_MIN__
-# else
-# define _STLP_FLT_DENORM_STYLE denorm_absent
-# endif
-# if defined (__DBL_DENORM_MIN__)
-# define _STLP_DBL_DENORM_MIN __DBL_DENORM_MIN__
-# else
-# define _STLP_DBL_DENORM_STYLE denorm_absent
-# endif
-# if defined (__LDBL_DENORM_MIN__)
-# define _STLP_LDBL_DENORM_MIN __LDBL_DENORM_MIN__
-# else
-# define _STLP_LDBL_DENORM_STYLE denorm_absent
-# endif
-#endif
-
-/* If compiler do not expose thanks to some macro its status regarding
- * denormalized floating point numbers, we consider that denormalization
- * is present. Unit tests will tell us if compiler do not support them. */
-#if !defined (_STLP_FLT_DENORM_STYLE)
-# define _STLP_FLT_DENORM_STYLE denorm_present
-#endif
-
-#if !defined (_STLP_DBL_DENORM_STYLE)
-# define _STLP_DBL_DENORM_STYLE denorm_present
-#endif
-
-#if !defined (_STLP_LDBL_DENORM_STYLE)
-# define _STLP_LDBL_DENORM_STYLE denorm_present
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<float>
- : public _STLP_PRIV _Floating_limits<float,
- FLT_MANT_DIG, // Binary digits of precision
- FLT_DIG, // Decimal digits of precision
- FLT_MIN_EXP, // Minimum exponent
- FLT_MAX_EXP, // Maximum exponent
- FLT_MIN_10_EXP, // Minimum base 10 exponent
- FLT_MAX_10_EXP, // Maximum base 10 exponent
- true,
- _STLP_FLT_DENORM_STYLE,
- round_to_nearest> {
-public:
- static float (_STLP_CALL min) () _STLP_NOTHROW { return FLT_MIN; }
- static float _STLP_CALL denorm_min() _STLP_NOTHROW
-#if defined (_STLP_FLT_DENORM_MIN)
- { return _STLP_FLT_DENORM_MIN; }
-#else
- { return _STLP_FLT_DENORM_STYLE ? _STLP_PRIV _LimG<bool>::get_F_denormMin() : FLT_MIN; }
-#endif
- static float (_STLP_CALL max) () _STLP_NOTHROW { return FLT_MAX; }
- static float _STLP_CALL epsilon() _STLP_NOTHROW { return FLT_EPSILON; }
- static float _STLP_CALL round_error() _STLP_NOTHROW { return 0.5f; } // Units: ulps.
- static float _STLP_CALL infinity() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_F_inf(); }
- static float _STLP_CALL quiet_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_F_qNaN(); }
- static float _STLP_CALL signaling_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_F_sNaN(); }
-};
-
-#undef _STLP_FLT_DENORM_MIN
-#undef _STLP_FLT_DNORM_STYLE
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<double>
- : public _STLP_PRIV _Floating_limits<double,
- DBL_MANT_DIG, // Binary digits of precision
- DBL_DIG, // Decimal digits of precision
- DBL_MIN_EXP, // Minimum exponent
- DBL_MAX_EXP, // Maximum exponent
- DBL_MIN_10_EXP, // Minimum base 10 exponent
- DBL_MAX_10_EXP, // Maximum base 10 exponent
- true,
- _STLP_DBL_DENORM_STYLE,
- round_to_nearest> {
-public:
- static double (_STLP_CALL min)() _STLP_NOTHROW { return DBL_MIN; }
- static double _STLP_CALL denorm_min() _STLP_NOTHROW
-#if defined (_STLP_DBL_DENORM_MIN)
- { return _STLP_DBL_DENORM_MIN; }
-#else
- { return _STLP_DBL_DENORM_STYLE ? _STLP_PRIV _LimG<bool>::get_D_denormMin() : DBL_MIN; }
-#endif
- static double (_STLP_CALL max)() _STLP_NOTHROW { return DBL_MAX; }
- static double _STLP_CALL epsilon() _STLP_NOTHROW { return DBL_EPSILON; }
- static double _STLP_CALL round_error() _STLP_NOTHROW { return 0.5; } // Units: ulps.
- static double _STLP_CALL infinity() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_D_inf(); }
- static double _STLP_CALL quiet_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_D_qNaN(); }
- static double _STLP_CALL signaling_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_D_sNaN(); }
-};
-
-#if !defined (_STLP_NO_LONG_DOUBLE)
-
-_STLP_TEMPLATE_NULL
-class numeric_limits<long double>
- : public _STLP_PRIV _Floating_limits<long double,
- LDBL_MANT_DIG, // Binary digits of precision
- LDBL_DIG, // Decimal digits of precision
- LDBL_MIN_EXP, // Minimum exponent
- LDBL_MAX_EXP, // Maximum exponent
- LDBL_MIN_10_EXP,// Minimum base 10 exponent
- LDBL_MAX_10_EXP,// Maximum base 10 exponent
- false, // do not conform to iec559
- _STLP_LDBL_DENORM_STYLE,
- round_to_nearest> {
-public:
- static long double (_STLP_CALL min) () _STLP_NOTHROW { return LDBL_MIN; }
- static long double _STLP_CALL denorm_min() _STLP_NOTHROW
-#if defined (_STLP_LDBL_DENORM_MIN)
- { return _STLP_LDBL_DENORM_MIN; }
-#else
- { return _STLP_LDBL_DENORM_STYLE ? _STLP_PRIV _LimG<bool>::get_LD_denormMin() : LDBL_MIN; }
-#endif
- _STLP_STATIC_CONSTANT(bool, is_iec559 = false);
- static long double (_STLP_CALL max) () _STLP_NOTHROW { return LDBL_MAX; }
- static long double _STLP_CALL epsilon() _STLP_NOTHROW { return LDBL_EPSILON; }
- static long double _STLP_CALL round_error() _STLP_NOTHROW { return 0.5l; }
- static long double _STLP_CALL infinity() _STLP_NOTHROW
- //For MSVC, long double is nothing more than an alias for double.
-#if !defined (_STLP_MSVC)
- { return _STLP_PRIV _LimG<bool>::get_LD_inf(); }
-#else
- { return _STLP_PRIV _LimG<bool>::get_D_inf(); }
-#endif
- static long double _STLP_CALL quiet_NaN() _STLP_NOTHROW
-#if !defined (_STLP_MSVC)
- { return _STLP_PRIV _LimG<bool>::get_LD_qNaN(); }
-#else
- { return _STLP_PRIV _LimG<bool>::get_D_qNaN(); }
-#endif
- static long double _STLP_CALL signaling_NaN() _STLP_NOTHROW
-#if !defined (_STLP_MSVC)
- { return _STLP_PRIV _LimG<bool>::get_LD_sNaN(); }
-#else
- { return _STLP_PRIV _LimG<bool>::get_D_sNaN(); }
-#endif
-};
-
-#endif
-
-// We write special values (Inf and NaN) as bit patterns and
-// cast the the appropriate floating-point types.
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_limits.c>
-#endif
-
-#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_list.c b/stlport/stlport/stl/_list.c
deleted file mode 100644
index 86e420b..0000000
--- a/stlport/stlport/stl/_list.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_LIST_C
-#define _STLP_LIST_C
-
-#ifndef _STLP_INTERNAL_LIST_H
-# include <stl/_list.h>
-#endif
-
-#ifndef _STLP_CARRAY_H
-# include <stl/_carray.h>
-#endif
-
-#ifndef _STLP_RANGE_ERRORS_H
-# include <stl/_range_errors.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION)
-template <class _Dummy>
-void _STLP_CALL
-_List_global<_Dummy>::_Transfer(_List_node_base* __position,
- _List_node_base* __first, _List_node_base* __last) {
- if (__position != __last) {
- // Remove [first, last) from its old position.
- __last->_M_prev->_M_next = __position;
- __first->_M_prev->_M_next = __last;
- __position->_M_prev->_M_next = __first;
-
- // Splice [first, last) into its new position.
- _Node_base* __tmp = __position->_M_prev;
- __position->_M_prev = __last->_M_prev;
- __last->_M_prev = __first->_M_prev;
- __first->_M_prev = __tmp;
- }
-}
-#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */
-
-template <class _Tp, class _Alloc>
-void _List_base<_Tp,_Alloc>::clear() {
- _Node* __cur = __STATIC_CAST(_Node*, _M_node._M_data._M_next);
- while (
-#if defined (__BORLANDC__) // runtime error
- __cur &&
-#endif
- __cur != &(_M_node._M_data)) {
- _Node* __tmp = __cur;
- __cur = __STATIC_CAST(_Node*, __cur->_M_next);
- _STLP_STD::_Destroy(&__tmp->_M_data);
- this->_M_node.deallocate(__tmp, 1);
- }
- _M_node._M_data._M_next = &_M_node._M_data;
- _M_node._M_data._M_prev = &_M_node._M_data;
-}
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# define size_type size_t
-#endif
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define list _STLP_PTR_IMPL_NAME(list)
-#elif defined (_STLP_DEBUG)
-# define list _STLP_NON_DBG_NAME(list)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, class _Alloc>
-void list<_Tp, _Alloc>::resize(size_type __new_size, const _Tp& __x) {
- iterator __i = begin();
- size_type __len = 0;
- for ( ; __i != end() && __len < __new_size; ++__i, ++__len);
-
- if (__len == __new_size)
- erase(__i, end());
- else // __i == end()
- insert(end(), __new_size - __len, __x);
-}
-
-template <class _Tp, class _Alloc>
-list<_Tp, _Alloc>& list<_Tp, _Alloc>::operator=(const list<_Tp, _Alloc>& __x) {
- if (this != &__x) {
- iterator __first1 = begin();
- iterator __last1 = end();
- const_iterator __first2 = __x.begin();
- const_iterator __last2 = __x.end();
- while (__first1 != __last1 && __first2 != __last2)
- *__first1++ = *__first2++;
- if (__first2 == __last2)
- erase(__first1, __last1);
- else
- insert(__last1, __first2, __last2);
- }
- return *this;
-}
-
-template <class _Tp, class _Alloc>
-void list<_Tp, _Alloc>::_M_fill_assign(size_type __n, const _Tp& __val) {
- iterator __i = begin();
- for ( ; __i != end() && __n > 0; ++__i, --__n)
- *__i = __val;
- if (__n > 0)
- insert(end(), __n, __val);
- else
- erase(__i, end());
-}
-
-#if !defined (list)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-template <class _Tp, class _Alloc, class _Predicate>
-void _S_remove_if(list<_Tp, _Alloc>& __that, _Predicate __pred) {
- typedef typename list<_Tp, _Alloc>::iterator _Literator;
- _Literator __first = __that.begin();
- _Literator __last = __that.end();
- while (__first != __last) {
- _Literator __next = __first;
- ++__next;
- if (__pred(*__first)) __that.erase(__first);
- __first = __next;
- }
-}
-
-template <class _Tp, class _Alloc, class _BinaryPredicate>
-void _S_unique(list<_Tp, _Alloc>& __that, _BinaryPredicate __binary_pred) {
- typedef typename list<_Tp, _Alloc>::iterator _Literator;
- _Literator __first = __that.begin();
- _Literator __last = __that.end();
- if (__first == __last) return;
- _Literator __next = __first;
- while (++__next != __last) {
- if (__binary_pred(*__first, *__next))
- __that.erase(__next);
- else
- __first = __next;
- __next = __first;
- }
-}
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _S_merge(list<_Tp, _Alloc>& __that, list<_Tp, _Alloc>& __x,
- _StrictWeakOrdering __comp) {
- typedef typename list<_Tp, _Alloc>::iterator _Literator;
- _Literator __first1 = __that.begin();
- _Literator __last1 = __that.end();
- _Literator __first2 = __x.begin();
- _Literator __last2 = __x.end();
- if (__that.get_allocator() == __x.get_allocator()) {
- while (__first1 != __last1 && __first2 != __last2) {
- if (__comp(*__first2, *__first1)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- _Literator __next = __first2;
- _List_global_inst::_Transfer(__first1._M_node, __first2._M_node, (++__next)._M_node);
- __first2 = __next;
- }
- else
- ++__first1;
- }
- if (__first2 != __last2)
- _List_global_inst::_Transfer(__last1._M_node, __first2._M_node, __last2._M_node);
- }
- else {
- while (__first1 != __last1 && __first2 != __last2) {
- if (__comp(*__first2, *__first1)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __first1 = __that.insert(__first1, *__first2);
- }
- else
- ++__first1;
- }
- if (__first2 != __last2) {
- __that.insert(__first1, __first2, __last2);
- }
- __x.clear();
- }
-}
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _S_sort(list<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp) {
- // Do nothing if the list has length 0 or 1.
- if (__that._M_node._M_data._M_next == &__that._M_node._M_data ||
- __that._M_node._M_data._M_next->_M_next == &__that._M_node._M_data)
- return;
-
- list<_Tp, _Alloc> __carry(__that.get_allocator());
- const int NB = 64;
- _STLP_PRIV _CArray<list<_Tp, _Alloc>, NB> __counter(__carry);
- int __fill = 0;
- while (!__that.empty()) {
- __carry.splice(__carry.begin(), __that, __that.begin());
- int __i = 0;
- while (__i < __fill && !__counter[__i].empty()) {
- _S_merge(__counter[__i], __carry, __comp);
- __carry.swap(__counter[__i++]);
- }
- __carry.swap(__counter[__i]);
- if (__i == __fill) {
- ++__fill;
- if (__fill >= NB) {
- //Looks like the list has too many elements to be sorted with this algorithm:
- __stl_throw_overflow_error("list::sort");
- }
- }
- }
-
- for (int __i = 1; __i < __fill; ++__i)
- _S_merge(__counter[__i], __counter[__i - 1], __comp);
- __that.swap(__counter[__fill - 1]);
-}
-
-#if defined (list)
-# undef list
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_LIST_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_list.h b/stlport/stlport/stl/_list.h
deleted file mode 100644
index 6cd3f2b..0000000
--- a/stlport/stlport/stl/_list.h
+++ /dev/null
@@ -1,742 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_LIST_IMPL_H
-#define _STLP_INTERNAL_LIST_IMPL_H
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-struct _List_node_base {
- _List_node_base* _M_next;
- _List_node_base* _M_prev;
-};
-
-template <class _Dummy>
-class _List_global {
-public:
- typedef _List_node_base _Node_base;
- static void _STLP_CALL _Transfer(_Node_base* __pos,
- _Node_base* __first, _Node_base* __last);
-};
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _List_global<bool>;
-#endif
-typedef _List_global<bool> _List_global_inst;
-
-template <class _Tp>
-class _List_node : public _List_node_base {
-public:
- _Tp _M_data;
- __TRIVIAL_STUFF(_List_node)
-};
-
-struct _List_iterator_base {
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef bidirectional_iterator_tag iterator_category;
-
- _List_node_base* _M_node;
-
- _List_iterator_base(_List_node_base* __x) : _M_node(__x) {}
-
- void _M_incr() { _M_node = _M_node->_M_next; }
- void _M_decr() { _M_node = _M_node->_M_prev; }
-};
-
-
-template<class _Tp, class _Traits>
-struct _List_iterator : public _List_iterator_base {
- typedef _Tp value_type;
- typedef typename _Traits::pointer pointer;
- typedef typename _Traits::reference reference;
-
- typedef _List_iterator<_Tp, _Traits> _Self;
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
- typedef _List_iterator<_Tp, _NonConstTraits> iterator;
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef _List_iterator<_Tp, _ConstTraits> const_iterator;
-
- typedef bidirectional_iterator_tag iterator_category;
- typedef _List_node<_Tp> _Node;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-
- explicit _List_iterator(_List_node_base* __x) : _List_iterator_base(__x) {}
- _List_iterator() : _List_iterator_base(0) {}
- //copy constructor for iterator and constructor from iterator for const_iterator
- _List_iterator(const iterator& __x) : _List_iterator_base(__x._M_node) {}
-
- reference operator*() const { return __STATIC_CAST(_Node*, this->_M_node)->_M_data; }
-
- _STLP_DEFINE_ARROW_OPERATOR
-
- _Self& operator++() {
- this->_M_incr();
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- this->_M_incr();
- return __tmp;
- }
- _Self& operator--() {
- this->_M_decr();
- return *this;
- }
- _Self operator--(int) {
- _Self __tmp = *this;
- this->_M_decr();
- return __tmp;
- }
- bool operator==(const_iterator __y ) const {
- return this->_M_node == __y._M_node;
- }
- bool operator!=(const_iterator __y ) const {
- return this->_M_node != __y._M_node;
- }
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Tp, class _Traits>
-struct __type_traits<_STLP_PRIV _List_iterator<_Tp, _Traits> > {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Tp, class _Traits>
-inline _Tp* value_type(const _STLP_PRIV _List_iterator<_Tp, _Traits>&) { return 0; }
-inline bidirectional_iterator_tag iterator_category(const _STLP_PRIV _List_iterator_base&) { return bidirectional_iterator_tag();}
-inline ptrdiff_t* distance_type(const _STLP_PRIV _List_iterator_base&) { return 0; }
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-// Base class that encapsulates details of allocators and helps
-// to simplify EH
-
-template <class _Tp, class _Alloc>
-class _List_base {
-protected:
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef _List_node_base _Node_base;
- typedef _List_node<_Tp> _Node;
- typedef _List_base<_Tp, _Alloc> _Self;
- typedef typename _Alloc_traits<_Node, _Alloc>::allocator_type _Node_allocator_type;
-public:
- typedef _STLP_alloc_proxy<_Node_base, _Node, _Node_allocator_type> _AllocProxy;
- typedef _Alloc allocator_type;
-
- allocator_type get_allocator() const
- { return _STLP_CONVERT_ALLOCATOR((const _Node_allocator_type&)_M_node, _Tp); }
-
- _List_base(const allocator_type& __a) : _M_node(_STLP_CONVERT_ALLOCATOR(__a, _Node), _Node_base())
- { _M_empty_initialize(); }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _List_base(__move_source<_Self> src) :
- _M_node(__move_source<_AllocProxy>(src.get()._M_node)) {
- if (src.get().empty())
- //We force this to empty.
- _M_empty_initialize();
- else {
- src.get()._M_empty_initialize();
- _M_node._M_data._M_prev->_M_next = _M_node._M_data._M_next->_M_prev = &_M_node._M_data;
- }
- }
-#endif
-
- ~_List_base()
- { clear(); }
-
- void clear();
- bool empty() const { return _M_node._M_data._M_next == &_M_node._M_data; }
-
- void _M_empty_initialize() {
- _M_node._M_data._M_next = &_M_node._M_data;
- _M_node._M_data._M_prev = _M_node._M_data._M_next;
- }
-
-public:
- _AllocProxy _M_node;
-};
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define list _STLP_PTR_IMPL_NAME(list)
-#elif defined (_STLP_DEBUG)
-# define list _STLP_NON_DBG_NAME(list)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
-class list;
-
-#if !defined (list)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-// helper functions to reduce code duplication
-template <class _Tp, class _Alloc, class _Predicate>
-void _S_remove_if(list<_Tp, _Alloc>& __that, _Predicate __pred);
-
-template <class _Tp, class _Alloc, class _BinaryPredicate>
-void _S_unique(list<_Tp, _Alloc>& __that, _BinaryPredicate __binary_pred);
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _S_merge(list<_Tp, _Alloc>& __that, list<_Tp, _Alloc>& __x,
- _StrictWeakOrdering __comp);
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _S_sort(list<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp);
-
-#if !defined (list)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, class _Alloc>
-class list : public _STLP_PRIV _List_base<_Tp, _Alloc>
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (list)
- , public __stlport_class<list<_Tp, _Alloc> >
-#endif
-{
- typedef _STLP_PRIV _List_base<_Tp, _Alloc> _Base;
- typedef list<_Tp, _Alloc> _Self;
- typedef _STLP_PRIV _List_node<_Tp> _Node;
- typedef _STLP_PRIV _List_node_base _Node_base;
-public:
- typedef _Tp value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef typename _Base::allocator_type allocator_type;
- typedef bidirectional_iterator_tag _Iterator_category;
-
-public:
- typedef _STLP_PRIV _List_iterator<_Tp, _Nonconst_traits<_Tp> > iterator;
- typedef _STLP_PRIV _List_iterator<_Tp, _Const_traits<_Tp> > const_iterator;
- _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS;
-
-protected:
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- _Node_base* _M_create_node(const_reference __x = value_type()) {
-#else
- _Node_base* _M_create_node(const_reference __x) {
-#endif
- _Node* __p = this->_M_node.allocate(1);
- _STLP_TRY {
- _Copy_Construct(&__p->_M_data, __x);
- }
- _STLP_UNWIND(this->_M_node.deallocate(__p, 1))
- return __p;
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- _Node_base* _M_create_node() {
- _Node* __p = this->_M_node.allocate(1);
- _STLP_TRY {
- _STLP_STD::_Construct(&__p->_M_data);
- }
- _STLP_UNWIND(this->_M_node.deallocate(__p, 1))
- return __p;
- }
-#endif
-
-public:
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit list(size_type __n, const_reference __val = _STLP_DEFAULT_CONSTRUCTED(value_type),
- const allocator_type& __a = allocator_type())
-#else
- explicit list(size_type __n)
- : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type())
- { this->insert(begin(), __n, _STLP_DEFAULT_CONSTRUCTED(value_type)); }
- list(size_type __n, const_reference __val)
- : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type())
- { this->insert(begin(), __n, __val); }
- list(size_type __n, const_reference __val, const allocator_type& __a)
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- : _STLP_PRIV _List_base<_Tp, _Alloc>(__a)
- { this->insert(begin(), __n, __val); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // We don't need any dispatching tricks here, because insert does all of
- // that anyway.
- template <class _InputIterator>
- list(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _STLP_PRIV _List_base<_Tp, _Alloc>(__a)
- { _M_insert(begin(), __first, __last); }
-
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- list(_InputIterator __first, _InputIterator __last)
- : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type())
- { _M_insert(begin(), __first, __last); }
-# endif
-#else /* _STLP_MEMBER_TEMPLATES */
- list(const value_type* __first, const value_type* __last,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _List_base<_Tp, _Alloc>(__a)
- { _M_insert(begin(), __first, __last); }
- list(const_iterator __first, const_iterator __last,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _List_base<_Tp, _Alloc>(__a)
- { _M_insert(begin(), __first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit list(const allocator_type& __a = allocator_type())
-#else
- list()
- : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type()) {}
- list(const allocator_type& __a)
-#endif
- : _STLP_PRIV _List_base<_Tp, _Alloc>(__a) {}
-
- list(const _Self& __x) : _STLP_PRIV _List_base<_Tp, _Alloc>(__x.get_allocator())
- { _M_insert(begin(), __x.begin(), __x.end()); }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- list(__move_source<_Self> src)
- : _STLP_PRIV _List_base<_Tp, _Alloc>(__move_source<_Base>(src.get())) {}
-#endif
-
- ~list() {}
-
- _Self& operator = (const _Self& __x);
-
- iterator begin() { return iterator(this->_M_node._M_data._M_next); }
- const_iterator begin() const { return const_iterator(this->_M_node._M_data._M_next); }
-
- iterator end() { return iterator(&this->_M_node._M_data); }
- const_iterator end() const { return const_iterator(__CONST_CAST(_Node_base*, &this->_M_node._M_data)); }
-
- reverse_iterator rbegin() { return reverse_iterator(end()); }
- const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
-
- reverse_iterator rend() { return reverse_iterator(begin()); }
- const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
-
- size_type size() const {
- size_type __result = _STLP_STD::distance(begin(), end());
- return __result;
- }
- size_type max_size() const { return size_type(-1); }
-
- reference front() { return *begin(); }
- const_reference front() const { return *begin(); }
- reference back() { return *(--end()); }
- const_reference back() const { return *(--end()); }
-
-private:
- void _M_swap_aux(_Self& __x) {
- __x._M_node._M_swap_alloc(this->_M_node);
- __x._M_node._M_data._M_next = this->_M_node._M_data._M_next;
- __x._M_node._M_data._M_next->_M_prev = &__x._M_node._M_data;
- __x._M_node._M_data._M_prev = this->_M_node._M_data._M_prev;
- __x._M_node._M_data._M_prev->_M_next = &__x._M_node._M_data;
- this->_M_empty_initialize();
- }
-
-public:
- void swap(_Self& __x) {
- if (__x.empty()) {
- if (this->empty()) {
- return;
- }
- this->_M_swap_aux(__x);
- } else if (this->empty()) {
- __x._M_swap_aux(*this);
- } else {
- this->_M_node.swap(__x._M_node);
- _STLP_STD::swap(this->_M_node._M_data._M_prev->_M_next, __x._M_node._M_data._M_prev->_M_next);
- _STLP_STD::swap(this->_M_node._M_data._M_next->_M_prev, __x._M_node._M_data._M_next->_M_prev);
- }
- }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
-#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS)
- iterator insert(iterator __pos, const_reference __x = value_type())
-#else
- iterator insert(iterator __pos, const_reference __x)
-#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
- {
- _Node_base* __tmp = _M_create_node(__x);
- _Node_base* __n = __pos._M_node;
- _Node_base* __p = __n->_M_prev;
- __tmp->_M_next = __n;
- __tmp->_M_prev = __p;
- __p->_M_next = __tmp;
- __n->_M_prev = __tmp;
- return iterator(__tmp);
- }
-
-private:
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void _M_insert(iterator __pos, _InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_insert_dispatch(__pos, __first, __last, _Integral());
- }
-
- // Check whether it's an integral type. If so, it's not an iterator.
- template<class _Integer>
- void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
- const __true_type& /*_IsIntegral*/) {
- _M_fill_insert(__pos, __n, __x);
- }
- template <class _InputIter>
- void _M_insert_dispatch(iterator __pos,
- _InputIter __first, _InputIter __last,
- const __false_type& /*_IsIntegral*/) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void _M_insert(iterator __pos, const value_type* __first, const value_type* __last) {
- for (; __first != __last; ++__first)
- insert(__pos, *__first);
- }
- void _M_insert(iterator __pos, const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- //We use a temporary list to avoid the auto reference troubles (infinite loop)
- for (; __first != __last; ++__first)
- insert(__pos, *__first);
- }
-
-public:
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(iterator __pos, _InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_splice_insert_dispatch(__pos, __first, __last, _Integral());
- }
-
-private:
- // Check whether it's an integral type. If so, it's not an iterator.
- template<class _Integer>
- void _M_splice_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
- const __true_type& /*_IsIntegral*/) {
- _M_fill_insert(__pos, __n, __x);
- }
- template <class _InputIter>
- void _M_splice_insert_dispatch(iterator __pos,
- _InputIter __first, _InputIter __last,
- const __false_type& /*_IsIntegral*/) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void insert(iterator __pos, const value_type* __first, const value_type* __last) {
- _Self __tmp(__first, __last, this->get_allocator());
- _STLP_ASSERT(__tmp.get_allocator() == this->get_allocator())
- splice(__pos, __tmp);
- }
- void insert(iterator __pos, const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- //We use a temporary list to avoid the auto reference troubles (infinite loop)
- _Self __tmp(__first, __last, this->get_allocator());
- splice(__pos, __tmp);
- }
-
-public:
- void insert(iterator __pos, size_type __n, const_reference __x)
- { _M_fill_insert(__pos, __n, __x); }
-
-private:
- void _M_fill_insert(iterator __pos, size_type __n, const_reference __x) {
- for ( ; __n > 0; --__n)
- insert(__pos, __x);
- }
-
-public:
- void push_front(const_reference __x) { insert(begin(), __x); }
- void push_back (const_reference __x) { insert(end(), __x); }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- iterator insert(iterator __pos)
- { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(value_type)); }
- void push_front() {insert(begin());}
- void push_back() {insert(end());}
-# endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-
- iterator erase(iterator __pos) {
- _Node_base* __next_node = __pos._M_node->_M_next;
- _Node_base* __prev_node = __pos._M_node->_M_prev;
- _Node* __n = __STATIC_CAST(_Node*, __pos._M_node);
- __prev_node->_M_next = __next_node;
- __next_node->_M_prev = __prev_node;
- _STLP_STD::_Destroy(&__n->_M_data);
- this->_M_node.deallocate(__n, 1);
- return iterator(__next_node);
- }
-
- iterator erase(iterator __first, iterator __last) {
- while (__first != __last)
- erase(__first++);
- return __last;
- }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type __new_size, const_reference __x = value_type());
-#else
- void resize(size_type __new_size, const_reference __x);
- void resize(size_type __new_size)
- { this->resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(value_type)); }
-#endif /*!_STLP_DONT_SUP_DFLT_PARAM*/
-
- void pop_front() { erase(begin()); }
- void pop_back() {
- iterator __tmp = end();
- erase(--__tmp);
- }
-
-public:
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- void assign(size_type __n, const_reference __val) { _M_fill_assign(__n, __val); }
-
- void _M_fill_assign(size_type __n, const_reference __val);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void assign(_InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-
- template <class _Integer>
- void _M_assign_dispatch(_Integer __n, _Integer __val,
- const __true_type& /*_IsIntegral*/) {
- _M_fill_assign(__n, __val);
- }
-
- template <class _InputIterator>
- void _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2,
- const __false_type& /*_IsIntegral*/) {
-#else
- void assign(const value_type *__first2, const value_type *__last2) {
- iterator __first1 = begin();
- iterator __last1 = end();
- for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
- *__first1 = *__first2;
- if (__first2 == __last2)
- erase(__first1, __last1);
- else
- insert(__last1, __first2, __last2);
- }
- void assign(const_iterator __first2, const_iterator __last2) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- iterator __first1 = begin();
- iterator __last1 = end();
- for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
- *__first1 = *__first2;
- if (__first2 == __last2)
- erase(__first1, __last1);
- else
- insert(__last1, __first2, __last2);
- }
-
-public:
- void splice(iterator __pos, _Self& __x) {
- if (!__x.empty()) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _List_global_inst::_Transfer(__pos._M_node, __x.begin()._M_node, __x.end()._M_node);
- }
- else {
- insert(__pos, __x.begin(), __x.end());
- __x.clear();
- }
- }
- }
- void splice(iterator __pos, _Self& __x, iterator __i) {
- iterator __j = __i;
- ++__j;
- if (__pos == __i || __pos == __j) return;
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _List_global_inst::_Transfer(__pos._M_node, __i._M_node, __j._M_node);
- }
- else {
- insert(__pos, *__i);
- __x.erase(__i);
- }
- }
- void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) {
- if (__first != __last) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _List_global_inst::_Transfer(__pos._M_node, __first._M_node, __last._M_node);
- }
- else {
- insert(__pos, __first, __last);
- __x.erase(__first, __last);
- }
- }
- }
-
- void remove(const_reference __val) {
- iterator __first = begin();
- iterator __last = end();
- while (__first != __last) {
- iterator __next = __first;
- ++__next;
- if (__val == *__first) erase(__first);
- __first = __next;
- }
- }
-
- void unique()
- { _STLP_PRIV _S_unique(*this, equal_to<value_type>()); }
-
- void merge(_Self& __x)
- { _STLP_PRIV _S_merge(*this, __x, less<value_type>()); }
-
- void reverse() {
- _Node_base* __p = &this->_M_node._M_data;
- _Node_base* __tmp = __p;
- do {
- _STLP_STD::swap(__tmp->_M_next, __tmp->_M_prev);
- __tmp = __tmp->_M_prev; // Old next node is now prev.
- } while (__tmp != __p);
- }
-
- void sort()
- { _STLP_PRIV _S_sort(*this, less<value_type>()); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Predicate>
- void remove_if(_Predicate __pred)
- { _STLP_PRIV _S_remove_if(*this, __pred); }
- template <class _BinaryPredicate>
- void unique(_BinaryPredicate __binary_pred)
- { _STLP_PRIV _S_unique(*this, __binary_pred); }
-
- template <class _StrictWeakOrdering>
- void merge(_Self& __x,
- _StrictWeakOrdering __comp) {
- _STLP_PRIV _S_merge(*this, __x, __comp);
- }
-
- template <class _StrictWeakOrdering>
- void sort(_StrictWeakOrdering __comp)
- { _STLP_PRIV _S_sort(*this, __comp); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-};
-
-#if defined (list)
-# undef list
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_list.c>
-#endif
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# include <stl/pointers/_list.h>
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_list.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp, class _Alloc>
-_STLP_INLINE_LOOP bool _STLP_CALL
-operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) {
- typedef typename list<_Tp,_Alloc>::const_iterator const_iterator;
- const_iterator __end1 = __x.end();
- const_iterator __end2 = __y.end();
-
- const_iterator __i1 = __x.begin();
- const_iterator __i2 = __y.begin();
- while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) {
- ++__i1;
- ++__i2;
- }
- return __i1 == __end1 && __i2 == __end2;
-}
-
-#define _STLP_EQUAL_OPERATOR_SPECIALIZED
-#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER list<_Tp, _Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-#undef _STLP_EQUAL_OPERATOR_SPECIALIZED
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Tp, class _Alloc>
-struct __move_traits<list<_Tp, _Alloc> > {
- typedef __true_type implemented;
- typedef typename __move_traits<_Alloc>::complete complete;
-};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_LIST_IMPL_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_map.h b/stlport/stlport/stl/_map.h
deleted file mode 100644
index bf46a5d..0000000
--- a/stlport/stlport/stl/_map.h
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_MAP_H
-#define _STLP_INTERNAL_MAP_H
-
-#ifndef _STLP_INTERNAL_TREE_H
-# include <stl/_tree.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-//Specific iterator traits creation
-_STLP_CREATE_ITERATOR_TRAITS(MapTraitsT, traits)
-
-template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key> ),
- _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
-class map
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<map<_Key, _Tp, _Compare, _Alloc> >
-#endif
-{
- typedef map<_Key, _Tp, _Compare, _Alloc> _Self;
-public:
-
-// typedefs:
-
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<_STLP_CONST _Key, _Tp> value_type;
- typedef _Compare key_compare;
-
- class value_compare
- : public binary_function<value_type, value_type, bool> {
- friend class map<_Key,_Tp,_Compare,_Alloc>;
- protected :
- //c is a Standard name (23.3.1), do no make it STLport naming convention compliant.
- _Compare comp;
- value_compare(_Compare __c) : comp(__c) {}
- public:
- bool operator()(const value_type& __x, const value_type& __y) const
- { return comp(__x.first, __y.first); }
- };
-
-protected:
- typedef _STLP_PRIV _MapTraitsT<value_type> _MapTraits;
-
-public:
- //Following typedef have to be public for __move_traits specialization.
- typedef _STLP_PRIV _Rb_tree<key_type, key_compare,
- value_type, _STLP_SELECT1ST(value_type, _Key),
- _MapTraits, _Alloc> _Rep_type;
-
- typedef typename _Rep_type::pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::reference reference;
- typedef typename _Rep_type::const_reference const_reference;
- typedef typename _Rep_type::iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
-private:
- _Rep_type _M_t; // red-black tree representing map
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
- // allocation/deallocation
- map() : _M_t(_Compare(), allocator_type()) {}
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit map(const _Compare& __comp,
- const allocator_type& __a = allocator_type())
-#else
- explicit map(const _Compare& __comp)
- : _M_t(__comp, allocator_type()) {}
- explicit map(const _Compare& __comp, const allocator_type& __a)
-#endif
- : _M_t(__comp, __a) {}
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- map(_InputIterator __first, _InputIterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
- template <class _InputIterator>
- map(_InputIterator __first, _InputIterator __last, const _Compare& __comp,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
-
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- map(_InputIterator __first, _InputIterator __last, const _Compare& __comp)
- : _M_t(__comp, allocator_type()) { _M_t.insert_unique(__first, __last); }
-# endif
-
-#else
- map(const value_type* __first, const value_type* __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
- map(const value_type* __first,
- const value_type* __last, const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
-
- map(const_iterator __first, const_iterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
- map(const_iterator __first, const_iterator __last, const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- map(const _Self& __x) : _M_t(__x._M_t) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- map(__move_source<_Self> src)
- : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {}
-#endif
-
- _Self& operator=(const _Self& __x) {
- _M_t = __x._M_t;
- return *this;
- }
-
- // accessors:
- key_compare key_comp() const { return _M_t.key_comp(); }
- value_compare value_comp() const { return value_compare(_M_t.key_comp()); }
- allocator_type get_allocator() const { return _M_t.get_allocator(); }
-
- iterator begin() { return _M_t.begin(); }
- const_iterator begin() const { return _M_t.begin(); }
- iterator end() { return _M_t.end(); }
- const_iterator end() const { return _M_t.end(); }
- reverse_iterator rbegin() { return _M_t.rbegin(); }
- const_reverse_iterator rbegin() const { return _M_t.rbegin(); }
- reverse_iterator rend() { return _M_t.rend(); }
- const_reverse_iterator rend() const { return _M_t.rend(); }
- bool empty() const { return _M_t.empty(); }
- size_type size() const { return _M_t.size(); }
- size_type max_size() const { return _M_t.max_size(); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- _Tp& operator[](const _KT& __k) {
- iterator __i = lower_bound(__k);
- // __i->first is greater than or equivalent to __k.
- if (__i == end() || key_comp()(__k, (*__i).first))
- __i = insert(__i, value_type(__k, _STLP_DEFAULT_CONSTRUCTED(_Tp)));
- return (*__i).second;
- }
- void swap(_Self& __x) { _M_t.swap(__x._M_t); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- // insert/erase
- pair<iterator,bool> insert(const value_type& __x)
- { return _M_t.insert_unique(__x); }
- iterator insert(iterator __pos, const value_type& __x)
- { return _M_t.insert_unique(__pos, __x); }
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- void insert(_InputIterator __first, _InputIterator __last)
- { _M_t.insert_unique(__first, __last); }
-#else
- void insert(const value_type* __first, const value_type* __last)
- { _M_t.insert_unique(__first, __last); }
- void insert(const_iterator __first, const_iterator __last)
- { _M_t.insert_unique(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- void erase(iterator __pos) { _M_t.erase(__pos); }
- size_type erase(const key_type& __x) { return _M_t.erase_unique(__x); }
- void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); }
- void clear() { _M_t.clear(); }
-
- // map operations:
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __x) { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __x) const { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __x) const { return _M_t.find(__x) == _M_t.end() ? 0 : 1; }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator,iterator> equal_range(const _KT& __x)
- { return _M_t.equal_range_unique(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator,const_iterator> equal_range(const _KT& __x) const
- { return _M_t.equal_range_unique(__x); }
-};
-
-//Specific iterator traits creation
-_STLP_CREATE_ITERATOR_TRAITS(MultimapTraitsT, traits)
-
-template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key> ),
- _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
-class multimap
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<multimap<_Key, _Tp, _Compare, _Alloc> >
-#endif
-{
- typedef multimap<_Key, _Tp, _Compare, _Alloc> _Self;
-public:
-
-// typedefs:
-
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<_STLP_CONST _Key, _Tp> value_type;
- typedef _Compare key_compare;
-
- class value_compare : public binary_function<value_type, value_type, bool> {
- friend class multimap<_Key,_Tp,_Compare,_Alloc>;
- protected:
- //comp is a Standard name (23.3.2), do no make it STLport naming convention compliant.
- _Compare comp;
- value_compare(_Compare __c) : comp(__c) {}
- public:
- bool operator()(const value_type& __x, const value_type& __y) const
- { return comp(__x.first, __y.first); }
- };
-
-protected:
- //Specific iterator traits creation
- typedef _STLP_PRIV _MultimapTraitsT<value_type> _MultimapTraits;
-
-public:
- //Following typedef have to be public for __move_traits specialization.
- typedef _STLP_PRIV _Rb_tree<key_type, key_compare,
- value_type, _STLP_SELECT1ST(value_type, _Key),
- _MultimapTraits, _Alloc> _Rep_type;
-
- typedef typename _Rep_type::pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::reference reference;
- typedef typename _Rep_type::const_reference const_reference;
- typedef typename _Rep_type::iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
-private:
- _Rep_type _M_t; // red-black tree representing multimap
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
- // allocation/deallocation
- multimap() : _M_t(_Compare(), allocator_type()) { }
- explicit multimap(const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { }
-
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- multimap(_InputIterator __first, _InputIterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
-# ifdef _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
- template <class _InputIterator>
- multimap(_InputIterator __first, _InputIterator __last,
- const _Compare& __comp)
- : _M_t(__comp, allocator_type()) { _M_t.insert_equal(__first, __last); }
-# endif
- template <class _InputIterator>
- multimap(_InputIterator __first, _InputIterator __last,
- const _Compare& __comp,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
-#else
- multimap(const value_type* __first, const value_type* __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
- multimap(const value_type* __first, const value_type* __last,
- const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
-
- multimap(const_iterator __first, const_iterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
- multimap(const_iterator __first, const_iterator __last,
- const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- multimap(const _Self& __x) : _M_t(__x._M_t) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- multimap(__move_source<_Self> src)
- : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {}
-#endif
-
- _Self& operator=(const _Self& __x) {
- _M_t = __x._M_t;
- return *this;
- }
-
- // accessors:
-
- key_compare key_comp() const { return _M_t.key_comp(); }
- value_compare value_comp() const { return value_compare(_M_t.key_comp()); }
- allocator_type get_allocator() const { return _M_t.get_allocator(); }
-
- iterator begin() { return _M_t.begin(); }
- const_iterator begin() const { return _M_t.begin(); }
- iterator end() { return _M_t.end(); }
- const_iterator end() const { return _M_t.end(); }
- reverse_iterator rbegin() { return _M_t.rbegin(); }
- const_reverse_iterator rbegin() const { return _M_t.rbegin(); }
- reverse_iterator rend() { return _M_t.rend(); }
- const_reverse_iterator rend() const { return _M_t.rend(); }
- bool empty() const { return _M_t.empty(); }
- size_type size() const { return _M_t.size(); }
- size_type max_size() const { return _M_t.max_size(); }
- void swap(_Self& __x) { _M_t.swap(__x._M_t); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- // insert/erase
- iterator insert(const value_type& __x) { return _M_t.insert_equal(__x); }
- iterator insert(iterator __pos, const value_type& __x) { return _M_t.insert_equal(__pos, __x); }
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __first, _InputIterator __last)
- { _M_t.insert_equal(__first, __last); }
-#else
- void insert(const value_type* __first, const value_type* __last)
- { _M_t.insert_equal(__first, __last); }
- void insert(const_iterator __first, const_iterator __last)
- { _M_t.insert_equal(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
- void erase(iterator __pos) { _M_t.erase(__pos); }
- size_type erase(const key_type& __x) { return _M_t.erase(__x); }
- void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); }
- void clear() { _M_t.clear(); }
-
- // multimap operations:
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __x) { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __x) const { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __x) const { return _M_t.count(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator,iterator> equal_range(const _KT& __x)
- { return _M_t.equal_range(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator,const_iterator> equal_range(const _KT& __x) const
- { return _M_t.equal_range(__x); }
-};
-
-#define _STLP_TEMPLATE_HEADER template <class _Key, class _Tp, class _Compare, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER map<_Key,_Tp,_Compare,_Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#define _STLP_TEMPLATE_CONTAINER multimap<_Key,_Tp,_Compare,_Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-struct __move_traits<map<_Key,_Tp,_Compare,_Alloc> > :
- _STLP_PRIV __move_traits_aux<typename map<_Key,_Tp,_Compare,_Alloc>::_Rep_type>
-{};
-
-template <class _Key, class _Tp, class _Compare, class _Alloc>
-struct __move_traits<multimap<_Key,_Tp,_Compare,_Alloc> > :
- _STLP_PRIV __move_traits_aux<typename multimap<_Key,_Tp,_Compare,_Alloc>::_Rep_type>
-{};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/stl/_mbstate_t.h b/stlport/stlport/stl/_mbstate_t.h
deleted file mode 100644
index e6a3e75..0000000
--- a/stlport/stlport/stl/_mbstate_t.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_MBSTATE_T
-#define _STLP_INTERNAL_MBSTATE_T
-
-#if (defined (__OpenBSD__) || defined (__FreeBSD__) || defined (__hpux)) && defined (__GNUC__) && !defined (_GLIBCPP_HAVE_MBSTATE_T)
-# define _STLP_CPP_MBSTATE_T /* mbstate_t defined in native <cwchar>, so not defined in C! */
-#endif
-
-#if defined (_STLP_NO_NATIVE_MBSTATE_T) || defined (_STLP_CPP_MBSTATE_T) && !defined (_MBSTATE_T)
-# define _STLP_USE_OWN_MBSTATE_T
-# define _MBSTATE_T
-#endif
-
-#if defined (_STLP_USE_OWN_MBSTATE_T)
-# if !defined (_STLP_CPP_MBSTATE_T) || !defined (__cplusplus) || !defined (_STLP_USE_NEW_C_HEADERS)
-typedef int mbstate_t;
-# endif
-
-# if !defined (_STLP_CPP_MBSTATE_T) && defined (__cplusplus) && defined (_STLP_USE_NAMESPACES)
-_STLP_BEGIN_NAMESPACE
-using ::mbstate_t;
-_STLP_END_NAMESPACE
-# endif
-
-#endif /* _STLP_USE_OWN_MBSTATE_T */
-
-#endif /* _STLP_INTERNAL_MBSTATE_T */
diff --git a/stlport/stlport/stl/_move_construct_fwk.h b/stlport/stlport/stl/_move_construct_fwk.h
deleted file mode 100644
index 4a85fe3..0000000
--- a/stlport/stlport/stl/_move_construct_fwk.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_MOVE_CONSTRUCT_FWK_H
-#define _STLP_MOVE_CONSTRUCT_FWK_H
-
-#ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-/*************************************************************
- * Move constructor framework
- *************************************************************/
-
-/*************************************************************
- *Partial move:
- *The source HAS to be a valid instance after the move!
- *************************************************************/
-template <class _Tp>
-class __move_source {
-public:
- explicit __move_source (_Tp &_src) : _M_data(_src)
- {}
-
- _Tp& get() const
- { return _M_data; }
-private:
- _Tp &_M_data;
-
- //We explicitely forbid assignment to avoid warning:
- typedef __move_source<_Tp> _Self;
- _Self& operator = (_Self const&);
-};
-
-//Class used to signal move constructor support, implementation and type.
-template <class _Tp>
-struct __move_traits {
- /*
- * implemented tells if a the special move constructor has to be called or the classic
- * copy constructor is just fine. Most of the time the copy constructor is fine only
- * if the following info is true.
- */
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && \
- !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && \
- !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename _IsSTLportClass<_Tp>::_Ret implemented;
-#else
- typedef __false_type implemented;
-#endif
- /*
- * complete tells if the move is complete or partial, that is to say, does the source
- * needs to be destroyed once it has been moved.
- */
-# if defined (__BORLANDC__) && (__BORLANDC__ >= 0x564)
- typedef __type_traits<_Tp>::has_trivial_destructor _TpMoveComplete;
- typedef typename __bool2type<__type2bool<_TpMoveComplete>::_Ret>::_Ret complete;
-# else
- typedef typename __type_traits<_Tp>::has_trivial_destructor complete;
-# endif
-};
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-/*
- * This struct should never be used if the user has not explicitely stipulated
- * that its class support the full move concept. To check that the return type
- * in such a case will be __invalid_source<_Tp> to generate a compile error
- * revealing the configuration problem.
- */
-template <class _Tp>
-struct _MoveSourceTraits {
- typedef typename __move_traits<_Tp>::implemented _MvImpRet;
-#if defined (__BORLANDC__)
- typedef typename __selectT<_MvImpRet,
-#else
- enum {_MvImp = __type2bool<_MvImpRet>::_Ret};
- typedef typename __select<_MvImp,
-#endif
- __move_source<_Tp>,
- _Tp const&>::_Ret _Type;
-};
-
-//The helper function
-template <class _Tp>
-inline _STLP_TYPENAME_ON_RETURN_TYPE _MoveSourceTraits<_Tp>::_Type
-_AsMoveSource (_Tp &src) {
- typedef typename _MoveSourceTraits<_Tp>::_Type _SrcType;
- return _SrcType(src);
-}
-
-//Helper structs used for many class.
-template <class _Tp>
-struct __move_traits_aux {
- typedef typename __move_traits<_Tp>::implemented implemented;
- typedef typename __move_traits<_Tp>::complete complete;
-};
-
-template <class _Tp1, class _Tp2>
-struct __move_traits_aux2 {
- typedef __move_traits<_Tp1> _MoveTraits1;
- typedef __move_traits<_Tp2> _MoveTraits2;
-
- typedef typename _Lor2<typename _MoveTraits1::implemented,
- typename _MoveTraits2::implemented>::_Ret implemented;
- typedef typename _Land2<typename _MoveTraits1::complete,
- typename _MoveTraits2::complete>::_Ret complete;
-};
-
-/*
- * Most of the time a class implement a move constructor but its use depends
- * on a third party, this is what the following struct are for.
- */
-template <class _Tp>
-struct __move_traits_help {
- typedef __true_type implemented;
- typedef typename __move_traits<_Tp>::complete complete;
-};
-
-template <class _Tp1, class _Tp2>
-struct __move_traits_help1 {
- typedef __move_traits<_Tp1> _MoveTraits1;
- typedef __move_traits<_Tp2> _MoveTraits2;
-
- typedef typename _Lor2<typename _MoveTraits1::implemented,
- typename _MoveTraits2::implemented>::_Ret implemented;
- typedef typename _Land2<typename _MoveTraits1::complete,
- typename _MoveTraits2::complete>::_Ret complete;
-};
-
-template <class _Tp1, class _Tp2>
-struct __move_traits_help2 {
- typedef __move_traits<_Tp1> _MoveTraits1;
- typedef __move_traits<_Tp2> _MoveTraits2;
-
- typedef __true_type implemented;
- typedef typename _Land2<typename _MoveTraits1::complete,
- typename _MoveTraits2::complete>::_Ret complete;
-};
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_MOVE_CONSTRUCT_FWK_H */
diff --git a/stlport/stlport/stl/_new.h b/stlport/stlport/stl/_new.h
deleted file mode 100644
index 94094cf..0000000
--- a/stlport/stlport/stl/_new.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_NEW
-#define _STLP_INTERNAL_NEW
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-// size_t
-# include <stl/_cstddef.h>
-#endif
-
-#if defined (__BORLANDC__) && (__BORLANDC__ < 0x570)
-// new.h uses ::malloc ;(
-# include _STLP_NATIVE_CPP_C_HEADER(cstdlib)
-using _STLP_VENDOR_CSTD::malloc;
-#endif
-
-#if !defined (_STLP_NO_NEW_NEW_HEADER)
-// eMbedded Visual C++ .NET unfortunately uses _INC_NEW for both <new.h> and <new>
-// we undefine the symbol to get the stuff in the SDK's <new>
-# if defined (_STLP_WCE_NET) && defined (_INC_NEW)
-# undef _INC_NEW
-# endif
-
-# if defined (new)
-/* STLport cannot replace native Std library new header if new is a macro,
- * please define new macro after <new> header inclusion.
- */
-# error Cannot include native new header as new is a macro.
-# endif
-
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <new>
-# else
-# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
-# endif
-#else
-# include <new.h>
-#endif
-
-#if defined (_STLP_NO_BAD_ALLOC) && !defined (_STLP_NEW_DONT_THROW_BAD_ALLOC)
-# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
-#endif
-
-#if defined (_STLP_USE_EXCEPTIONS) && defined (_STLP_NEW_DONT_THROW_BAD_ALLOC)
-
-# ifndef _STLP_INTERNAL_EXCEPTION
-# include <stl/_exception.h>
-# endif
-
-_STLP_BEGIN_NAMESPACE
-
-# if defined (_STLP_NO_BAD_ALLOC)
-struct nothrow_t {};
-# define nothrow nothrow_t()
-# endif
-
-/*
- * STLport own bad_alloc exception to be used if the native C++ library
- * do not define it or when the new operator do not throw it to avoid
- * a useless library dependency.
- */
-class bad_alloc : public exception {
-public:
- bad_alloc () _STLP_NOTHROW_INHERENTLY { }
- bad_alloc(const bad_alloc&) _STLP_NOTHROW_INHERENTLY { }
- bad_alloc& operator=(const bad_alloc&) _STLP_NOTHROW_INHERENTLY {return *this;}
- ~bad_alloc () _STLP_NOTHROW_INHERENTLY { }
- const char* what() const _STLP_NOTHROW_INHERENTLY { return "bad alloc"; }
-};
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_USE_EXCEPTIONS && (_STLP_NO_BAD_ALLOC || _STLP_NEW_DONT_THROW_BAD_ALLOC) */
-
-#if defined (_STLP_USE_OWN_NAMESPACE)
-
-_STLP_BEGIN_NAMESPACE
-
-# if !defined (_STLP_NEW_DONT_THROW_BAD_ALLOC)
-using _STLP_VENDOR_EXCEPT_STD::bad_alloc;
-# endif
-
-# if !defined (_STLP_NO_BAD_ALLOC)
-using _STLP_VENDOR_EXCEPT_STD::nothrow_t;
-using _STLP_VENDOR_EXCEPT_STD::nothrow;
-# if defined (_STLP_GLOBAL_NEW_HANDLER)
-using ::new_handler;
-using ::set_new_handler;
-# else
-using _STLP_VENDOR_EXCEPT_STD::new_handler;
-using _STLP_VENDOR_EXCEPT_STD::set_new_handler;
-# endif
-# endif /* !_STLP_NO_BAD_ALLOC */
-
-_STLP_END_NAMESPACE
-#endif /* _STLP_USE_OWN_NAMESPACE */
-
-#ifndef _STLP_THROW_BAD_ALLOC
-# if !defined (_STLP_USE_EXCEPTIONS)
-# ifndef _STLP_INTERNAL_CSTDIO
-# include <stl/_cstdio.h>
-# endif
-# define _STLP_THROW_BAD_ALLOC puts("out of memory\n"); exit(1)
-# else
-# define _STLP_THROW_BAD_ALLOC _STLP_THROW(_STLP_STD::bad_alloc())
-# endif
-#endif
-
-#if defined (_STLP_NO_NEW_NEW_HEADER) || defined (_STLP_NEW_DONT_THROW_BAD_ALLOC)
-# define _STLP_CHECK_NULL_ALLOC(__x) void* __y = __x; if (__y == 0) { _STLP_THROW_BAD_ALLOC; } return __y
-#else
-# define _STLP_CHECK_NULL_ALLOC(__x) return __x
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if ((defined (__IBMCPP__) || defined (__OS400__) || defined (__xlC__) || defined (qTidyHeap)) && defined (_STLP_DEBUG_ALLOC))
-inline void* _STLP_CALL __stl_new(size_t __n) { _STLP_CHECK_NULL_ALLOC(::operator new(__n, __FILE__, __LINE__)); }
-inline void _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p, __FILE__, __LINE__); }
-#else
-inline void* _STLP_CALL __stl_new(size_t __n) { _STLP_CHECK_NULL_ALLOC(::operator new(__n)); }
-inline void _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p); }
-#endif
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_NEW */
-
-/*
- * Local Variables:
- * mode:C++
- * End:
- */
diff --git a/stlport/stlport/stl/_pair.h b/stlport/stlport/stl/_pair.h
deleted file mode 100644
index 7038bb1..0000000
--- a/stlport/stlport/stl/_pair.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_PAIR_H
-#define _STLP_INTERNAL_PAIR_H
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-# endif
-
-# if !defined (_STLP_MOVE_CONSTRUCT_FWK_H) && !defined (_STLP_NO_MOVE_SEMANTIC)
-# include <stl/_move_construct_fwk.h>
-# endif
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _T1, class _T2>
-struct pair {
- typedef _T1 first_type;
- typedef _T2 second_type;
-
- _T1 first;
- _T2 second;
-#if defined (_STLP_CONST_CONSTRUCTOR_BUG)
- pair() {}
-#else
- pair() : first(_T1()), second(_T2()) {}
-#endif
- pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _U1, class _U2>
- pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {}
-
- pair(const pair<_T1,_T2>& __o) : first(__o.first), second(__o.second) {}
-#endif
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
- pair(__move_source<pair<_T1, _T2> > src) : first(_STLP_PRIV _AsMoveSource(src.get().first)),
- second(_STLP_PRIV _AsMoveSource(src.get().second))
- {}
-#endif
-
- __TRIVIAL_DESTRUCTOR(pair)
-};
-
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
-{ return __x.first == __y.first && __x.second == __y.second; }
-
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) {
- return __x.first < __y.first ||
- (!(__y.first < __x.first) && __x.second < __y.second);
-}
-
-#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
-{ return !(__x == __y); }
-
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
-{ return __y < __x; }
-
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
-{ return !(__y < __x); }
-
-template <class _T1, class _T2>
-inline bool _STLP_CALL operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
-{ return !(__x < __y); }
-#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
-
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) && !defined (_STLP_NO_EXTENSIONS)
-template <class _T1, class _T2, int _Sz>
-inline pair<_T1, _T2 const*> make_pair(_T1 const& __x,
- _T2 const (&__y)[_Sz])
-{ return pair<_T1, _T2 const*>(__x, static_cast<_T2 const*>(__y)); }
-
-template <class _T1, class _T2, int _Sz>
-inline pair<_T1 const*, _T2> make_pair(_T1 const (&__x)[_Sz],
- _T2 const& __y)
-{ return pair<_T1 const*, _T2>(static_cast<_T1 const*>(__x), __y); }
-
-template <class _T1, class _T2, int _Sz1, int _Sz2>
-inline pair<_T1 const*, _T2 const*> make_pair(_T1 const (&__x)[_Sz1],
- _T2 const (&__y)[_Sz2]) {
- return pair<_T1 const*, _T2 const*>(static_cast<_T1 const*>(__x),
- static_cast<_T2 const*>(__y));
-}
-#endif
-
-template <class _T1, class _T2>
-inline pair<_T1, _T2> _STLP_CALL make_pair(_T1 __x, _T2 __y)
-{ return pair<_T1, _T2>(__x, __y); }
-
-_STLP_END_NAMESPACE
-
-#if defined (_STLP_USE_NAMESPACES) || !defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
-_STLP_BEGIN_RELOPS_NAMESPACE
-
-template <class _Tp>
-inline bool _STLP_CALL operator!=(const _Tp& __x, const _Tp& __y)
-{ return !(__x == __y); }
-
-template <class _Tp>
-inline bool _STLP_CALL operator>(const _Tp& __x, const _Tp& __y)
-{ return __y < __x; }
-
-template <class _Tp>
-inline bool _STLP_CALL operator<=(const _Tp& __x, const _Tp& __y)
-{ return !(__y < __x); }
-
-template <class _Tp>
-inline bool _STLP_CALL operator>=(const _Tp& __x, const _Tp& __y)
-{ return !(__x < __y); }
-
-_STLP_END_RELOPS_NAMESPACE
-#endif
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-_STLP_BEGIN_NAMESPACE
-
-template <class _T1, class _T2>
-struct __type_traits<pair<_T1, _T2> > {
- typedef __type_traits<_T1> _T1Traits;
- typedef __type_traits<_T2> _T2Traits;
- typedef typename _Land2<typename _T1Traits::has_trivial_default_constructor,
- typename _T2Traits::has_trivial_default_constructor>::_Ret has_trivial_default_constructor;
- typedef typename _Land2<typename _T1Traits::has_trivial_copy_constructor,
- typename _T2Traits::has_trivial_copy_constructor>::_Ret has_trivial_copy_constructor;
- typedef typename _Land2<typename _T1Traits::has_trivial_assignment_operator,
- typename _T2Traits::has_trivial_assignment_operator>::_Ret has_trivial_assignment_operator;
- typedef typename _Land2<typename _T1Traits::has_trivial_destructor,
- typename _T2Traits::has_trivial_destructor>::_Ret has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-
-# if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _T1, class _T2>
-struct __move_traits<pair<_T1, _T2> >
- : _STLP_PRIV __move_traits_help1<_T1, _T2> {};
-# endif
-
-_STLP_END_NAMESPACE
-#endif
-
-#endif /* _STLP_INTERNAL_PAIR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_prolog.h b/stlport/stlport/stl/_prolog.h
deleted file mode 100644
index 9705c2c..0000000
--- a/stlport/stlport/stl/_prolog.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* NOTE : this header has no guards and is MEANT for multiple inclusion!
- * If you are using "header protection" option with your compiler,
- * please also find #pragma which disables it and put it here, to
- * allow reentrancy of this header.
- */
-
-#include <stl/_cprolog.h>
-
-/* Get all debug things, potentially only empty macros if none of
- * the debug features available in user config file is activated. */
- /* Thanks to _STLP_OUTERMOST_HEADER_ID we hide _debug.h when C standard
- * headers are included as some platforms (Win32) include C standard headers
- * in an 'extern "C"' scope which do not accept the templates exposed
- * in _debug.h. */
-#if defined (__cplusplus) && !defined (_STLP_DEBUG_H) && \
- !((_STLP_OUTERMOST_HEADER_ID >= 0x200) && (_STLP_OUTERMOST_HEADER_ID <= 0x300))
-# include <stl/debug/_debug.h>
-#endif
diff --git a/stlport/stlport/stl/_ptrs_specialize.h b/stlport/stlport/stl/_ptrs_specialize.h
deleted file mode 100644
index b9cb5d8..0000000
--- a/stlport/stlport/stl/_ptrs_specialize.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef _STLP_PTRS_SPECIALIZE_H
-#define _STLP_PTRS_SPECIALIZE_H
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) || \
- (defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) && !defined (_STLP_NO_ARROW_OPERATOR))
-# define _STLP_POINTERS_SPECIALIZE( _TpP )
-# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(operator*()); }
-#else
-# ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-# endif
-
-// the following is a workaround for arrow operator problems
-# if defined ( _STLP_NO_ARROW_OPERATOR )
-// User wants to disable proxy -> operators
-# define _STLP_DEFINE_ARROW_OPERATOR
-# else
-// Compiler can handle generic -> operator.
-# if defined (__BORLANDC__)
-# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(*(*this)); }
-# elif defined(__WATCOMC__)
-# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { reference x = operator*(); return &x; }
-# else
-# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(operator*()); }
-# endif
-# endif /* _STLP_NO_ARROW_OPERATOR */
-
-// Important pointers specializations
-
-# ifdef _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
-# define _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type)
-# define _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type)
-# else
-# define _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type) _STLP_TEMPLATE_NULL struct __type_traits<_Type> : __type_traits_aux<__true_type> {};
-# define _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type*) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type*) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type**) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type* const *) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type**) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type***) \
-_STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type***)
-# endif
-
-# define _STLP_POINTERS_SPECIALIZE(_Type) _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type)
-
-_STLP_BEGIN_NAMESPACE
-
-# if !defined ( _STLP_NO_BOOL )
-_STLP_POINTERS_SPECIALIZE( bool )
-# endif
-_STLP_TYPE_TRAITS_POD_SPECIALIZE_V(void)
-# ifndef _STLP_NO_SIGNED_BUILTINS
- _STLP_POINTERS_SPECIALIZE( signed char )
-# endif
- _STLP_POINTERS_SPECIALIZE( char )
- _STLP_POINTERS_SPECIALIZE( unsigned char )
- _STLP_POINTERS_SPECIALIZE( short )
- _STLP_POINTERS_SPECIALIZE( unsigned short )
- _STLP_POINTERS_SPECIALIZE( int )
- _STLP_POINTERS_SPECIALIZE( unsigned int )
- _STLP_POINTERS_SPECIALIZE( long )
- _STLP_POINTERS_SPECIALIZE( unsigned long )
- _STLP_POINTERS_SPECIALIZE( float )
- _STLP_POINTERS_SPECIALIZE( double )
-# if !defined ( _STLP_NO_LONG_DOUBLE )
- _STLP_POINTERS_SPECIALIZE( long double )
-# endif
-# if defined ( _STLP_LONG_LONG)
- _STLP_POINTERS_SPECIALIZE( _STLP_LONG_LONG )
- _STLP_POINTERS_SPECIALIZE( unsigned _STLP_LONG_LONG )
-# endif
-# if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT)
- _STLP_POINTERS_SPECIALIZE( wchar_t )
-# endif
-
-_STLP_END_NAMESPACE
-
-# undef _STLP_ARROW_SPECIALIZE
-# undef _STLP_TYPE_TRAITS_POD_SPECIALIZE_V
-
-#endif
-#endif
diff --git a/stlport/stlport/stl/_queue.h b/stlport/stlport/stl/_queue.h
deleted file mode 100644
index 5f3763c..0000000
--- a/stlport/stlport/stl/_queue.h
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_QUEUE_H
-#define _STLP_INTERNAL_QUEUE_H
-
-#ifndef _STLP_INTERNAL_DEQUE_H
-# include <stl/_deque.h>
-#endif
-
-#ifndef _STLP_INTERNAL_VECTOR_H
-# include <stl/_vector.h>
-#endif
-
-#ifndef _STLP_INTERNAL_HEAP_H
-# include <stl/_heap.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-# if ! defined ( _STLP_LIMITED_DEFAULT_TEMPLATES )
-template <class _Tp, class _Sequence = deque<_Tp> >
-# elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS )
-# define _STLP_QUEUE_ARGS _Tp
-template <class _Tp>
-# else
-template <class _Tp, class _Sequence>
-# endif
-class queue
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
-# if defined (_STLP_QUEUE_ARGS)
- : public __stlport_class<queue<_Tp> >
-# else
- : public __stlport_class<queue<_Tp, _Sequence> >
-# endif
-#endif
-{
-# if defined ( _STLP_QUEUE_ARGS )
- typedef deque<_Tp> _Sequence;
- typedef queue<_Tp> _Self;
-# else
- typedef queue<_Tp, _Sequence> _Self;
-# endif
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-
-protected:
- //c is a Standard name (23.2.3.1), do no make it STLport naming convention compliant.
- _Sequence c;
-public:
- queue() : c() {}
- explicit queue(const _Sequence& __c) : c(__c) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- queue(__move_source<_Self> src)
- : c(_STLP_PRIV _AsMoveSource(src.get().c)) {}
-#endif
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- reference front() { return c.front(); }
- const_reference front() const { return c.front(); }
- reference back() { return c.back(); }
- const_reference back() const { return c.back(); }
- void push(const value_type& __x) { c.push_back(__x); }
- void pop() { c.pop_front(); }
- const _Sequence& _Get_s() const { return c; }
-
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) {
- _Sequence __tmp = c;
- c = __x.c;
- __x.c = __tmp;
- }
-#endif
-};
-
-#ifndef _STLP_QUEUE_ARGS
-# define _STLP_QUEUE_ARGS _Tp, _Sequence
-# define _STLP_QUEUE_HEADER_ARGS class _Tp, class _Sequence
-#else
-# define _STLP_QUEUE_HEADER_ARGS class _Tp
-#endif
-
-template < _STLP_QUEUE_HEADER_ARGS >
-inline bool _STLP_CALL
-operator==(const queue<_STLP_QUEUE_ARGS >& __x, const queue<_STLP_QUEUE_ARGS >& __y) {
- return __x._Get_s() == __y._Get_s();
-}
-
-template < _STLP_QUEUE_HEADER_ARGS >
-inline bool _STLP_CALL
-operator<(const queue<_STLP_QUEUE_ARGS >& __x, const queue<_STLP_QUEUE_ARGS >& __y) {
- return __x._Get_s() < __y._Get_s();
-}
-
-_STLP_RELOPS_OPERATORS( template < _STLP_QUEUE_HEADER_ARGS >, queue<_STLP_QUEUE_ARGS > )
-
-# if !(defined ( _STLP_LIMITED_DEFAULT_TEMPLATES ) || defined ( _STLP_TEMPLATE_PARAM_SUBTYPE_BUG ))
-template <class _Tp, class _Sequence = vector<_Tp>,
- class _Compare = less<_STLP_HEADER_TYPENAME _Sequence::value_type> >
-# elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS )
-template <class _Tp>
-# else
-template <class _Tp, class _Sequence, class _Compare>
-# endif
-class priority_queue
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
-# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS)
- : public __stlport_class<priority_queue<_Tp> >
-# else
- : public __stlport_class<priority_queue<_Tp, _Sequence> >
-# endif
-#endif
-{
-# ifdef _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS
- typedef vector<_Tp> _Sequence;
- typedef less< typename vector<_Tp>::value_type> _Compare;
- typedef priority_queue<_Tp> _Self;
-# else
- typedef priority_queue<_Tp, _Sequence, _Compare> _Self;
-# endif
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-protected:
- //c is a Standard name (23.2.3.2), do no make it STLport naming convention compliant.
- _Sequence c;
- _Compare comp;
-public:
- priority_queue() : c() {}
- explicit priority_queue(const _Compare& __x) : c(), comp(__x) {}
- priority_queue(const _Compare& __x, const _Sequence& __s)
- : c(__s), comp(__x)
- { make_heap(c.begin(), c.end(), comp); }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- priority_queue(__move_source<_Self> src)
- : c(_STLP_PRIV _AsMoveSource(src.get().c)),
- comp(_STLP_PRIV _AsMoveSource(src.get().comp)) {}
-#endif
-
-#ifdef _STLP_MEMBER_TEMPLATES
- template <class _InputIterator>
- priority_queue(_InputIterator __first, _InputIterator __last)
- : c(__first, __last) { make_heap(c.begin(), c.end(), comp); }
-
- template <class _InputIterator>
- priority_queue(_InputIterator __first,
- _InputIterator __last, const _Compare& __x)
- : c(__first, __last), comp(__x)
- { make_heap(c.begin(), c.end(), comp); }
-
- template <class _InputIterator>
- priority_queue(_InputIterator __first, _InputIterator __last,
- const _Compare& __x, const _Sequence& __s)
- : c(__s), comp(__x)
- {
- c.insert(c.end(), __first, __last);
- make_heap(c.begin(), c.end(), comp);
- }
-
-#else /* _STLP_MEMBER_TEMPLATES */
- priority_queue(const value_type* __first, const value_type* __last)
- : c(__first, __last) { make_heap(c.begin(), c.end(), comp); }
-
- priority_queue(const value_type* __first, const value_type* __last,
- const _Compare& __x)
- : c(__first, __last), comp(__x)
- { make_heap(c.begin(), c.end(), comp); }
-
- priority_queue(const value_type* __first, const value_type* __last,
- const _Compare& __x, const _Sequence& __c)
- : c(__c), comp(__x)
- {
- c.insert(c.end(), __first, __last);
- make_heap(c.begin(), c.end(), comp);
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- const_reference top() const { return c.front(); }
- void push(const value_type& __x) {
- _STLP_TRY {
- c.push_back(__x);
- push_heap(c.begin(), c.end(), comp);
- }
- _STLP_UNWIND(c.clear())
- }
- void pop() {
- _STLP_TRY {
- pop_heap(c.begin(), c.end(), comp);
- c.pop_back();
- }
- _STLP_UNWIND(c.clear())
- }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) {
- _Sequence __tmp = c;
- c = __x.c;
- __x.c = __tmp;
- }
-#endif
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Tp, class _Sequence>
-struct __move_traits<queue<_Tp, _Sequence> > :
- _STLP_PRIV __move_traits_aux<_Sequence>
-{};
-
-template <class _Tp, class _Sequence, class _Compare>
-struct __move_traits<priority_queue<_Tp, _Sequence, _Compare> > :
- _STLP_PRIV __move_traits_aux2<_Sequence, _Compare>
-{};
-#endif
-
-_STLP_END_NAMESPACE
-
-#undef _STLP_QUEUE_ARGS
-#undef _STLP_QUEUE_HEADER_ARGS
-#undef comp
-
-#endif /* _STLP_INTERNAL_QUEUE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_range_errors.c b/stlport/stlport/stl/_range_errors.c
deleted file mode 100644
index 87293be..0000000
--- a/stlport/stlport/stl/_range_errors.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 1999
- * Silicon Graphics
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-
-#if defined(_STLP_THROW_RANGE_ERRORS)
-# if defined (_STLP_WHOLE_NATIVE_STD) && defined (_STLP_DONT_REDEFINE_STD)
-// In this mode we are going to throw native exception so that catch of
-// exception like std::runtime_error for instance will also catch exception
-// thrown by STLport containers like stlport::vector or stlport::string.
-# include <stdexcept>
-# include <string>
-# define _STLP_THROW_MSG(ex,msg) throw std::ex(msg)
-# else
-# if defined (__BUILDING_STLPORT)
-# include <stdexcept>
-# include <string>
-# else
-# ifndef _STLP_INTERNAL_STDEXCEPT
-# include <stl/_stdexcept.h>
-# endif
-# ifndef _STLP_INTERNAL_STRING_H
-# include <stl/_string.h>
-# endif
-# endif
-# define _STLP_THROW_MSG(ex,msg) throw ex(msg)
-# endif
-#else
-# if defined (__BUILDING_STLPORT)
-# include <cstdlib>
-# include <cstdio>
-# else
-# ifndef _STLP_INTERNAL_CSTDLIB
-# include <stl/_cstdlib.h>
-# endif
-# ifndef _STLP_INTERNAL_CSTDIO
-# include <stl/_cstdio.h>
-# endif
-# endif
-# define _STLP_THROW_MSG(ex,msg) puts(msg),_STLP_ABORT()
-#endif
-
-// For mode without library and throwing range errors, include the
-// stdexcept header and throw the appropriate exceptions directly.
-
-#if defined (_STLP_EXTERN_RANGE_ERRORS)
-# define _STLP_THROW_FUNCT_SPEC void _STLP_DECLSPEC
-#else
-# define _STLP_THROW_FUNCT_SPEC inline void
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_THROW_FUNCT_SPEC _STLP_CALL __stl_throw_runtime_error(const char* __msg)
-{ _STLP_THROW_MSG(runtime_error, __msg); }
-
-_STLP_THROW_FUNCT_SPEC _STLP_CALL __stl_throw_range_error(const char* __msg)
-{ _STLP_THROW_MSG(range_error, __msg); }
-
-_STLP_THROW_FUNCT_SPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg)
-{ _STLP_THROW_MSG(out_of_range, __msg); }
-
-_STLP_THROW_FUNCT_SPEC _STLP_CALL __stl_throw_length_error(const char* __msg)
-{ _STLP_THROW_MSG(length_error, __msg); }
-
-_STLP_THROW_FUNCT_SPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg)
-{ _STLP_THROW_MSG(invalid_argument, __msg); }
-
-_STLP_THROW_FUNCT_SPEC _STLP_CALL __stl_throw_overflow_error(const char* __msg)
-{ _STLP_THROW_MSG(overflow_error, __msg); }
-
-_STLP_END_NAMESPACE
-
-#undef _STLP_THROW_FUNCT_SPEC
-#undef _STLP_THROW_MSG
diff --git a/stlport/stlport/stl/_range_errors.h b/stlport/stlport/stl/_range_errors.h
deleted file mode 100644
index 80df26a..0000000
--- a/stlport/stlport/stl/_range_errors.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1999
- * Silicon Graphics
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-
-#ifndef _STLP_RANGE_ERRORS_H
-#define _STLP_RANGE_ERRORS_H
-
-// A few places in the STL throw range errors, using standard exception
-// classes defined in <stdexcept>. This header file provides functions
-// to throw those exception objects.
-
-// _STLP_DONT_THROW_RANGE_ERRORS is a hook so that users can disable
-// this exception throwing.
-#if defined (_STLP_CAN_THROW_RANGE_ERRORS) && defined (_STLP_USE_EXCEPTIONS) && \
- !defined (_STLP_DONT_THROW_RANGE_ERRORS)
-# define _STLP_THROW_RANGE_ERRORS
-#endif
-
-// For the STLport iostreams, only declaration here, definition is in the lib
-#if !defined (_STLP_USE_NO_IOSTREAMS) && !defined (_STLP_EXTERN_RANGE_ERRORS)
-# define _STLP_EXTERN_RANGE_ERRORS
-#endif
-
-_STLP_BEGIN_NAMESPACE
-void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_runtime_error(const char* __msg);
-void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_range_error(const char* __msg);
-void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg);
-void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_length_error(const char* __msg);
-void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg);
-void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_overflow_error(const char* __msg);
-
-#if defined (__DMC__) && !defined (_STLP_NO_EXCEPTIONS)
-# pragma noreturn(__stl_throw_runtime_error)
-# pragma noreturn(__stl_throw_range_error)
-# pragma noreturn(__stl_throw_out_of_range)
-# pragma noreturn(__stl_throw_length_error)
-# pragma noreturn(__stl_throw_invalid_argument)
-# pragma noreturn(__stl_throw_overflow_error)
-#endif
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_EXTERN_RANGE_ERRORS)
-# include <stl/_range_errors.c>
-#endif
-
-#endif /* _STLP_RANGE_ERRORS_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_raw_storage_iter.h b/stlport/stlport/stl/_raw_storage_iter.h
deleted file mode 100644
index 6e4bc2e..0000000
--- a/stlport/stlport/stl/_raw_storage_iter.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H
-#define _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _ForwardIterator, class _Tp>
-class raw_storage_iterator
- : public iterator<output_iterator_tag,void,void,void,void>
-{
-protected:
- _ForwardIterator _M_iter;
-public:
- typedef output_iterator_tag iterator_category;
-# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-# endif
- explicit raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {}
- raw_storage_iterator<_ForwardIterator, _Tp>& operator*() { return *this; }
- raw_storage_iterator<_ForwardIterator, _Tp>& operator=(const _Tp& __element) {
- _Param_Construct(&*_M_iter, __element);
- return *this;
- }
- raw_storage_iterator<_ForwardIterator, _Tp>& operator++() {
- ++_M_iter;
- return *this;
- }
- raw_storage_iterator<_ForwardIterator, _Tp> operator++(int) {
- raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
- ++_M_iter;
- return __tmp;
- }
-};
-
-# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES
-template <class _ForwardIterator, class _Tp>
-inline output_iterator_tag iterator_category(const raw_storage_iterator<_ForwardIterator, _Tp>&) { return output_iterator_tag(); }
-#endif
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_relops_cont.h b/stlport/stlport/stl/_relops_cont.h
deleted file mode 100644
index cd8ec05..0000000
--- a/stlport/stlport/stl/_relops_cont.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// This is an implementation file which
-// is intended to be included multiple times with different _STLP_ASSOCIATIVE_CONTAINER
-// setting
-
-#if !defined (_STLP_EQUAL_OPERATOR_SPECIALIZED)
-_STLP_TEMPLATE_HEADER
-inline bool _STLP_CALL operator==(const _STLP_TEMPLATE_CONTAINER& __x,
- const _STLP_TEMPLATE_CONTAINER& __y) {
- return __x.size() == __y.size() &&
- equal(__x.begin(), __x.end(), __y.begin());
-}
-#endif /* _STLP_EQUAL_OPERATOR_SPECIALIZED */
-
-_STLP_TEMPLATE_HEADER
-inline bool _STLP_CALL operator<(const _STLP_TEMPLATE_CONTAINER& __x,
- const _STLP_TEMPLATE_CONTAINER& __y) {
- return lexicographical_compare(__x.begin(), __x.end(),
- __y.begin(), __y.end());
-}
-
-_STLP_RELOPS_OPERATORS( _STLP_TEMPLATE_HEADER , _STLP_TEMPLATE_CONTAINER )
-
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-_STLP_TEMPLATE_HEADER
-inline void _STLP_CALL swap(_STLP_TEMPLATE_CONTAINER& __x,
- _STLP_TEMPLATE_CONTAINER& __y) {
- __x.swap(__y);
-}
-#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */
diff --git a/stlport/stlport/stl/_relops_hash_cont.h b/stlport/stlport/stl/_relops_hash_cont.h
deleted file mode 100644
index 421c805..0000000
--- a/stlport/stlport/stl/_relops_hash_cont.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* This is an implementation file which is intended to be included
- * multiple times with different _STLP_TEMPLATE_CONTAINER settings.
- */
-
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-
-_STLP_TEMPLATE_HEADER
-inline void _STLP_CALL
-swap(_STLP_TEMPLATE_CONTAINER& __hm1, _STLP_TEMPLATE_CONTAINER& __hm2) {
- __hm1.swap(__hm2);
-}
-
-#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */
diff --git a/stlport/stlport/stl/_set.h b/stlport/stlport/stl/_set.h
deleted file mode 100644
index a8f6862..0000000
--- a/stlport/stlport/stl/_set.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_SET_H
-#define _STLP_INTERNAL_SET_H
-
-#ifndef _STLP_INTERNAL_TREE_H
-# include <stl/_tree.h>
-#endif
-
-#if !defined (_STLP_USE_PTR_SPECIALIZATIONS)
-
-_STLP_BEGIN_NAMESPACE
-
-//Specific iterator traits creation
-_STLP_CREATE_ITERATOR_TRAITS(SetTraitsT, Const_traits)
-
-template <class _Key, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key>),
- _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Key>) >
-class set
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<set<_Key, _Compare, _Alloc> >
-#endif
-{
- typedef set<_Key, _Compare, _Alloc> _Self;
-public:
-// typedefs:
- typedef _Key key_type;
- typedef _Key value_type;
- typedef _Compare key_compare;
- typedef _Compare value_compare;
-
-private:
- //Specific iterator traits creation
- typedef _STLP_PRIV _SetTraitsT<value_type> _SetTraits;
-
-public:
- //Following typedef have to be public for __move_traits specialization.
- typedef _STLP_PRIV _Rb_tree<key_type, key_compare,
- value_type, _STLP_PRIV _Identity<value_type>,
- _SetTraits, _Alloc> _Rep_type;
-
- typedef typename _Rep_type::pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::reference reference;
- typedef typename _Rep_type::const_reference const_reference;
- typedef typename _Rep_type::iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
-private:
- _Rep_type _M_t; // red-black tree representing set
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
-
- // allocation/deallocation
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit set(const _Compare& __comp = _Compare(),
- const allocator_type& __a = allocator_type())
-#else
- set()
- : _M_t(_Compare(), allocator_type()) {}
- explicit set(const _Compare& __comp)
- : _M_t(__comp, allocator_type()) {}
- set(const _Compare& __comp, const allocator_type& __a)
-#endif
- : _M_t(__comp, __a) {}
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- set(_InputIterator __first, _InputIterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- set(_InputIterator __first, _InputIterator __last, const _Compare& __comp)
- : _M_t(__comp, allocator_type()) { _M_t.insert_unique(__first, __last); }
-# endif
- template <class _InputIterator>
- set(_InputIterator __first, _InputIterator __last, const _Compare& __comp,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
-#else
- set(const value_type* __first, const value_type* __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
- set(const value_type* __first,
- const value_type* __last, const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
-
- set(const_iterator __first, const_iterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_unique(__first, __last); }
-
- set(const_iterator __first, const_iterator __last, const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- set(const _Self& __x) : _M_t(__x._M_t) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- set(__move_source<_Self> src)
- : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {}
-#endif
-
- _Self& operator=(const _Self& __x) {
- _M_t = __x._M_t;
- return *this;
- }
-
- // accessors:
- key_compare key_comp() const { return _M_t.key_comp(); }
- value_compare value_comp() const { return _M_t.key_comp(); }
- allocator_type get_allocator() const { return _M_t.get_allocator(); }
-
- iterator begin() { return _M_t.begin(); }
- iterator end() { return _M_t.end(); }
- const_iterator begin() const { return _M_t.begin(); }
- const_iterator end() const { return _M_t.end(); }
- reverse_iterator rbegin() { return _M_t.rbegin(); }
- reverse_iterator rend() { return _M_t.rend(); }
- const_reverse_iterator rbegin() const { return _M_t.rbegin(); }
- const_reverse_iterator rend() const { return _M_t.rend(); }
- bool empty() const { return _M_t.empty(); }
- size_type size() const { return _M_t.size(); }
- size_type max_size() const { return _M_t.max_size(); }
- void swap(_Self& __x) { _M_t.swap(__x._M_t); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- // insert/erase
- pair<iterator,bool> insert(const value_type& __x)
- { return _M_t.insert_unique(__x); }
- iterator insert(iterator __pos, const value_type& __x)
- { return _M_t.insert_unique( __pos , __x); }
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __first, _InputIterator __last)
- { _M_t.insert_unique(__first, __last); }
-#else
- void insert(const_iterator __first, const_iterator __last)
- { _M_t.insert_unique(__first, __last); }
- void insert(const value_type* __first, const value_type* __last)
- { _M_t.insert_unique(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
- void erase(iterator __pos) { _M_t.erase( __pos ); }
- size_type erase(const key_type& __x) { return _M_t.erase_unique(__x); }
- void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last ); }
- void clear() { _M_t.clear(); }
-
- // set operations:
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __x) const { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __x) { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __x) const
- { return _M_t.find(__x) == _M_t.end() ? 0 : 1 ; }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __x)
- { return _M_t.equal_range_unique(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __x) const
- { return _M_t.equal_range_unique(__x); }
-};
-
-//Specific iterator traits creation
-_STLP_CREATE_ITERATOR_TRAITS(MultisetTraitsT, Const_traits)
-
-template <class _Key, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key>),
- _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Key>) >
-class multiset
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<multiset<_Key, _Compare, _Alloc> >
-#endif
-{
- typedef multiset<_Key, _Compare, _Alloc> _Self;
-public:
- // typedefs:
-
- typedef _Key key_type;
- typedef _Key value_type;
- typedef _Compare key_compare;
- typedef _Compare value_compare;
-
-private:
- //Specific iterator traits creation
- typedef _STLP_PRIV _MultisetTraitsT<value_type> _MultisetTraits;
-
-public:
- //Following typedef have to be public for __move_traits specialization.
- typedef _STLP_PRIV _Rb_tree<key_type, key_compare,
- value_type, _STLP_PRIV _Identity<value_type>,
- _MultisetTraits, _Alloc> _Rep_type;
-
- typedef typename _Rep_type::pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::reference reference;
- typedef typename _Rep_type::const_reference const_reference;
- typedef typename _Rep_type::iterator iterator;
- typedef typename _Rep_type::const_iterator const_iterator;
- typedef typename _Rep_type::reverse_iterator reverse_iterator;
- typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
- typedef typename _Rep_type::size_type size_type;
- typedef typename _Rep_type::difference_type difference_type;
- typedef typename _Rep_type::allocator_type allocator_type;
-
-private:
- _Rep_type _M_t; // red-black tree representing multiset
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit multiset(const _Compare& __comp = _Compare(),
- const allocator_type& __a = allocator_type())
-#else
- multiset()
- : _M_t(_Compare(), allocator_type()) {}
- explicit multiset(const _Compare& __comp)
- : _M_t(__comp, allocator_type()) {}
- multiset(const _Compare& __comp, const allocator_type& __a)
-#endif
- : _M_t(__comp, __a) {}
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- multiset(_InputIterator __first, _InputIterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
-
- template <class _InputIterator>
- multiset(_InputIterator __first, _InputIterator __last,
- const _Compare& __comp,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- multiset(_InputIterator __first, _InputIterator __last,
- const _Compare& __comp)
- : _M_t(__comp, allocator_type()) { _M_t.insert_equal(__first, __last); }
-# endif
-#else
- multiset(const value_type* __first, const value_type* __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
-
- multiset(const value_type* __first, const value_type* __last,
- const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
-
- multiset(const_iterator __first, const_iterator __last)
- : _M_t(_Compare(), allocator_type())
- { _M_t.insert_equal(__first, __last); }
-
- multiset(const_iterator __first, const_iterator __last,
- const _Compare& __comp,
- const allocator_type& __a = allocator_type())
- : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- multiset(const _Self& __x) : _M_t(__x._M_t) {}
- _Self& operator=(const _Self& __x) {
- _M_t = __x._M_t;
- return *this;
- }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- multiset(__move_source<_Self> src)
- : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {}
-#endif
-
- // accessors:
- key_compare key_comp() const { return _M_t.key_comp(); }
- value_compare value_comp() const { return _M_t.key_comp(); }
- allocator_type get_allocator() const { return _M_t.get_allocator(); }
-
- iterator begin() { return _M_t.begin(); }
- iterator end() { return _M_t.end(); }
- const_iterator begin() const { return _M_t.begin(); }
- const_iterator end() const { return _M_t.end(); }
- reverse_iterator rbegin() { return _M_t.rbegin(); }
- reverse_iterator rend() { return _M_t.rend(); }
- const_reverse_iterator rbegin() const { return _M_t.rbegin(); }
- const_reverse_iterator rend() const { return _M_t.rend(); }
- bool empty() const { return _M_t.empty(); }
- size_type size() const { return _M_t.size(); }
- size_type max_size() const { return _M_t.max_size(); }
- void swap(_Self& __x) { _M_t.swap(__x._M_t); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- // insert/erase
- iterator insert(const value_type& __x)
- { return _M_t.insert_equal(__x); }
- iterator insert(iterator __pos, const value_type& __x)
- { return _M_t.insert_equal(__pos, __x); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __first, _InputIterator __last)
- { _M_t.insert_equal(__first, __last); }
-#else
- void insert(const value_type* __first, const value_type* __last)
- { _M_t.insert_equal(__first, __last); }
- void insert(const_iterator __first, const_iterator __last)
- { _M_t.insert_equal(__first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
- void erase(iterator __pos) { _M_t.erase( __pos ); }
- size_type erase(const key_type& __x) { return _M_t.erase(__x); }
- void erase(iterator __first, iterator __last) { _M_t.erase( __first, __last ); }
- void clear() { _M_t.clear(); }
-
- // multiset operations:
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __x) { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __x) const { return _M_t.find(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __x) const { return _M_t.count(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __x) { return _M_t.equal_range(__x); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __x) const { return _M_t.equal_range(__x); }
-};
-
-#else
-# include <stl/pointers/_set.h>
-_STLP_BEGIN_NAMESPACE
-#endif /* _STLP_USE_PTR_SPECIALIZATIONS */
-
-#define _STLP_TEMPLATE_HEADER template <class _Key, class _Compare, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER set<_Key,_Compare,_Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#define _STLP_TEMPLATE_CONTAINER multiset<_Key,_Compare,_Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Key, class _Compare, class _Alloc>
-struct __move_traits<set<_Key,_Compare,_Alloc> > :
- _STLP_PRIV __move_traits_aux<typename set<_Key,_Compare,_Alloc>::_Rep_type>
-{};
-
-template <class _Key, class _Compare, class _Alloc>
-struct __move_traits<multiset<_Key,_Compare,_Alloc> > :
- _STLP_PRIV __move_traits_aux<typename multiset<_Key,_Compare,_Alloc>::_Rep_type>
-{};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_SET_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_slist.c b/stlport/stlport/stl/_slist.c
deleted file mode 100644
index ba158d0..0000000
--- a/stlport/stlport/stl/_slist.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_SLIST_C
-#define _STLP_SLIST_C
-
-#ifndef _STLP_INTERNAL_SLIST_H
-# include <stl/_slist.h>
-#endif
-
-#ifndef _STLP_CARRAY_H
-# include <stl/_carray.h>
-#endif
-
-#ifndef _STLP_RANGE_ERRORS_H
-# include <stl/_range_errors.h>
-#endif
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# define size_type size_t
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp, class _Alloc>
-_Slist_node_base*
-_Slist_base<_Tp,_Alloc>::_M_erase_after(_Slist_node_base* __before_first,
- _Slist_node_base* __last_node) {
- _Slist_node_base* __cur = __before_first->_M_next;
- while (__cur != __last_node) {
- _Node* __tmp = __STATIC_CAST(_Node*, __cur);
- __cur = __cur->_M_next;
- _STLP_STD::_Destroy(&__tmp->_M_data);
- _M_head.deallocate(__tmp,1);
- }
- __before_first->_M_next = __last_node;
- return __last_node;
-}
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define slist _STLP_PTR_IMPL_NAME(slist)
-#elif defined (_STLP_DEBUG)
-# define slist _STLP_NON_DBG_NAME(slist)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-/* When building STLport lib Digital Mars Compiler complains on the _M_data assignment
- * problem which would be perfertly right if we were using it. Hiding it during build
- * fix this issue.
- */
-template <class _Tp, class _Alloc>
-slist<_Tp,_Alloc>& slist<_Tp,_Alloc>::operator=(const slist<_Tp,_Alloc>& __x) {
- if (&__x != this) {
- _Node_base* __p1 = &this->_M_head._M_data;
- _Node_base* __n1 = this->_M_head._M_data._M_next;
- const _Node_base* __n2 = __x._M_head._M_data._M_next;
- while (__n1 && __n2) {
- __STATIC_CAST(_Node*, __n1)->_M_data = __STATIC_CAST(const _Node*, __n2)->_M_data;
- __p1 = __n1;
- __n1 = __n1->_M_next;
- __n2 = __n2->_M_next;
- }
- if (__n2 == 0)
- this->_M_erase_after(__p1, 0);
- else
- _M_insert_after_range(__p1, const_iterator(__CONST_CAST(_Node_base*, __n2)),
- const_iterator(0));
- }
- return *this;
-}
-
-template <class _Tp, class _Alloc>
-void slist<_Tp, _Alloc>::_M_fill_assign(size_type __n, const _Tp& __val) {
- _Node_base* __prev = &this->_M_head._M_data;
- _Node_base* __node = this->_M_head._M_data._M_next;
- for ( ; __node != 0 && __n > 0 ; --__n) {
- __STATIC_CAST(_Node*, __node)->_M_data = __val;
- __prev = __node;
- __node = __node->_M_next;
- }
- if (__n > 0)
- _M_insert_after_fill(__prev, __n, __val);
- else
- this->_M_erase_after(__prev, 0);
-}
-
-template <class _Tp, class _Alloc>
-void slist<_Tp,_Alloc>::resize(size_type __len, const _Tp& __x) {
- _Node_base* __cur = &this->_M_head._M_data;
- while (__cur->_M_next != 0 && __len > 0) {
- --__len;
- __cur = __cur->_M_next;
- }
- if (__cur->_M_next)
- this->_M_erase_after(__cur, 0);
- else
- _M_insert_after_fill(__cur, __len, __x);
-}
-
-template <class _Tp, class _Alloc>
-void slist<_Tp,_Alloc>::remove(const _Tp& __val) {
- _Node_base* __cur = &this->_M_head._M_data;
- while (__cur && __cur->_M_next) {
- if (__STATIC_CAST(_Node*, __cur->_M_next)->_M_data == __val)
- this->_M_erase_after(__cur);
- else
- __cur = __cur->_M_next;
- }
-}
-
-#if !defined (slist)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-template <class _Tp, class _Alloc, class _BinaryPredicate>
-void _Slist_unique(slist<_Tp, _Alloc>& __that, _BinaryPredicate __pred) {
- typedef _Slist_node<_Tp> _Node;
- typename slist<_Tp, _Alloc>::iterator __ite(__that.begin());
- if (__ite != __that.end()) {
- while (__ite._M_node->_M_next) {
- if (__pred(*__ite, __STATIC_CAST(_Node*, __ite._M_node->_M_next)->_M_data))
- __that.erase_after(__ite);
- else
- ++__ite;
- }
- }
-}
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _Slist_merge(slist<_Tp, _Alloc>& __that, slist<_Tp, _Alloc>& __x,
- _StrictWeakOrdering __comp) {
- typedef _Slist_node<_Tp> _Node;
- typedef _STLP_PRIV _Slist_node_base _Node_base;
- if (__that.get_allocator() == __x.get_allocator()) {
- typename slist<_Tp, _Alloc>::iterator __ite(__that.before_begin());
- while (__ite._M_node->_M_next && !__x.empty()) {
- if (__comp(__x.front(), __STATIC_CAST(_Node*, __ite._M_node->_M_next)->_M_data)) {
- _STLP_VERBOSE_ASSERT(!__comp(__STATIC_CAST(_Node*, __ite._M_node->_M_next)->_M_data, __x.front()),
- _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- __that.splice_after(__ite, __x, __x.before_begin());
- }
- ++__ite;
- }
- if (!__x.empty()) {
- __that.splice_after(__ite, __x);
- }
- }
- else {
- typename slist<_Tp, _Alloc>::iterator __i1(__that.before_begin()), __i2(__x.begin());
- while (__i1._M_node->_M_next && __i2._M_node) {
- if (__comp(__STATIC_CAST(_Node*, __i1._M_node->_M_next)->_M_data, *__i2)) {
- _STLP_VERBOSE_ASSERT(!__comp(*__i2, __STATIC_CAST(_Node*, __i1._M_node->_M_next)->_M_data),
- _StlMsg_INVALID_STRICT_WEAK_PREDICATE)
- ++__i1;
- }
- else {
- __i1 = __that.insert_after(__i1, *(__i2++));
- }
- }
- __that.insert_after(__i1, __i2, __x.end());
- __x.clear();
- }
-}
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _Slist_sort(slist<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp) {
- if (!__that.begin()._M_node || !__that.begin()._M_node->_M_next)
- return;
-
- slist<_Tp, _Alloc> __carry(__that.get_allocator());
- const int NB = 64;
- _STLP_PRIV _CArray<slist<_Tp, _Alloc>, NB> __counter(__carry);
- int __fill = 0;
- while (!__that.empty()) {
- __carry.splice_after(__carry.before_begin(), __that, __that.before_begin());
- int __i = 0;
- while (__i < __fill && !__counter[__i].empty()) {
- _STLP_PRIV _Slist_merge(__counter[__i], __carry, __comp);
- __carry.swap(__counter[__i]);
- ++__i;
- }
- __carry.swap(__counter[__i]);
- if (__i == __fill) {
- ++__fill;
- if (__fill >= NB) {
- //Looks like the slist has too many elements to be sorted with this algorithm:
- __stl_throw_overflow_error("slist::sort");
- }
- }
- }
-
- for (int __i = 1; __i < __fill; ++__i)
- _STLP_PRIV _Slist_merge(__counter[__i], __counter[__i - 1], __comp);
- __that.swap(__counter[__fill-1]);
-}
-
-#if defined (slist)
-# undef slist
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# undef size_type
-#endif
-
-#endif /* _STLP_SLIST_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_slist.h b/stlport/stlport/stl/_slist.h
deleted file mode 100644
index 924daa4..0000000
--- a/stlport/stlport/stl/_slist.h
+++ /dev/null
@@ -1,914 +0,0 @@
-/*
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_SLIST_H
-#define _STLP_INTERNAL_SLIST_H
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-#ifndef _STLP_INTERNAL_SLIST_BASE_H
-# include <stl/_slist_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp>
-class _Slist_node : public _Slist_node_base {
-public:
- _Tp _M_data;
- __TRIVIAL_STUFF(_Slist_node)
-};
-
-struct _Slist_iterator_base {
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef forward_iterator_tag iterator_category;
-
- _Slist_node_base *_M_node;
-
- _Slist_iterator_base(_Slist_node_base *__x) : _M_node(__x) {}
-
- void _M_incr() {
- _M_node = _M_node->_M_next;
- }
-};
-
-template <class _Tp, class _Traits>
-class _Slist_iterator : public _Slist_iterator_base {
-public:
- typedef typename _Traits::value_type value_type;
- typedef typename _Traits::pointer pointer;
- typedef typename _Traits::reference reference;
- typedef forward_iterator_tag iterator_category;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
-
- typedef _Slist_iterator<_Tp, _Traits> _Self;
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
- typedef _Slist_iterator<_Tp, _NonConstTraits> iterator;
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef _Slist_iterator<_Tp, _ConstTraits> const_iterator;
-
- typedef _Slist_node<value_type> _Node;
-
- explicit _Slist_iterator(_Slist_node_base *__x) : _Slist_iterator_base(__x) {}
- _Slist_iterator() : _Slist_iterator_base(0) {}
- //copy constructor for iterator and constructor from iterator for const_iterator
- _Slist_iterator(const iterator& __x) : _Slist_iterator_base(__x._M_node) {}
-
- reference operator*() const { return __STATIC_CAST(_Node*, this->_M_node)->_M_data; }
-
- _STLP_DEFINE_ARROW_OPERATOR
-
- _Self& operator++() {
- _M_incr();
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- _M_incr();
- return __tmp;
- }
-
- bool operator==(const_iterator __y ) const {
- return this->_M_node == __y._M_node;
- }
- bool operator!=(const_iterator __y ) const {
- return this->_M_node != __y._M_node;
- }
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Tp, class _Traits>
-struct __type_traits<_STLP_PRIV _Slist_iterator<_Tp, _Traits> > {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Tp, class _Traits>
-inline _Tp* _STLP_CALL value_type(const _STLP_PRIV _Slist_iterator<_Tp, _Traits>&) { return __STATIC_CAST(_Tp*, 0); }
-inline ptrdiff_t* _STLP_CALL distance_type(const _STLP_PRIV _Slist_iterator_base&) { return 0; }
-inline forward_iterator_tag _STLP_CALL iterator_category(const _STLP_PRIV _Slist_iterator_base&) { return forward_iterator_tag(); }
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif /* OLD_QUERIES */
-
-// Base class that encapsulates details of allocators and simplifies EH
-template <class _Tp, class _Alloc>
-class _Slist_base {
-protected:
- typedef _Slist_node<_Tp> _Node;
- typedef typename _Alloc_traits<_Node,_Alloc>::allocator_type _M_node_allocator_type;
- typedef _Slist_base<_Tp, _Alloc> _Self;
-
-public:
- typedef _STLP_alloc_proxy<_Slist_node_base, _Node, _M_node_allocator_type> _AllocProxy;
-
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef _Alloc allocator_type;
-
- _Slist_base(const allocator_type& __a) :
- _M_head(_STLP_CONVERT_ALLOCATOR(__a, _Node), _Slist_node_base() )
- { _M_head._M_data._M_next = 0; }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _Slist_base(__move_source<_Self> src) :
- _M_head(__move_source<_AllocProxy>(src.get()._M_head))
- { src.get()._M_head._M_data._M_next = 0; }
-#endif
-
- ~_Slist_base() { _M_erase_after(&_M_head._M_data, 0); }
-
-protected:
- _Slist_node_base* _M_erase_after(_Slist_node_base* __pos) {
- _Node* __next = __STATIC_CAST(_Node*, __pos->_M_next);
- _Slist_node_base* __next_next = __next->_M_next;
- __pos->_M_next = __next_next;
- _STLP_STD::_Destroy(&__next->_M_data);
- _M_head.deallocate(__next,1);
- return __next_next;
- }
- _Slist_node_base* _M_erase_after(_Slist_node_base*, _Slist_node_base*);
-
-public:
- allocator_type get_allocator() const
- { return _STLP_CONVERT_ALLOCATOR((const _M_node_allocator_type&)_M_head, _Tp); }
- _AllocProxy _M_head;
-};
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define slist _STLP_PTR_IMPL_NAME(slist)
-#elif defined (_STLP_DEBUG)
-# define slist _STLP_NON_DBG_NAME(slist)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
-class slist;
-
-#if !defined (slist)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-// helper functions to reduce code duplication
-template <class _Tp, class _Alloc, class _BinaryPredicate>
-void _Slist_unique(slist<_Tp, _Alloc>& __that, _BinaryPredicate __binary_pred);
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _Slist_merge(slist<_Tp, _Alloc>& __that, slist<_Tp, _Alloc>& __x,
- _StrictWeakOrdering __comp);
-
-template <class _Tp, class _Alloc, class _StrictWeakOrdering>
-void _Slist_sort(slist<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp);
-
-#if !defined (slist)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, class _Alloc>
-class slist : protected _STLP_PRIV _Slist_base<_Tp,_Alloc>
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (slist)
- , public __stlport_class<slist<_Tp, _Alloc> >
-#endif
-{
-private:
- typedef _STLP_PRIV _Slist_base<_Tp,_Alloc> _Base;
- typedef slist<_Tp,_Alloc> _Self;
-public:
- typedef _Tp value_type;
-
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef forward_iterator_tag _Iterator_category;
-
- typedef _STLP_PRIV _Slist_iterator<_Tp, _Nonconst_traits<_Tp> > iterator;
- typedef _STLP_PRIV _Slist_iterator<_Tp, _Const_traits<_Tp> > const_iterator;
-
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef typename _Base::allocator_type allocator_type;
-
-private:
- typedef _STLP_PRIV _Slist_node<_Tp> _Node;
- typedef _STLP_PRIV _Slist_node_base _Node_base;
-
-#if !defined(_STLP_DONT_SUP_DFLT_PARAM)
- _Node* _M_create_node(const value_type& __x = _Tp()) {
-#else
- _Node* _M_create_node(const value_type& __x) {
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- _Node* __node = this->_M_head.allocate(1);
- _STLP_TRY {
- _Copy_Construct(&__node->_M_data, __x);
- __node->_M_next = 0;
- }
- _STLP_UNWIND(this->_M_head.deallocate(__node, 1))
- return __node;
- }
-
-#if defined(_STLP_DONT_SUP_DFLT_PARAM)
- _Node* _M_create_node() {
- _Node* __node = this->_M_head.allocate(1);
- _STLP_TRY {
- _STLP_STD::_Construct(&__node->_M_data);
- __node->_M_next = 0;
- }
- _STLP_UNWIND(this->_M_head.deallocate(__node, 1))
- return __node;
- }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
-public:
-
- allocator_type get_allocator() const { return _Base::get_allocator(); }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit slist(const allocator_type& __a = allocator_type())
-#else
- slist()
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type()) {}
- slist(const allocator_type& __a)
-#endif
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a) {}
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit slist(size_type __n, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp),
- const allocator_type& __a = allocator_type())
-#else
- explicit slist(size_type __n)
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type())
- { _M_insert_after_fill(&this->_M_head._M_data, __n, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
- slist(size_type __n, const value_type& __x)
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type())
- { _M_insert_after_fill(&this->_M_head._M_data, __n, __x); }
- slist(size_type __n, const value_type& __x, const allocator_type& __a)
-#endif
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a)
- { _M_insert_after_fill(&this->_M_head._M_data, __n, __x); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // We don't need any dispatching tricks here, because _M_insert_after_range
- // already does them.
- template <class _InputIterator>
- slist(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a)
- { _M_insert_after_range(&this->_M_head._M_data, __first, __last); }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- // VC++ needs this crazyness
- template <class _InputIterator>
- slist(_InputIterator __first, _InputIterator __last)
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type())
- { _M_insert_after_range(&this->_M_head._M_data, __first, __last); }
-# endif
-#else /* _STLP_MEMBER_TEMPLATES */
- slist(const_iterator __first, const_iterator __last,
- const allocator_type& __a = allocator_type() )
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a)
- { _M_insert_after_range(&this->_M_head._M_data, __first, __last); }
- slist(const value_type* __first, const value_type* __last,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a)
- { _M_insert_after_range(&this->_M_head._M_data, __first, __last); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- slist(const _Self& __x)
- : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__x.get_allocator())
- { _M_insert_after_range(&this->_M_head._M_data, __x.begin(), __x.end()); }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- slist(__move_source<_Self> src)
- : _STLP_PRIV _Slist_base<_Tp, _Alloc>(__move_source<_Base>(src.get())) {}
-#endif
-
- _Self& operator= (const _Self& __x);
-
- ~slist() {}
-
-public:
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); }
-
-private:
- void _M_fill_assign(size_type __n, const _Tp& __val);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-public:
- template <class _InputIterator>
- void assign(_InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-
-private:
- template <class _Integer>
- void _M_assign_dispatch(_Integer __n, _Integer __val,
- const __true_type& /*_IsIntegral*/) {
- _M_fill_assign((size_type) __n, (_Tp) __val);
- }
-
- template <class _InputIter>
- void _M_assign_dispatch(_InputIter __first, _InputIter __last,
- const __false_type& /*_IsIntegral*/) {
-#else
-public:
- void assign(const_pointer __first, const_pointer __last) {
- _Node_base* __prev = &this->_M_head._M_data;
- _Node_base* __node = this->_M_head._M_data._M_next;
- while (__node != 0 && __first != __last) {
- __STATIC_CAST(_Node*, __node)->_M_data = *__first;
- __prev = __node;
- __node = __node->_M_next;
- ++__first;
- }
- if (__first != __last)
- _M_insert_after_range(__prev, __first, __last);
- else
- this->_M_erase_after(__prev, 0);
- }
- void assign(const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- _Node_base* __prev = &this->_M_head._M_data;
- _Node_base* __node = this->_M_head._M_data._M_next;
- while (__node != 0 && __first != __last) {
- __STATIC_CAST(_Node*, __node)->_M_data = *__first;
- __prev = __node;
- __node = __node->_M_next;
- ++__first;
- }
- if (__first != __last)
- _M_insert_after_range(__prev, __first, __last);
- else
- this->_M_erase_after(__prev, 0);
- }
-
-public:
-
- // Experimental new feature: before_begin() returns a
- // non-dereferenceable iterator that, when incremented, yields
- // begin(). This iterator may be used as the argument to
- // insert_after, erase_after, etc. Note that even for an empty
- // slist, before_begin() is not the same iterator as end(). It
- // is always necessary to increment before_begin() at least once to
- // obtain end().
- iterator before_begin() { return iterator(&this->_M_head._M_data); }
- const_iterator before_begin() const
- { return const_iterator(__CONST_CAST(_Node_base*, &this->_M_head._M_data)); }
-
- iterator begin() { return iterator(this->_M_head._M_data._M_next); }
- const_iterator begin() const
- { return const_iterator(this->_M_head._M_data._M_next);}
-
- iterator end() { return iterator(); }
- const_iterator end() const { return const_iterator(); }
-
- size_type size() const
- { return _STLP_PRIV _Sl_global_inst::size(this->_M_head._M_data._M_next); }
-
- size_type max_size() const { return size_type(-1); }
-
- bool empty() const { return this->_M_head._M_data._M_next == 0; }
-
- void swap(_Self& __x)
- { this->_M_head.swap(__x._M_head); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
-public:
- reference front() { return *begin(); }
- const_reference front() const { return *begin(); }
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void push_front(const value_type& __x = _Tp()) {
-#else
- void push_front(const value_type& __x) {
-#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
- _STLP_PRIV __slist_make_link(&this->_M_head._M_data, _M_create_node(__x));
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void push_front() { _STLP_PRIV __slist_make_link(&this->_M_head._M_data, _M_create_node());}
-#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/
-
- void pop_front() {
- _Node* __node = __STATIC_CAST(_Node*, this->_M_head._M_data._M_next);
- this->_M_head._M_data._M_next = __node->_M_next;
- _STLP_STD::_Destroy(&__node->_M_data);
- this->_M_head.deallocate(__node, 1);
- }
-
- iterator previous(const_iterator __pos) {
- return iterator(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node));
- }
- const_iterator previous(const_iterator __pos) const {
- return const_iterator(__CONST_CAST(_Node_base*,
- _STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data,
- __pos._M_node)));
- }
-
-private:
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- _Node* _M_insert_after(_Node_base* __pos, const value_type& __x = _Tp()) {
-#else
- _Node* _M_insert_after(_Node_base* __pos, const value_type& __x) {
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- return __STATIC_CAST(_Node*, _STLP_PRIV __slist_make_link(__pos, _M_create_node(__x)));
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- _Node* _M_insert_after(_Node_base* __pos) {
- return __STATIC_CAST(_Node*, _STLP_PRIV __slist_make_link(__pos, _M_create_node()));
- }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
- void _M_insert_after_fill(_Node_base* __pos,
- size_type __n, const value_type& __x) {
- for (size_type __i = 0; __i < __n; ++__i)
- __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(__x));
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InIter>
- void _M_insert_after_range(_Node_base* __pos,
- _InIter __first, _InIter __last) {
- typedef typename _IsIntegral<_InIter>::_Ret _Integral;
- _M_insert_after_range(__pos, __first, __last, _Integral());
- }
-
- template <class _Integer>
- void _M_insert_after_range(_Node_base* __pos, _Integer __n, _Integer __x,
- const __true_type&) {
- _M_insert_after_fill(__pos, __n, __x);
- }
-
- template <class _InIter>
- void _M_insert_after_range(_Node_base* __pos,
- _InIter __first, _InIter __last,
- const __false_type&) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void _M_insert_after_range(_Node_base* __pos,
- const value_type* __first,
- const value_type* __last) {
- while (__first != __last) {
- __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
- ++__first;
- }
- }
- void _M_insert_after_range(_Node_base* __pos,
- const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- while (__first != __last) {
- __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
- ++__first;
- }
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InIter>
- void _M_splice_after_range(_Node_base* __pos,
- _InIter __first, _InIter __last) {
- typedef typename _IsIntegral<_InIter>::_Ret _Integral;
- _M_splice_after_range(__pos, __first, __last, _Integral());
- }
-
- template <class _Integer>
- void _M_splice_after_range(_Node_base* __pos, _Integer __n, _Integer __x,
- const __true_type&) {
- _M_insert_after_fill(__pos, __n, __x);
- }
-
- template <class _InIter>
- void _M_splice_after_range(_Node_base* __pos,
- _InIter __first, _InIter __last,
- const __false_type&) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void _M_splice_after_range(_Node_base* __pos,
- const value_type* __first,
- const value_type* __last) {
- while (__first != __last) {
- __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
- ++__first;
- }
- }
- void _M_splice_after_range(_Node_base* __pos,
- const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- //We use a temporary slist to avoid the auto reference troubles (infinite loop)
- _Self __tmp(__first, __last, this->get_allocator());
- splice_after(iterator(__pos), __tmp);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InIter>
- void _M_splice_range(_Node_base* __pos,
- _InIter __first, _InIter __last) {
- typedef typename _IsIntegral<_InIter>::_Ret _Integral;
- _M_splice_range(__pos, __first, __last, _Integral());
- }
-
- template <class _Integer>
- void _M_splice_range(_Node_base* __pos, _Integer __n, _Integer __x,
- const __true_type&) {
- _M_insert_after_fill(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos),
- __n, __x);
- }
-
- template <class _InIter>
- void _M_splice_range(_Node_base* __pos,
- _InIter __first, _InIter __last,
- const __false_type&) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void _M_splice_range(_Node_base* __pos,
- const value_type* __first,
- const value_type* __last) {
- while (__first != __last) {
- __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first));
- ++__first;
- }
- }
- void _M_splice_range(_Node_base* __pos,
- const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- //We use a temporary slist to avoid the auto reference troubles (infinite loop)
- _Self __tmp(__first, __last, this->get_allocator());
- splice(iterator(__pos), __tmp);
- }
-
-public:
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- iterator insert_after(iterator __pos, const value_type& __x = _Tp()) {
-#else
- iterator insert_after(iterator __pos, const value_type& __x) {
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- return iterator(_M_insert_after(__pos._M_node, __x));
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- iterator insert_after(iterator __pos) {
- return insert_after(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp));
- }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
- void insert_after(iterator __pos, size_type __n, const value_type& __x) {
- _M_insert_after_fill(__pos._M_node, __n, __x);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // We don't need any dispatching tricks here, because _M_insert_after_range
- // already does them.
- template <class _InIter>
- void insert_after(iterator __pos, _InIter __first, _InIter __last) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void insert_after(iterator __pos,
- const value_type* __first, const value_type* __last) {
- _M_insert_after_range(__pos._M_node, __first, __last);
- }
- void insert_after(iterator __pos,
- const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- _M_splice_after_range(__pos._M_node, __first, __last);
- }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- iterator insert(iterator __pos, const value_type& __x = _Tp()) {
-#else
- iterator insert(iterator __pos, const value_type& __x) {
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- return iterator(_M_insert_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
- __x));
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- iterator insert(iterator __pos) {
- return iterator(_M_insert_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
- _STLP_DEFAULT_CONSTRUCTED(_Tp)));
- }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
- void insert(iterator __pos, size_type __n, const value_type& __x) {
- _M_insert_after_fill(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), __n, __x);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- // We don't need any dispatching tricks here, because _M_insert_after_range
- // already does them.
- template <class _InIter>
- void insert(iterator __pos, _InIter __first, _InIter __last) {
-#else /* _STLP_MEMBER_TEMPLATES */
- void insert(iterator __pos, const value_type* __first,
- const value_type* __last) {
- _M_insert_after_range(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
- __first, __last);
- }
- void insert(iterator __pos, const_iterator __first, const_iterator __last) {
-#endif /* _STLP_MEMBER_TEMPLATES */
- _M_splice_range(__pos._M_node, __first, __last);
- }
-
-public:
- iterator erase_after(iterator __pos)
- { return iterator(this->_M_erase_after(__pos._M_node)); }
- iterator erase_after(iterator __before_first, iterator __last)
- { return iterator(this->_M_erase_after(__before_first._M_node, __last._M_node)); }
-
- iterator erase(iterator __pos)
- { return iterator(this->_M_erase_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node))); }
- iterator erase(iterator __first, iterator __last)
- { return iterator(this->_M_erase_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __first._M_node), __last._M_node)); }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type new_size, const value_type& __x = _Tp());
-#else
- void resize(size_type new_size, const value_type& __x);
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type new_size) { resize(new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
- void clear()
- { this->_M_erase_after(&this->_M_head._M_data, 0); }
-
-public:
- // Moves the range [__before_first + 1, __before_last + 1) to *this,
- // inserting it immediately after __pos. This is constant time.
- void splice_after(iterator __pos, _Self& __x,
- iterator __before_first, iterator __before_last) {
- if (__before_first != __before_last) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node,
- __before_first._M_node, __before_last._M_node);
- }
- else {
- this->insert_after(__pos, iterator(__before_first._M_node->_M_next), iterator(__before_last._M_node->_M_next));
- __x.erase_after(__before_first, ++__before_last);
- }
- }
- }
-
- // Moves the element that follows __prev to *this, inserting it immediately
- // after __pos. This is constant time.
- void splice_after(iterator __pos, _Self& __x, iterator __prev) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node,
- __prev._M_node, __prev._M_node->_M_next);
- }
- else {
- this->insert_after(__pos, __STATIC_CAST(_Node*, __prev._M_node->_M_next)->_M_data);
- __x.erase_after(__prev);
- }
- }
-
- // Removes all of the elements from the list __x to *this, inserting
- // them immediately after __pos. __x must not be *this. Complexity:
- // linear in __x.size().
- void splice_after(iterator __pos, _Self& __x) {
- if (this->get_allocator() == __x.get_allocator())
- _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node, &__x._M_head._M_data);
- else {
- this->insert_after(__pos, __x.begin(), __x.end());
- __x.clear();
- }
- }
-
- // Linear in distance(begin(), __pos), and linear in __x.size().
- void splice(iterator __pos, _Self& __x) {
- if (__x._M_head._M_data._M_next) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _Sl_global_inst::__splice_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
- &__x._M_head._M_data,
- _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, 0));
- }
- else {
- insert(__pos, __x.begin(), __x.end());
- __x.clear();
- }
- }
- }
-
- // Linear in distance(begin(), __pos), and in distance(__x.begin(), __i).
- void splice(iterator __pos, _Self& __x, iterator __i) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _Sl_global_inst::__splice_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
- _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, __i._M_node),
- __i._M_node);
- }
- else {
- insert(__pos, *__i);
- __x.erase(__i);
- }
- }
-
- // Linear in distance(begin(), __pos), in distance(__x.begin(), __first),
- // and in distance(__first, __last).
- void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) {
- if (__first != __last) {
- if (this->get_allocator() == __x.get_allocator()) {
- _STLP_PRIV _Sl_global_inst::__splice_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node),
- _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, __first._M_node),
- _STLP_PRIV _Sl_global_inst::__previous(__first._M_node, __last._M_node));
- }
- else {
- insert(__pos, __first, __last);
- __x.erase(__first, __last);
- }
- }
- }
-
-public:
- void reverse() {
- if (this->_M_head._M_data._M_next)
- this->_M_head._M_data._M_next = _STLP_PRIV _Sl_global_inst::__reverse(this->_M_head._M_data._M_next);
- }
-
- void remove(const _Tp& __val);
-
- void unique() { _STLP_PRIV _Slist_unique(*this, equal_to<value_type>()); }
- void merge(_Self& __x) { _STLP_PRIV _Slist_merge(*this, __x, less<value_type>()); }
- void sort() { _STLP_PRIV _Slist_sort(*this, less<value_type>()); }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Predicate>
- void remove_if(_Predicate __pred) {
- _Node_base* __cur = &this->_M_head._M_data;
- while (__cur->_M_next) {
- if (__pred(__STATIC_CAST(_Node*, __cur->_M_next)->_M_data))
- this->_M_erase_after(__cur);
- else
- __cur = __cur->_M_next;
- }
- }
-
- template <class _BinaryPredicate>
- void unique(_BinaryPredicate __pred)
- { _STLP_PRIV _Slist_unique(*this, __pred); }
-
- template <class _StrictWeakOrdering>
- void merge(_Self& __x, _StrictWeakOrdering __comp)
- { _STLP_PRIV _Slist_merge(*this, __x, __comp); }
-
- template <class _StrictWeakOrdering>
- void sort(_StrictWeakOrdering __comp)
- { _STLP_PRIV _Slist_sort(*this, __comp); }
-#endif /* _STLP_MEMBER_TEMPLATES */
-};
-
-#if defined (slist)
-# undef slist
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_slist.c>
-#endif
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# include <stl/pointers/_slist.h>
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_slist.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp, class _Alloc>
-inline bool _STLP_CALL
-operator == (const slist<_Tp,_Alloc>& _SL1, const slist<_Tp,_Alloc>& _SL2) {
- typedef typename slist<_Tp,_Alloc>::const_iterator const_iterator;
- const_iterator __end1 = _SL1.end();
- const_iterator __end2 = _SL2.end();
-
- const_iterator __i1 = _SL1.begin();
- const_iterator __i2 = _SL2.begin();
- while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) {
- ++__i1;
- ++__i2;
- }
- return __i1 == __end1 && __i2 == __end2;
-}
-
-#define _STLP_EQUAL_OPERATOR_SPECIALIZED
-#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER slist<_Tp, _Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-#undef _STLP_EQUAL_OPERATOR_SPECIALIZED
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Tp, class _Alloc>
-struct __move_traits<slist<_Tp, _Alloc> > {
- typedef __true_type implemented;
- typedef typename __move_traits<_Alloc>::complete complete;
-};
-# endif
-
-// Specialization of insert_iterator so that insertions will be constant
-// time rather than linear time.
-template <class _Tp, class _Alloc>
-class insert_iterator<slist<_Tp, _Alloc> > {
-protected:
- typedef slist<_Tp, _Alloc> _Container;
- _Container* _M_container;
- typename _Container::iterator _M_iter;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x, typename _Container::iterator __i)
- : _M_container(&__x) {
- if (__i == __x.begin())
- _M_iter = __x.before_begin();
- else
- _M_iter = __x.previous(__i);
- }
-
- insert_iterator<_Container>&
- operator = (const typename _Container::value_type& __val) {
- _M_iter = _M_container->insert_after(_M_iter, __val);
- return *this;
- }
-
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_SLIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_slist_base.c b/stlport/stlport/stl/_slist_base.c
deleted file mode 100644
index e0e68c9..0000000
--- a/stlport/stlport/stl/_slist_base.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_SLIST_BASE_C
-#define _STLP_SLIST_BASE_C
-
-#ifndef _STLP_INTERNAL_SLIST_BASE_H
-# include <stl/_slist_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Dummy>
-_Slist_node_base* _STLP_CALL
-_Sl_global<_Dummy>::__previous(_Slist_node_base* __head,
- const _Slist_node_base* __node) {
- while (__head && __head->_M_next != __node)
- __head = __head->_M_next;
- return __head;
-}
-
-template <class _Dummy>
-void _STLP_CALL
-_Sl_global<_Dummy>::__splice_after(_Slist_node_base* __pos, _Slist_node_base* __head) {
- _Slist_node_base* __before_last = __previous(__head, 0);
- if (__before_last != __head) {
- _Slist_node_base* __after = __pos->_M_next;
- __pos->_M_next = __head->_M_next;
- __head->_M_next = 0;
- __before_last->_M_next = __after;
- }
-}
-
-template <class _Dummy>
-void _STLP_CALL
-_Sl_global<_Dummy>::__splice_after(_Slist_node_base* __pos,
- _Slist_node_base* __before_first,
- _Slist_node_base* __before_last) {
- if (__pos != __before_first && __pos != __before_last) {
- _Slist_node_base* __first = __before_first->_M_next;
- _Slist_node_base* __after = __pos->_M_next;
- __before_first->_M_next = __before_last->_M_next;
- __pos->_M_next = __first;
- __before_last->_M_next = __after;
- }
-}
-
-template <class _Dummy>
-_Slist_node_base* _STLP_CALL
-_Sl_global<_Dummy>::__reverse(_Slist_node_base* __node) {
- _Slist_node_base* __result = __node;
- __node = __node->_M_next;
- __result->_M_next = 0;
- while(__node) {
- _Slist_node_base* __next = __node->_M_next;
- __node->_M_next = __result;
- __result = __node;
- __node = __next;
- }
- return __result;
-}
-
-template <class _Dummy>
-size_t _STLP_CALL
-_Sl_global<_Dummy>::size(_Slist_node_base* __node) {
- size_t __result = 0;
- for ( ; __node != 0; __node = __node->_M_next)
- ++__result;
- return __result;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_SLIST_BASE_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_slist_base.h b/stlport/stlport/stl/_slist_base.h
deleted file mode 100644
index 3afa18a..0000000
--- a/stlport/stlport/stl/_slist_base.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_SLIST_BASE_H
-#define _STLP_INTERNAL_SLIST_BASE_H
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-struct _Slist_node_base {
- _Slist_node_base* _M_next;
-};
-
-inline _Slist_node_base*
-__slist_make_link(_Slist_node_base* __prev_node,
- _Slist_node_base* __new_node) {
- __new_node->_M_next = __prev_node->_M_next;
- __prev_node->_M_next = __new_node;
- return __new_node;
-}
-
-
-template <class _Dummy>
-class _Sl_global {
-public:
- // those used to be global functions
- // moved here to reduce code bloat without templatizing _Slist_iterator_base
- static size_t _STLP_CALL size(_Slist_node_base* __node);
- static _Slist_node_base* _STLP_CALL __reverse(_Slist_node_base* __node);
- static void _STLP_CALL __splice_after(_Slist_node_base* __pos,
- _Slist_node_base* __before_first,
- _Slist_node_base* __before_last);
-
- static void _STLP_CALL __splice_after(_Slist_node_base* __pos, _Slist_node_base* __head);
-
- static _Slist_node_base* _STLP_CALL __previous(_Slist_node_base* __head,
- const _Slist_node_base* __node);
- static const _Slist_node_base* _STLP_CALL __previous(const _Slist_node_base* __head,
- const _Slist_node_base* __node) {
- return _Sl_global<_Dummy>::__previous(__CONST_CAST(_Slist_node_base*, __head), __node);
- }
-};
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _Sl_global<bool>;
-#endif
-
-typedef _Sl_global<bool> _Sl_global_inst;
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION) && defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION)
-# include <stl/_slist_base.c>
-#endif
-
-#endif /* _STLP_INTERNAL_SLIST_BASE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_stack.h b/stlport/stlport/stl/_stack.h
deleted file mode 100644
index 7ea9d59..0000000
--- a/stlport/stlport/stl/_stack.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_STACK_H
-#define _STLP_INTERNAL_STACK_H
-
-#ifndef _STLP_INTERNAL_DEQUE_H
-# include <stl/_deque.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if !defined ( _STLP_LIMITED_DEFAULT_TEMPLATES )
-template <class _Tp, class _Sequence = deque<_Tp> >
-#elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS )
-# define _STLP_STACK_ARGS _Tp
-template <class _Tp>
-#else
-template <class _Tp, class _Sequence>
-#endif
-class stack
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
-# if defined (_STLP_STACK_ARGS)
- : public __stlport_class<stack<_Tp> >
-# else
- : public __stlport_class<stack<_Tp, _Sequence> >
-# endif
-#endif
-{
-#ifdef _STLP_STACK_ARGS
- typedef deque<_Tp> _Sequence;
- typedef stack<_Tp> _Self;
-#else
- typedef stack<_Tp, _Sequence> _Self;
-#endif
-
-public:
- typedef typename _Sequence::value_type value_type;
- typedef typename _Sequence::size_type size_type;
- typedef _Sequence container_type;
-
- typedef typename _Sequence::reference reference;
- typedef typename _Sequence::const_reference const_reference;
-protected:
- //c is a Standard name (23.2.3.3), do no make it STLport naming convention compliant.
- _Sequence c;
-public:
- stack() : c() {}
- explicit stack(const _Sequence& __s) : c(__s) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- stack(__move_source<_Self> src)
- : c(_STLP_PRIV _AsMoveSource(src.get().c)) {}
-#endif
-
- bool empty() const { return c.empty(); }
- size_type size() const { return c.size(); }
- reference top() { return c.back(); }
- const_reference top() const { return c.back(); }
- void push(const value_type& __x) { c.push_back(__x); }
- void pop() { c.pop_back(); }
- const _Sequence& _Get_s() const { return c; }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) {
- _Sequence __tmp = c;
- c = __x.c;
- __x.c = __tmp;
- }
-#endif
-};
-
-#ifndef _STLP_STACK_ARGS
-# define _STLP_STACK_ARGS _Tp, _Sequence
-# define _STLP_STACK_HEADER_ARGS class _Tp, class _Sequence
-#else
-# define _STLP_STACK_HEADER_ARGS class _Tp
-#endif
-
-template < _STLP_STACK_HEADER_ARGS >
-inline bool _STLP_CALL operator==(const stack< _STLP_STACK_ARGS >& __x,
- const stack< _STLP_STACK_ARGS >& __y)
-{ return __x._Get_s() == __y._Get_s(); }
-
-template < _STLP_STACK_HEADER_ARGS >
-inline bool _STLP_CALL operator<(const stack< _STLP_STACK_ARGS >& __x,
- const stack< _STLP_STACK_ARGS >& __y)
-{ return __x._Get_s() < __y._Get_s(); }
-
-_STLP_RELOPS_OPERATORS(template < _STLP_STACK_HEADER_ARGS >, stack< _STLP_STACK_ARGS >)
-
-#undef _STLP_STACK_ARGS
-#undef _STLP_STACK_HEADER_ARGS
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Tp, class _Sequence>
-struct __move_traits<stack<_Tp, _Sequence> > :
- _STLP_PRIV __move_traits_aux<_Sequence>
-{};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_STACK_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_stlport_version.h b/stlport/stlport/stl/_stlport_version.h
deleted file mode 100644
index 587651d..0000000
--- a/stlport/stlport/stl/_stlport_version.h
+++ /dev/null
@@ -1,30 +0,0 @@
- /*
- *
- * Copyright (c) 2005
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STLPORT_VERSION_H
-#define _STLP_STLPORT_VERSION_H
-
-/* The last SGI STL release we merged with */
-#define __SGI_STL 0x330
-
-/* STLport version */
-#define _STLPORT_MAJOR 5
-#define _STLPORT_MINOR 2
-#define _STLPORT_PATCHLEVEL 1
-
-#define _STLPORT_VERSION 0x521
-
-#endif /* _STLP_STLPORT_VERSION_H */
diff --git a/stlport/stlport/stl/_stream_iterator.h b/stlport/stlport/stl/_stream_iterator.h
deleted file mode 100644
index aa26ae3..0000000
--- a/stlport/stlport/stl/_stream_iterator.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1998
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#if !defined (_STLP_INTERNAL_STREAM_ITERATOR_H) && !defined (_STLP_USE_NO_IOSTREAMS)
-#define _STLP_INTERNAL_STREAM_ITERATOR_H
-
-#ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-#endif
-
-// streambuf_iterators predeclarations must appear first
-#ifndef _STLP_INTERNAL_IOSFWD
-# include <stl/_iosfwd.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H
-# include <stl/_ostreambuf_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H
-# include <stl/_istreambuf_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ISTREAM
-# include <stl/_istream.h>
-#endif
-
-// istream_iterator and ostream_iterator look very different if we're
-// using new, templatized iostreams than if we're using the old cfront
-// version.
-
-_STLP_BEGIN_NAMESPACE
-
-#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
-# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp, class _CharT, class _Traits, class _Dist
-# define __ISI_TMPL_ARGUMENTS _Tp, _CharT, _Traits, _Dist
-template <class _Tp,
- class _CharT = char, class _Traits = char_traits<_CharT>,
- class _Dist = ptrdiff_t>
-class istream_iterator : public iterator<input_iterator_tag, _Tp , _Dist,
- const _Tp*, const _Tp& > {
-#else
-# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM)
-# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp
-# define __ISI_TMPL_ARGUMENTS _Tp
-template <class _Tp>
-class istream_iterator : public iterator<input_iterator_tag, _Tp , ptrdiff_t,
- const _Tp*, const _Tp& > {
-# else
-# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp, class _Dist
-# define __ISI_TMPL_ARGUMENTS _Tp, _Dist
-template <class _Tp, _STLP_DFL_TYPE_PARAM(_Dist, ptrdiff_t)>
-class istream_iterator : public iterator<input_iterator_tag, _Tp, _Dist ,
- const _Tp*, const _Tp& > {
-# endif /* _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS */
-#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */
-
-#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
- typedef char _CharT;
- typedef char_traits<char> _Traits;
-# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM)
- typedef ptrdiff_t _Dist;
-# endif
-#endif
-
- typedef istream_iterator< __ISI_TMPL_ARGUMENTS > _Self;
-public:
- typedef _CharT char_type;
- typedef _Traits traits_type;
- typedef basic_istream<_CharT, _Traits> istream_type;
-
- typedef input_iterator_tag iterator_category;
- typedef _Tp value_type;
- typedef _Dist difference_type;
- typedef const _Tp* pointer;
- typedef const _Tp& reference;
-
- istream_iterator() : _M_stream(0), _M_ok(false), _M_read_done(true) {}
- istream_iterator(istream_type& __s) : _M_stream(&__s), _M_ok(false), _M_read_done(false) {}
-
- reference operator*() const {
- if (!_M_read_done) {
- _M_read();
- }
- return _M_value;
- }
-
- _STLP_DEFINE_ARROW_OPERATOR
-
- _Self& operator++() {
- _M_read();
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- _M_read();
- return __tmp;
- }
-
- bool _M_equal(const _Self& __x) const {
- if (!_M_read_done) {
- _M_read();
- }
- if (!__x._M_read_done) {
- __x._M_read();
- }
- return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream);
- }
-
-private:
- istream_type* _M_stream;
- mutable _Tp _M_value;
- mutable bool _M_ok;
- mutable bool _M_read_done;
-
- void _M_read() const {
- _STLP_MUTABLE(_Self, _M_ok) = ((_M_stream != 0) && !_M_stream->fail());
- if (_M_ok) {
- *_M_stream >> _STLP_MUTABLE(_Self, _M_value);
- _STLP_MUTABLE(_Self, _M_ok) = !_M_stream->fail();
- }
- _STLP_MUTABLE(_Self, _M_read_done) = true;
- }
-};
-
-#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
-template <class _TpP,
- class _CharT = char, class _Traits = char_traits<_CharT> >
-#else
-template <class _TpP>
-#endif
-class ostream_iterator: public iterator<output_iterator_tag, void, void, void, void> {
-#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
- typedef char _CharT;
- typedef char_traits<char> _Traits;
- typedef ostream_iterator<_TpP> _Self;
-#else
- typedef ostream_iterator<_TpP, _CharT, _Traits> _Self;
-#endif
-public:
- typedef _CharT char_type;
- typedef _Traits traits_type;
- typedef basic_ostream<_CharT, _Traits> ostream_type;
-
- typedef output_iterator_tag iterator_category;
-
- ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {}
- ostream_iterator(ostream_type& __s, const _CharT* __c)
- : _M_stream(&__s), _M_string(__c) {}
- _Self& operator=(const _TpP& __val) {
- *_M_stream << __val;
- if (_M_string) *_M_stream << _M_string;
- return *this;
- }
- _Self& operator*() { return *this; }
- _Self& operator++() { return *this; }
- _Self& operator++(int) { return *this; }
-private:
- ostream_type* _M_stream;
- const _CharT* _M_string;
-};
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-# if defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
-template <class _TpP>
-inline output_iterator_tag _STLP_CALL
-iterator_category(const ostream_iterator<_TpP>&) { return output_iterator_tag(); }
-# else
-template <class _TpP, class _CharT, class _Traits>
-inline output_iterator_tag _STLP_CALL
-iterator_category(const ostream_iterator<_TpP, _CharT, _Traits>&) { return output_iterator_tag(); }
-# endif
-#endif
-
-_STLP_END_NAMESPACE
-
-// form-independent definiotion of stream iterators
-_STLP_BEGIN_NAMESPACE
-
-template < __ISI_TMPL_HEADER_ARGUMENTS >
-inline bool _STLP_CALL
-operator==(const istream_iterator< __ISI_TMPL_ARGUMENTS >& __x,
- const istream_iterator< __ISI_TMPL_ARGUMENTS >& __y)
-{ return __x._M_equal(__y); }
-
-#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
-template < __ISI_TMPL_HEADER_ARGUMENTS >
-inline bool _STLP_CALL
-operator!=(const istream_iterator< __ISI_TMPL_ARGUMENTS >& __x,
- const istream_iterator< __ISI_TMPL_ARGUMENTS >& __y)
-{ return !__x._M_equal(__y); }
-#endif
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-template < __ISI_TMPL_HEADER_ARGUMENTS >
-inline input_iterator_tag _STLP_CALL
-iterator_category(const istream_iterator< __ISI_TMPL_ARGUMENTS >&)
-{ return input_iterator_tag(); }
-template < __ISI_TMPL_HEADER_ARGUMENTS >
-inline _Tp* _STLP_CALL
-value_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (_Tp*) 0; }
-
-# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM)
-template < __ISI_TMPL_HEADER_ARGUMENTS >
-inline ptrdiff_t* _STLP_CALL
-distance_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (ptrdiff_t*)0; }
-# else
-template < __ISI_TMPL_HEADER_ARGUMENTS >
-inline _Dist* _STLP_CALL
-distance_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (_Dist*)0; }
-# endif /* _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS */
-#endif
-
-_STLP_END_NAMESPACE
-
-#undef __ISI_TMPL_HEADER_ARGUMENTS
-#undef __ISI_TMPL_ARGUMENTS
-
-#endif /* _STLP_INTERNAL_STREAM_ITERATOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_string.c b/stlport/stlport/stl/_string.c
deleted file mode 100644
index 4fa5ece..0000000
--- a/stlport/stlport/stl/_string.c
+++ /dev/null
@@ -1,673 +0,0 @@
-/*
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#ifndef _STLP_STRING_C
-#define _STLP_STRING_C
-
-#ifndef _STLP_INTERNAL_STRING_H
-# include <stl/_string.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CTRAITS_FUNCTIONS_H
-# include <stl/_ctraits_fns.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_H
-# include <stl/_function.h>
-#endif
-
-#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
-# define basic_string _STLP_NO_MEM_T_NAME(str)
-#elif defined (_STLP_DEBUG)
-# define basic_string _STLP_NON_DBG_NAME(str)
-#endif
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# define __size_type__ size_t
-# define size_type size_t
-# define iterator _CharT*
-#else
-# define __size_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_string<_CharT,_Traits,_Alloc>::size_type
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// A helper class to use a char_traits as a function object.
-template <class _Traits>
-struct _Not_within_traits : public unary_function<typename _Traits::char_type, bool> {
- typedef typename _Traits::char_type _CharT;
- const _CharT* _M_first;
- const _CharT* _M_last;
-
- _Not_within_traits(const _CharT* __f, const _CharT* __l)
- : _M_first(__f), _M_last(__l) {}
-
- bool operator()(const _CharT& __x) const {
- return find_if(_M_first, _M_last,
- _STLP_PRIV _Eq_char_bound<_Traits>(__x)) == _M_last;
- }
-};
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_of_aux(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits*, const __true_type& /* _STLportTraits */)
-{ return __find_first_of(__first1, __last1, __first2, __last2); }
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_of_aux(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits*, const __false_type& /* _STLportTraits */)
-{ return __find_first_of(__first1, __last1, __first2, __last2, _STLP_PRIV _Eq_traits<_Traits>()); }
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_of(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits* __traits) {
-#if !defined (__BORLANDC__)
- typedef typename _IsSTLportClass<_Traits>::_Ret _STLportTraits;
-#else
- enum { _Is = _IsSTLportClass<_Traits>::_Is };
- typedef typename __bool2type<_Is>::_Ret _STLportTraits;
-#endif
- return __str_find_first_of_aux(__first1, __last1, __first2, __last2, __traits, _STLportTraits());
-}
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_not_of_aux3(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits* /* __traits */, const __true_type& __useStrcspnLikeAlgo)
-{ return __find_first_of_aux2(__first1, __last1, __first2, __last2, __first2, not1(_Identity<bool>()), __useStrcspnLikeAlgo); }
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_not_of_aux3(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits* /* __traits */, const __false_type& /* _UseStrcspnLikeAlgo */)
-{ return _STLP_STD::find_if(__first1, __last1, _STLP_PRIV _Not_within_traits<_Traits>(__first2, __last2)); }
-
-template <class _InputIter, class _CharT, class _Tp, class _Traits>
-inline _InputIter __str_find_first_not_of_aux2(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Tp* __pt, _Traits* __traits) {
- typedef typename _IsIntegral<_Tp>::_Ret _IsIntegral;
- typedef typename _IsCharLikeType<_CharT>::_Ret _IsCharLike;
- typedef typename _Land2<_IsIntegral, _IsCharLike>::_Ret _UseStrcspnLikeAlgo;
- return __str_find_first_not_of_aux3(__first1, __last1, __first2, __last2, __traits, _UseStrcspnLikeAlgo());
-}
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_not_of_aux1(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits* __traits, const __true_type& /* _STLportTraits */)
-{ return __str_find_first_not_of_aux2(__first1, __last1, __first2, __last2,
- _STLP_VALUE_TYPE(__first1, _InputIter), __traits); }
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_not_of_aux1(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits*, const __false_type& /* _STLportTraits */)
-{ return _STLP_STD::find_if(__first1, __last1, _STLP_PRIV _Not_within_traits<_Traits>(__first2, __last2)); }
-
-template <class _InputIter, class _CharT, class _Traits>
-inline _InputIter __str_find_first_not_of(_InputIter __first1, _InputIter __last1,
- const _CharT* __first2, const _CharT* __last2,
- _Traits* __traits) {
-#if !defined (__BORLANDC__)
- typedef typename _IsSTLportClass<_Traits>::_Ret _STLportTraits;
-#else
- enum { _Is = _IsSTLportClass<_Traits>::_Is };
- typedef typename __bool2type<_Is>::_Ret _STLportTraits;
-#endif
- return __str_find_first_not_of_aux1(__first1, __last1, __first2, __last2, __traits, _STLportTraits());
-}
-
-// ------------------------------------------------------------
-// Non-inline declarations.
-
-#if !defined (basic_string)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-// Change the string's capacity so that it is large enough to hold
-// at least __res_arg elements, plus the terminating _CharT(). Note that,
-// if __res_arg < capacity(), this member function may actually decrease
-// the string's capacity.
-template <class _CharT, class _Traits, class _Alloc>
-void basic_string<_CharT,_Traits,_Alloc>::reserve(size_type __res_arg) {
- if (__res_arg > max_size())
- this->_M_throw_length_error();
-
- size_type __n = (max)(__res_arg, size()) + 1;
- if (__n < this->_M_capacity())
- return;
-
- _M_reserve(__n);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-void basic_string<_CharT,_Traits,_Alloc>::_M_reserve(size_type __n) {
- pointer __new_start = this->_M_start_of_storage.allocate(__n, __n);
- pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), this->_M_Finish(), __new_start);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __n);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT,_Traits,_Alloc>&
-basic_string<_CharT,_Traits,_Alloc>::append(size_type __n, _CharT __c) {
- if (__n > 0) {
- if (__n > max_size() - size())
- this->_M_throw_length_error();
- if (__n >= this->_M_rest())
- _M_reserve(_M_compute_next_size(__n));
- _STLP_PRIV __uninitialized_fill_n(this->_M_finish + 1, __n - 1, __c);
- _M_construct_null(this->_M_finish + __n);
- _Traits::assign(*end(), __c);
- this->_M_finish += __n;
- }
- return *this;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT, _Traits, _Alloc>&
-basic_string<_CharT, _Traits, _Alloc>::_M_append(const _CharT* __first, const _CharT* __last) {
- if (__first != __last) {
- size_type __n = __STATIC_CAST(size_type, __last - __first);
- if (__n >= this->_M_rest()) {
- size_type __len = _M_compute_next_size(__n);
- pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
- pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), this->_M_Finish(), __new_start);
- __new_finish = _STLP_PRIV __ucopy(__first, __last, __new_finish);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __len);
- }
- else {
- const _CharT* __f1 = __first;
- ++__f1;
- _STLP_PRIV __ucopy(__f1, __last, this->_M_finish + 1);
- _M_construct_null(this->_M_finish + __n);
- _Traits::assign(*end(), *__first);
- this->_M_finish += __n;
- }
- }
- return *this;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT,_Traits,_Alloc>&
-basic_string<_CharT,_Traits,_Alloc>::assign(size_type __n, _CharT __c) {
- if (__n <= size()) {
- _Traits::assign(this->_M_Start(), __n, __c);
- erase(begin() + __n, end());
- }
- else {
- if (__n < capacity()) {
- _Traits::assign(this->_M_Start(), size(), __c);
- append(__n - size(), __c);
- }
- else {
- _Self __str(__n, __c);
- this->swap(__str);
- }
- }
- return *this;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT,_Traits,_Alloc>&
-basic_string<_CharT,_Traits,_Alloc>::_M_assign(const _CharT* __f, const _CharT* __l) {
- ptrdiff_t __n = __l - __f;
- if (__STATIC_CAST(size_type, __n) <= size()) {
- _Traits::copy(this->_M_Start(), __f, __n);
- erase(begin() + __n, end());
- }
- else {
- _Traits::copy(this->_M_Start(), __f, size());
- _M_append(__f + size(), __l);
- }
- return *this;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-_CharT* basic_string<_CharT,_Traits,_Alloc> ::_M_insert_aux(_CharT* __p,
- _CharT __c) {
- pointer __new_pos = __p;
- if (this->_M_rest() > 1 ) {
- _M_construct_null(this->_M_finish + 1);
- _Traits::move(__p + 1, __p, this->_M_finish - __p);
- _Traits::assign(*__p, __c);
- ++this->_M_finish;
- }
- else {
- size_type __len = _M_compute_next_size(1);
- pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
- __new_pos = _STLP_PRIV __ucopy(this->_M_Start(), __p, __new_start);
- _Traits::assign(*__new_pos, __c);
- pointer __new_finish = __new_pos + 1;
- __new_finish = _STLP_PRIV __ucopy(__p, this->_M_finish, __new_finish);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __len);
- }
- return __new_pos;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-void basic_string<_CharT,_Traits,_Alloc>::insert(iterator __pos,
- size_t __n, _CharT __c) {
- if (__n != 0) {
- if (this->_M_rest() > __n) {
- const size_type __elems_after = this->_M_finish - __pos;
- pointer __old_finish = this->_M_finish;
- if (__elems_after >= __n) {
- _STLP_PRIV __ucopy((this->_M_finish - __n) + 1, this->_M_finish + 1, this->_M_finish + 1);
- this->_M_finish += __n;
- _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1);
- _Traits::assign(__pos, __n, __c);
- }
- else {
- _STLP_PRIV __uninitialized_fill_n(this->_M_finish + 1, __n - __elems_after - 1, __c);
- this->_M_finish += __n - __elems_after;
- _STLP_PRIV __ucopy(__pos, __old_finish + 1, this->_M_finish);
- this->_M_finish += __elems_after;
- _Traits::assign(__pos, __elems_after + 1, __c);
- }
- }
- else {
- size_type __len = _M_compute_next_size(__n);
- pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
- pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), __pos, __new_start);
- __new_finish = _STLP_PRIV __uninitialized_fill_n(__new_finish, __n, __c);
- __new_finish = _STLP_PRIV __ucopy(__pos, this->_M_finish, __new_finish);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __len);
- }
- }
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-void basic_string<_CharT,_Traits,_Alloc>::_M_insert(iterator __pos,
- const _CharT* __first, const _CharT* __last,
- bool __self_ref) {
- //this version has to take care about the auto referencing
- if (__first != __last) {
- const size_t __n = __last - __first;
- if (this->_M_rest() > __n) {
- const size_t __elems_after = this->_M_finish - __pos;
- pointer __old_finish = this->_M_finish;
- if (__elems_after >= __n) {
- _STLP_PRIV __ucopy((this->_M_finish - __n) + 1, this->_M_finish + 1, this->_M_finish + 1);
- this->_M_finish += __n;
- _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1);
- if (!__self_ref || __last < __pos) {
- _M_copy(__first, __last, __pos);
- }
- else {
- //We have to check that the source buffer hasn't move
- if (__first >= __pos) {
- //The source buffer has move
- __first += __n;
- __last += __n;
- _M_copy(__first, __last, __pos);
- }
- else {
- //The source buffer hasn't move, it has been duplicated
- _M_move(__first, __last, __pos);
- }
- }
- }
- else {
- const_iterator __mid = __first;
- __mid += __elems_after + 1;
- _STLP_PRIV __ucopy(__mid, __last, this->_M_finish + 1);
- this->_M_finish += __n - __elems_after;
- _STLP_PRIV __ucopy(__pos, __old_finish + 1, this->_M_finish);
- this->_M_finish += __elems_after;
- if (!__self_ref)
- _M_copy(__first, __mid, __pos);
- else
- _M_move(__first, __mid, __pos);
- }
- }
- else {
- size_type __len = _M_compute_next_size(__n);
- pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
- pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), __pos, __new_start);
- __new_finish = _STLP_PRIV __ucopy(__first, __last, __new_finish);
- __new_finish = _STLP_PRIV __ucopy(__pos, this->_M_finish, __new_finish);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __len);
- }
- }
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT,_Traits,_Alloc>&
-basic_string<_CharT,_Traits,_Alloc> ::replace(iterator __first, iterator __last,
- size_type __n, _CharT __c) {
- size_type __len = (size_type)(__last - __first);
-
- if (__len >= __n) {
- _Traits::assign(__first, __n, __c);
- erase(__first + __n, __last);
- }
- else {
- _Traits::assign(__first, __len, __c);
- insert(__last, __n - __len, __c);
- }
- return *this;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT,_Traits,_Alloc>&
-basic_string<_CharT,_Traits,_Alloc> ::_M_replace(iterator __first, iterator __last,
- const _CharT* __f, const _CharT* __l,
- bool __self_ref) {
- const ptrdiff_t __n = __l - __f;
- const difference_type __len = __last - __first;
- if (__len >= __n) {
- if (!__self_ref || __l < __first || __f >= __last)
- _M_copy(__f, __l, __first);
- else
- _M_move(__f, __l, __first);
- erase(__first + __n, __last);
- } else if (!__self_ref || (__f >= __last) || (__l <= __first)) { // no overlap
- const_iterator __m = __f + __len;
- _M_copy(__f, __m, __first);
- _M_insert(__last, __m, __l, __self_ref );
- } else if (__f < __first) { // we have to take care of overlaping
- const_iterator __m = __f + __len;
- // We have to deal with possible reallocation because we do insert first.
- const difference_type __off_dest = __first - this->begin();
- const difference_type __off_src = __f - this->begin();
- _M_insert(__last, __m, __l, true);
- _Traits::move(begin() + __off_dest, begin() + __off_src, __len);
- } else {
- const_iterator __m = __f + __len;
- _Traits::move(__first, __f, __len);
- _M_insert(__last, __m, __l, true);
- }
- return *this;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-__size_type__ basic_string<_CharT,_Traits,_Alloc>::find( const _CharT* __s, size_type __pos,
- size_type __n) const
-{
- const size_t __len = size();
- if (__pos >= __len || __pos + __n > __len) {
- if ( __n == 0 && __pos <= __len ) { // marginal case
- return __pos;
- }
- return npos;
- }
-
- const_pointer __result =
- _STLP_STD::search(this->_M_Start() + __pos, this->_M_Finish(),
- __s, __s + __n, _STLP_PRIV _Eq_traits<_Traits>());
- return __result != this->_M_Finish() ? __result - this->_M_Start() : npos;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-__size_type__ basic_string<_CharT,_Traits,_Alloc>::find(_CharT __c, size_type __pos) const
-{
- if (__pos >= size()) { /*__pos + 1 > size()*/
- return npos;
- }
-
- const_pointer __result =
- _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(),
- _STLP_PRIV _Eq_char_bound<_Traits>(__c));
- return __result != this->_M_Finish() ? __result - this->_M_Start() : npos;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-__size_type__ basic_string<_CharT,_Traits,_Alloc>::rfind(const _CharT* __s, size_type __pos,
- size_type __n) const
-{
- const size_type __len = size();
- if ( __len < __n ) {
- return npos;
- }
- const_pointer __last = this->_M_Start() + (min)( __len - __n, __pos) + __n;
- if ( __n == 0 ) { // marginal case
- return __last - this->_M_Start();
- }
- const_pointer __result = _STLP_STD::find_end(this->_M_Start(), __last,
- __s, __s + __n, _STLP_PRIV _Eq_traits<_Traits>());
- return __result != __last ? __result - this->_M_Start() : npos;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-__size_type__ basic_string<_CharT,_Traits,_Alloc>::rfind(_CharT __c, size_type __pos) const
-{
- const size_type __len = size();
- if ( __len < 1 ) {
- return npos;
- }
- const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
- const_reverse_iterator __rresult =
- _STLP_STD::find_if(const_reverse_iterator(__last), rend(),
- _STLP_PRIV _Eq_char_bound<_Traits>(__c));
- return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
-}
-
-template <class _CharT, class _Traits, class _Alloc> __size_type__
-basic_string<_CharT,_Traits,_Alloc> ::find_first_of(const _CharT* __s, size_type __pos,
- size_type __n) const {
- if (__pos >= size()) /*__pos + 1 > size()*/
- return npos;
- else {
- const_iterator __result = _STLP_PRIV __str_find_first_of(begin() + __pos, end(),
- __s, __s + __n,
- __STATIC_CAST(_Traits*, 0));
- return __result != end() ? __result - begin() : npos;
- }
-}
-
-template <class _CharT, class _Traits, class _Alloc>
- __size_type__
-basic_string<_CharT,_Traits,_Alloc> ::find_last_of(const _CharT* __s, size_type __pos,
- size_type __n) const
-{
- const size_type __len = size();
- if ( __len < 1 ) {
- return npos;
- }
- const const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
- const const_reverse_iterator __rresult =
- _STLP_PRIV __str_find_first_of(const_reverse_iterator(__last), rend(),
- __s, __s + __n,
- __STATIC_CAST(_Traits*, 0));
- return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
-}
-
-
-template <class _CharT, class _Traits, class _Alloc> __size_type__
-basic_string<_CharT,_Traits,_Alloc> ::find_first_not_of(const _CharT* __s, size_type __pos,
- size_type __n) const {
- typedef typename _Traits::char_type _CharType;
- if (__pos >= size()) /*__pos + 1 >= size()*/
- return npos;
- else {
- const_pointer __result = _STLP_PRIV __str_find_first_not_of(this->_M_Start() + __pos, this->_M_Finish(),
- __STATIC_CAST(const _CharType*, __s),
- __STATIC_CAST(const _CharType*, __s) + __n,
- __STATIC_CAST(_Traits*, 0));
- return __result != this->_M_finish ? __result - this->_M_Start() : npos;
- }
-}
-
-template <class _CharT, class _Traits, class _Alloc> __size_type__
-basic_string<_CharT,_Traits,_Alloc> ::find_first_not_of(_CharT __c, size_type __pos) const {
- if (1 > size())
- return npos;
- else {
- const_pointer __result = _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(),
- _STLP_PRIV _Neq_char_bound<_Traits>(__c));
- return __result != this->_M_finish ? __result - this->_M_Start() : npos;
- }
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-__size_type__
-basic_string<_CharT,_Traits,_Alloc>::find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
-{
- typedef typename _Traits::char_type _CharType;
- const size_type __len = size();
- if ( __len < 1 ) {
- return npos;
- }
- const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
- const_reverse_iterator __rlast = const_reverse_iterator(__last);
- const_reverse_iterator __rresult =
- _STLP_PRIV __str_find_first_not_of(__rlast, rend(),
- __STATIC_CAST(const _CharType*, __s),
- __STATIC_CAST(const _CharType*, __s) + __n,
- __STATIC_CAST(_Traits*, 0));
- return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-__size_type__
-basic_string<_CharT, _Traits, _Alloc>::find_last_not_of(_CharT __c, size_type __pos) const
-{
- const size_type __len = size();
- if ( __len < 1 ) {
- return npos;
- }
- const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
- const_reverse_iterator __rlast = const_reverse_iterator(__last);
- const_reverse_iterator __rresult =
- _STLP_STD::find_if(__rlast, rend(),
- _STLP_PRIV _Neq_char_bound<_Traits>(__c));
- return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
-}
-
-#if !defined (basic_string)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-template <class _CharT, class _Traits, class _Alloc>
-void _STLP_CALL _S_string_copy(const basic_string<_CharT,_Traits,_Alloc>& __s,
- _CharT* __buf, size_t __n) {
- if (__n > 0) {
- __n = (min) (__n - 1, __s.size());
- _STLP_STD::copy(__s.begin(), __s.begin() + __n, __buf);
- __buf[__n] = _CharT();
- }
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#include <stl/_range_errors.h>
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// _String_base methods
-template <class _Tp, class _Alloc>
-void _String_base<_Tp,_Alloc>::_M_throw_length_error() const
-{ __stl_throw_length_error("basic_string"); }
-
-template <class _Tp, class _Alloc>
-void _String_base<_Tp, _Alloc>::_M_throw_out_of_range() const
-{ __stl_throw_out_of_range("basic_string"); }
-
-template <class _Tp, class _Alloc>
-void _String_base<_Tp, _Alloc>::_M_allocate_block(size_t __n) {
- if ((__n <= (max_size() + 1)) && (__n > 0)) {
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- if (__n > _DEFAULT_SIZE) {
- this->_M_start_of_storage._M_data = _M_start_of_storage.allocate(__n, __n);
- this->_M_finish = this->_M_start_of_storage._M_data;
- this->_M_buffers._M_end_of_storage = this->_M_start_of_storage._M_data + __n;
- }
-#else
- this->_M_start_of_storage._M_data = _M_start_of_storage.allocate(__n, __n);
- this->_M_finish = this->_M_start_of_storage._M_data;
- this->_M_end_of_storage = this->_M_start_of_storage._M_data + __n;
-#endif
- } else {
- this->_M_throw_length_error();
- }
-}
-
-#if !defined (basic_string)
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT* __s)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) {
- _STLP_FIX_LITERAL_BUG(__s)
- _M_range_initialize(__s, __s + traits_type::length(__s));
-}
-#endif
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT* __s,
- const allocator_type& __a)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) {
- _STLP_FIX_LITERAL_BUG(__s)
- _M_range_initialize(__s, __s + traits_type::length(__s));
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-basic_string<_CharT, _Traits, _Alloc>::basic_string(const basic_string<_CharT, _Traits, _Alloc> & __s)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__s.get_allocator())
-{ _M_range_initialize(__s._M_Start(), __s._M_Finish()); }
-
-#if defined (basic_string)
-_STLP_MOVE_TO_STD_NAMESPACE
-# undef basic_string
-#endif
-
-#if !defined (_STLP_STATIC_CONST_INIT_BUG) && !defined (_STLP_NO_STATIC_CONST_DEFINITION)
-template <class _CharT, class _Traits, class _Alloc>
-const size_t basic_string<_CharT, _Traits, _Alloc>::npos;
-#endif
-
-_STLP_END_NAMESPACE
-
-#undef __size_type__
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# undef size_type
-# undef iterator
-#endif
-
-#endif /* _STLP_STRING_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_string.h b/stlport/stlport/stl/_string.h
deleted file mode 100644
index 540822b..0000000
--- a/stlport/stlport/stl/_string.h
+++ /dev/null
@@ -1,1182 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_INTERNAL_STRING_H
-#define _STLP_INTERNAL_STRING_H
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_STRING_FWD_H
-# include <stl/_string_fwd.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_UNINITIALIZED_H
-# include <stl/_uninitialized.h>
-#endif
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-# include <stl/_string_sum.h>
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-#if defined (__MWERKS__) && ! defined (_STLP_USE_OWN_NAMESPACE)
-
-// MSL implementation classes expect to see the definition of streampos
-// when this header is included. We expect this to be fixed in later MSL
-// implementations
-# if !defined( __MSL_CPP__ ) || __MSL_CPP__ < 0x4105
-# include <stl/msl_string.h>
-# endif
-#endif // __MWERKS__
-
-/*
- * Standard C++ string class. This class has performance
- * characteristics very much like vector<>, meaning, for example, that
- * it does not perform reference-count or copy-on-write, and that
- * concatenation of two strings is an O(N) operation.
-
- * There are three reasons why basic_string is not identical to
- * vector.
- * First, basic_string always stores a null character at the end;
- * this makes it possible for c_str to be a fast operation.
- * Second, the C++ standard requires basic_string to copy elements
- * using char_traits<>::assign, char_traits<>::copy, and
- * char_traits<>::move. This means that all of vector<>'s low-level
- * operations must be rewritten. Third, basic_string<> has a lot of
- * extra functions in its interface that are convenient but, strictly
- * speaking, redundant.
- */
-
-#include <stl/_string_base.h>
-
-_STLP_BEGIN_NAMESPACE
-
-// ------------------------------------------------------------
-// Class basic_string.
-
-// Class invariants:
-// (1) [start, finish) is a valid range.
-// (2) Each iterator in [start, finish) points to a valid object
-// of type value_type.
-// (3) *finish is a valid object of type value_type; when
-// value_type is not a POD it is value_type().
-// (4) [finish + 1, end_of_storage) is a valid range.
-// (5) Each iterator in [finish + 1, end_of_storage) points to
-// unininitialized memory.
-
-// Note one important consequence: a string of length n must manage
-// a block of memory whose size is at least n + 1.
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-struct _String_reserve_t {};
-_STLP_MOVE_TO_STD_NAMESPACE
-
-#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
-# define basic_string _STLP_NO_MEM_T_NAME(str)
-#elif defined (_STLP_DEBUG)
-# define basic_string _STLP_NON_DBG_NAME(str)
-#endif
-
-#if defined (basic_string)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif
-
-#if defined (__DMC__)
-# define _STLP_PRIVATE public
-#elif defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
-# define _STLP_PRIVATE protected
-#else
-# define _STLP_PRIVATE private
-#endif
-
-template <class _CharT, class _Traits, class _Alloc>
-class basic_string : _STLP_PRIVATE _STLP_PRIV _String_base<_CharT,_Alloc>
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (basic_string)
- , public __stlport_class<basic_string<_CharT, _Traits, _Alloc> >
-#endif
-{
-_STLP_PRIVATE: // Private members inherited from base.
- typedef _STLP_PRIV _String_base<_CharT,_Alloc> _Base;
- typedef basic_string<_CharT, _Traits, _Alloc> _Self;
-
-public:
- typedef _CharT value_type;
- typedef _Traits traits_type;
-
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef typename _Base::size_type size_type;
- typedef ptrdiff_t difference_type;
- typedef random_access_iterator_tag _Iterator_category;
-
- typedef const value_type* const_iterator;
- typedef value_type* iterator;
-
- _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS;
-
-#include <stl/_string_npos.h>
-
- typedef _STLP_PRIV _String_reserve_t _Reserve_t;
-
-public: // Constructor, destructor, assignment.
- typedef typename _Base::allocator_type allocator_type;
-
- allocator_type get_allocator() const
- { return _STLP_CONVERT_ALLOCATOR((const allocator_type&)this->_M_start_of_storage, _CharT); }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit basic_string(const allocator_type& __a = allocator_type())
-#else
- basic_string()
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), _Base::_DEFAULT_SIZE)
- { _M_terminate_string(); }
- explicit basic_string(const allocator_type& __a)
-#endif
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, _Base::_DEFAULT_SIZE)
- { _M_terminate_string(); }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- basic_string(_Reserve_t, size_t __n,
- const allocator_type& __a = allocator_type())
-#else
- basic_string(_Reserve_t, size_t __n)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), __n + 1)
- { _M_terminate_string(); }
- basic_string(_Reserve_t, size_t __n, const allocator_type& __a)
-#endif
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, __n + 1)
- { _M_terminate_string(); }
-
- basic_string(const _Self&);
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- basic_string(const _Self& __s, size_type __pos, size_type __n = npos,
- const allocator_type& __a = allocator_type())
-#else
- basic_string(const _Self& __s, size_type __pos)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) {
- if (__pos > __s.size())
- this->_M_throw_out_of_range();
- else
- _M_range_initialize(__s._M_Start() + __pos, __s._M_Finish());
- }
- basic_string(const _Self& __s, size_type __pos, size_type __n)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) {
- if (__pos > __s.size())
- this->_M_throw_out_of_range();
- else
- _M_range_initialize(__s._M_Start() + __pos,
- __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
- }
- basic_string(const _Self& __s, size_type __pos, size_type __n,
- const allocator_type& __a)
-#endif
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) {
- if (__pos > __s.size())
- this->_M_throw_out_of_range();
- else
- _M_range_initialize(__s._M_Start() + __pos,
- __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
- }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- basic_string(const _CharT* __s, size_type __n,
- const allocator_type& __a = allocator_type())
-#else
- basic_string(const _CharT* __s, size_type __n)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) {
- _STLP_FIX_LITERAL_BUG(__s)
- _M_range_initialize(__s, __s + __n);
- }
- basic_string(const _CharT* __s, size_type __n, const allocator_type& __a)
-#endif
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) {
- _STLP_FIX_LITERAL_BUG(__s)
- _M_range_initialize(__s, __s + __n);
- }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- basic_string(const _CharT* __s,
- const allocator_type& __a = allocator_type());
-#else
- basic_string(const _CharT* __s);
- basic_string(const _CharT* __s, const allocator_type& __a);
-#endif
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- basic_string(size_type __n, _CharT __c,
- const allocator_type& __a = allocator_type())
-#else
- basic_string(size_type __n, _CharT __c)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), __n + 1) {
- this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __c);
- _M_terminate_string();
- }
- basic_string(size_type __n, _CharT __c, const allocator_type& __a)
-#endif
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, __n + 1) {
- this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __c);
- _M_terminate_string();
- }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- basic_string(__move_source<_Self> src)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__move_source<_Base>(src.get())) {}
-#endif
-
- // Check to see if _InputIterator is an integer type. If so, then
- // it can't be an iterator.
-#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- template <class _InputIterator>
- basic_string(_InputIterator __f, _InputIterator __l,
- const allocator_type & __a _STLP_ALLOCATOR_TYPE_DFL)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_dispatch(__f, __l, _Integral());
- }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- basic_string(_InputIterator __f, _InputIterator __l)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_dispatch(__f, __l, _Integral());
- }
-# endif
-#else
-# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- basic_string(const _CharT* __f, const _CharT* __l,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- _M_range_initialize(__f, __l);
- }
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- basic_string(const _CharT* __f, const _CharT* __l)
- : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- _M_range_initialize(__f, __l);
- }
-# endif
-# endif
-# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- /* We need an additionnal constructor to build an empty string without
- * any allocation or termination char*/
-protected:
- struct _CalledFromWorkaround_t {};
- basic_string(_CalledFromWorkaround_t, const allocator_type &__a)
- : _String_base<_CharT,_Alloc>(__a) {}
-# endif
-#endif
-
-_STLP_PRIVATE:
- size_type _M_compute_next_size(size_type __n) {
- const size_type __size = size();
- if (__n > max_size() - __size)
- this->_M_throw_length_error();
- size_type __len = __size + (max)(__n, __size) + 1;
- if (__len > max_size() || __len < __size)
- __len = max_size(); // overflow
- return __len;
- }
-
- template <class _InputIter>
- void _M_range_initialize(_InputIter __f, _InputIter __l,
- const input_iterator_tag &__tag) {
- this->_M_allocate_block();
- _M_construct_null(this->_M_Finish());
- _M_appendT(__f, __l, __tag);
- }
-
- template <class _ForwardIter>
- void _M_range_initialize(_ForwardIter __f, _ForwardIter __l,
- const forward_iterator_tag &) {
- difference_type __n = _STLP_STD::distance(__f, __l);
- this->_M_allocate_block(__n + 1);
- this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
- this->_M_terminate_string();
- }
-
- template <class _InputIter>
- void _M_range_initializeT(_InputIter __f, _InputIter __l) {
- _M_range_initialize(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter));
- }
-
- template <class _Integer>
- void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/) {
- this->_M_allocate_block(__n + 1);
- this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __x);
- this->_M_terminate_string();
- }
-
- template <class _InputIter>
- void _M_initialize_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) {
- _M_range_initializeT(__f, __l);
- }
-
-public:
- _Self& operator=(const _Self& __s) {
- if (&__s != this)
- _M_assign(__s._M_Start(), __s._M_Finish());
- return *this;
- }
-
- _Self& operator=(const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return _M_assign(__s, __s + traits_type::length(__s));
- }
-
- _Self& operator=(_CharT __c)
- { return assign(__STATIC_CAST(size_type,1), __c); }
-
-private:
- static _CharT _STLP_CALL _M_null()
- { return _STLP_DEFAULT_CONSTRUCTED(_CharT); }
-
-_STLP_PRIVATE: // Helper functions used by constructors
- // and elsewhere.
- void _M_construct_null(_CharT* __p) const
- { _STLP_STD::_Construct(__p); }
- void _M_terminate_string()
- { _M_construct_null(this->_M_Finish()); }
- bool _M_inside(const _CharT* __s) const {
- _STLP_FIX_LITERAL_BUG(__s)
- return (__s >= this->_M_Start()) && (__s < this->_M_Finish());
- }
-
- void _M_range_initialize(const _CharT* __f, const _CharT* __l) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- ptrdiff_t __n = __l - __f;
- this->_M_allocate_block(__n + 1);
- this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
- _M_terminate_string();
- }
-
-public: // Iterators.
- iterator begin() { return this->_M_Start(); }
- iterator end() { return this->_M_Finish(); }
- const_iterator begin() const { return this->_M_Start(); }
- const_iterator end() const { return this->_M_Finish(); }
-
- reverse_iterator rbegin()
- { return reverse_iterator(this->_M_Finish()); }
- reverse_iterator rend()
- { return reverse_iterator(this->_M_Start()); }
- const_reverse_iterator rbegin() const
- { return const_reverse_iterator(this->_M_Finish()); }
- const_reverse_iterator rend() const
- { return const_reverse_iterator(this->_M_Start()); }
-
-public: // Size, capacity, etc.
- size_type size() const { return this->_M_Finish() - this->_M_Start(); }
- size_type length() const { return size(); }
- size_type max_size() const { return _Base::max_size(); }
-
- void resize(size_type __n, _CharT __c) {
- if (__n <= size())
- erase(begin() + __n, end());
- else
- append(__n - size(), __c);
- }
-
- void resize(size_type __n) { resize(__n, _M_null()); }
-
-private:
- void _M_reserve(size_type);
-public:
- void reserve(size_type = 0);
-
- size_type capacity() const
- { return this->_M_capacity() - 1; }
-
- void clear() {
- if (!empty()) {
- _Traits::assign(*(this->_M_Start()), _M_null());
- this->_M_finish = this->_M_Start();
- }
- }
-
- bool empty() const { return this->_M_Start() == this->_M_Finish(); }
-
-public: // Element access.
-
- const_reference operator[](size_type __n) const
- { return *(this->_M_Start() + __n); }
- reference operator[](size_type __n)
- { return *(this->_M_Start() + __n); }
-
- const_reference at(size_type __n) const {
- if (__n >= size())
- this->_M_throw_out_of_range();
- return *(this->_M_Start() + __n);
- }
-
- reference at(size_type __n) {
- if (__n >= size())
- this->_M_throw_out_of_range();
- return *(this->_M_Start() + __n);
- }
-
-public: // Append, operator+=, push_back.
-
- _Self& operator+=(const _Self& __s) { return append(__s); }
- _Self& operator+=(const _CharT* __s) { _STLP_FIX_LITERAL_BUG(__s) return append(__s); }
- _Self& operator+=(_CharT __c) { push_back(__c); return *this; }
-
-private:
- _Self& _M_append(const _CharT* __first, const _CharT* __last);
-
-#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- template <class _InputIter>
- _Self& _M_appendT(_InputIter __first, _InputIter __last,
- const input_iterator_tag &) {
- for ( ; __first != __last ; ++__first)
- push_back(*__first);
- return *this;
- }
-
- template <class _ForwardIter>
- _Self& _M_appendT(_ForwardIter __first, _ForwardIter __last,
- const forward_iterator_tag &) {
- if (__first != __last) {
- size_type __n = __STATIC_CAST(size_type, _STLP_STD::distance(__first, __last));
- if (__n >= this->_M_rest()) {
- size_type __len = _M_compute_next_size(__n);
- pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
- pointer __new_finish = uninitialized_copy(this->_M_Start(), this->_M_Finish(), __new_start);
- __new_finish = uninitialized_copy(__first, __last, __new_finish);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __len);
- }
- else {
- _Traits::assign(*this->_M_finish, *__first++);
- uninitialized_copy(__first, __last, this->_M_Finish() + 1);
- _M_construct_null(this->_M_Finish() + __n);
- this->_M_finish += __n;
- }
- }
- return *this;
- }
-
- template <class _Integer>
- _Self& _M_append_dispatch(_Integer __n, _Integer __x, const __true_type& /*Integral*/)
- { return append((size_type) __n, (_CharT) __x); }
-
- template <class _InputIter>
- _Self& _M_append_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*Integral*/)
- { return _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); }
-
-public:
- // Check to see if _InputIterator is an integer type. If so, then
- // it can't be an iterator.
- template <class _InputIter>
- _Self& append(_InputIter __first, _InputIter __last) {
- typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
- return _M_append_dispatch(__first, __last, _Integral());
- }
-#else
-public:
- _Self& append(const _CharT* __first, const _CharT* __last) {
- _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last)
- return _M_append(__first, __last);
- }
-#endif
-
-public:
- _Self& append(const _Self& __s)
- { return _M_append(__s._M_Start(), __s._M_Finish()); }
-
- _Self& append(const _Self& __s,
- size_type __pos, size_type __n) {
- if (__pos > __s.size())
- this->_M_throw_out_of_range();
- return _M_append(__s._M_Start() + __pos,
- __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
- }
-
- _Self& append(const _CharT* __s, size_type __n)
- { _STLP_FIX_LITERAL_BUG(__s) return _M_append(__s, __s+__n); }
- _Self& append(const _CharT* __s)
- { _STLP_FIX_LITERAL_BUG(__s) return _M_append(__s, __s + traits_type::length(__s)); }
- _Self& append(size_type __n, _CharT __c);
-
-public:
- void push_back(_CharT __c) {
- if (this->_M_rest() == 1 )
- _M_reserve(_M_compute_next_size(1));
- _M_construct_null(this->_M_Finish() + 1);
- _Traits::assign(*(this->_M_Finish()), __c);
- ++this->_M_finish;
- }
-
- void pop_back() {
- _Traits::assign(*(this->_M_Finish() - 1), _M_null());
- --this->_M_finish;
- }
-
-public: // Assign
- _Self& assign(const _Self& __s)
- { return _M_assign(__s._M_Start(), __s._M_Finish()); }
-
- _Self& assign(const _Self& __s,
- size_type __pos, size_type __n) {
- if (__pos > __s.size())
- this->_M_throw_out_of_range();
- return _M_assign(__s._M_Start() + __pos,
- __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
- }
-
- _Self& assign(const _CharT* __s, size_type __n)
- { _STLP_FIX_LITERAL_BUG(__s) return _M_assign(__s, __s + __n); }
-
- _Self& assign(const _CharT* __s)
- { _STLP_FIX_LITERAL_BUG(__s) return _M_assign(__s, __s + _Traits::length(__s)); }
-
- _Self& assign(size_type __n, _CharT __c);
-
-private:
- _Self& _M_assign(const _CharT* __f, const _CharT* __l);
-
-#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- // Helper functions for assign.
- template <class _Integer>
- _Self& _M_assign_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/)
- { return assign((size_type) __n, (_CharT) __x); }
-
- template <class _InputIter>
- _Self& _M_assign_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) {
- pointer __cur = this->_M_Start();
- while (__f != __l && __cur != this->_M_Finish()) {
- _Traits::assign(*__cur, *__f);
- ++__f;
- ++__cur;
- }
- if (__f == __l)
- erase(__cur, this->end());
- else
- _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter));
- return *this;
- }
-
-public:
- // Check to see if _InputIterator is an integer type. If so, then
- // it can't be an iterator.
- template <class _InputIter>
- _Self& assign(_InputIter __first, _InputIter __last) {
- typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
- return _M_assign_dispatch(__first, __last, _Integral());
- }
-#else
-public:
- _Self& assign(const _CharT* __f, const _CharT* __l) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- return _M_assign(__f, __l);
- }
-#endif
-
-public: // Insert
- _Self& insert(size_type __pos, const _Self& __s) {
- if (__pos > size())
- this->_M_throw_out_of_range();
- if (__s.size() > max_size() - size())
- this->_M_throw_length_error();
- _M_insert(begin() + __pos, __s._M_Start(), __s._M_Finish(), &__s == this);
- return *this;
- }
-
- _Self& insert(size_type __pos, const _Self& __s,
- size_type __beg, size_type __n) {
- if (__pos > size() || __beg > __s.size())
- this->_M_throw_out_of_range();
- size_type __len = (min) (__n, __s.size() - __beg);
- if (__len > max_size() - size())
- this->_M_throw_length_error();
- _M_insert(begin() + __pos,
- __s._M_Start() + __beg, __s._M_Start() + __beg + __len, &__s == this);
- return *this;
- }
- _Self& insert(size_type __pos, const _CharT* __s, size_type __n) {
- _STLP_FIX_LITERAL_BUG(__s)
- if (__pos > size())
- this->_M_throw_out_of_range();
- if (__n > max_size() - size())
- this->_M_throw_length_error();
- _M_insert(begin() + __pos, __s, __s + __n, _M_inside(__s));
- return *this;
- }
-
- _Self& insert(size_type __pos, const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- if (__pos > size())
- this->_M_throw_out_of_range();
- size_type __len = _Traits::length(__s);
- if (__len > max_size() - size())
- this->_M_throw_length_error();
- _M_insert(this->_M_Start() + __pos, __s, __s + __len, _M_inside(__s));
- return *this;
- }
-
- _Self& insert(size_type __pos, size_type __n, _CharT __c) {
- if (__pos > size())
- this->_M_throw_out_of_range();
- if (__n > max_size() - size())
- this->_M_throw_length_error();
- insert(begin() + __pos, __n, __c);
- return *this;
- }
-
- iterator insert(iterator __p, _CharT __c) {
- _STLP_FIX_LITERAL_BUG(__p)
- if (__p == end()) {
- push_back(__c);
- return this->_M_Finish() - 1;
- }
- else
- return _M_insert_aux(__p, __c);
- }
-
- void insert(iterator __p, size_t __n, _CharT __c);
-
-_STLP_PRIVATE: // Helper functions for insert.
- void _M_insert(iterator __p, const _CharT* __first, const _CharT* __last, bool __self_ref);
-
- pointer _M_insert_aux(pointer, _CharT);
-
- void _M_copy(const _CharT* __f, const _CharT* __l, _CharT* __res) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- _STLP_FIX_LITERAL_BUG(__res)
- _Traits::copy(__res, __f, __l - __f);
- }
-
- void _M_move(const _CharT* __f, const _CharT* __l, _CharT* __res) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- _Traits::move(__res, __f, __l - __f);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- template <class _ForwardIter>
- void _M_insert_overflow(iterator __pos, _ForwardIter __first, _ForwardIter __last,
- size_type __n) {
- size_type __len = _M_compute_next_size(__n);
- pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
- pointer __new_finish = uninitialized_copy(this->_M_Start(), __pos, __new_start);
- __new_finish = uninitialized_copy(__first, __last, __new_finish);
- __new_finish = uninitialized_copy(__pos, this->_M_Finish(), __new_finish);
- _M_construct_null(__new_finish);
- this->_M_deallocate_block();
- this->_M_reset(__new_start, __new_finish, __new_start + __len);
- }
-
- template <class _InputIter>
- void _M_insertT(iterator __p, _InputIter __first, _InputIter __last,
- const input_iterator_tag &) {
- for ( ; __first != __last; ++__first) {
- __p = insert(__p, *__first);
- ++__p;
- }
- }
-
- template <class _ForwardIter>
- void _M_insertT(iterator __pos, _ForwardIter __first, _ForwardIter __last,
- const forward_iterator_tag &) {
- if (__first != __last) {
- size_type __n = _STLP_STD::distance(__first, __last);
- if (__n < this->_M_rest()) {
- const size_type __elems_after = this->_M_finish - __pos;
- if (__elems_after >= __n) {
- uninitialized_copy((this->_M_Finish() - __n) + 1, this->_M_Finish() + 1, this->_M_Finish() + 1);
- this->_M_finish += __n;
- _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1);
- _M_copyT(__first, __last, __pos);
- }
- else {
- pointer __old_finish = this->_M_Finish();
- _ForwardIter __mid = __first;
- _STLP_STD::advance(__mid, __elems_after + 1);
- _STLP_STD::uninitialized_copy(__mid, __last, this->_M_Finish() + 1);
- this->_M_finish += __n - __elems_after;
- uninitialized_copy(__pos, __old_finish + 1, this->_M_Finish());
- this->_M_finish += __elems_after;
- _M_copyT(__first, __mid, __pos);
- }
- }
- else {
- _M_insert_overflow(__pos, __first, __last, __n);
- }
- }
- }
-
- template <class _Integer>
- void _M_insert_dispatch(iterator __p, _Integer __n, _Integer __x,
- const __true_type& /*Integral*/)
- { insert(__p, (size_type) __n, (_CharT) __x); }
-
- template <class _InputIter>
- void _M_insert_dispatch(iterator __p, _InputIter __first, _InputIter __last,
- const __false_type& /*Integral*/) {
- _STLP_FIX_LITERAL_BUG(__p)
- /* We are forced to do a temporary string to avoid the self referencing issue. */
- const _Self __self(__first, __last, get_allocator());
- _M_insertT(__p, __self.begin(), __self.end(), forward_iterator_tag());
- }
-
- template <class _InputIterator>
- void _M_copyT(_InputIterator __first, _InputIterator __last, pointer __result) {
- _STLP_FIX_LITERAL_BUG(__result)
- for ( ; __first != __last; ++__first, ++__result)
- _Traits::assign(*__result, *__first);
- }
-
-# if !defined (_STLP_NO_METHOD_SPECIALIZATION)
- void _M_copyT(const _CharT* __f, const _CharT* __l, _CharT* __res) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- _STLP_FIX_LITERAL_BUG(__res)
- _Traits::copy(__res, __f, __l - __f);
- }
-# endif
-public:
- // Check to see if _InputIterator is an integer type. If so, then
- // it can't be an iterator.
- template <class _InputIter>
- void insert(iterator __p, _InputIter __first, _InputIter __last) {
- typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
- _M_insert_dispatch(__p, __first, __last, _Integral());
- }
-# endif
-#endif
-
-#if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION)
-public:
- void insert(iterator __p, const _CharT* __f, const _CharT* __l) {
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- _M_insert(__p, __f, __l, _M_inside(__f));
- }
-#endif
-
-public: // Erase.
- _Self& erase(size_type __pos = 0, size_type __n = npos) {
- if (__pos > size())
- this->_M_throw_out_of_range();
- erase(begin() + __pos, begin() + __pos + (min) (__n, size() - __pos));
- return *this;
- }
-
- iterator erase(iterator __pos) {
- // The move includes the terminating _CharT().
- _Traits::move(__pos, __pos + 1, this->_M_Finish() - __pos);
- --this->_M_finish;
- return __pos;
- }
-
- iterator erase(iterator __first, iterator __last) {
- if (__first != __last) {
- // The move includes the terminating _CharT().
- traits_type::move(__first, __last, (this->_M_Finish() - __last) + 1);
- this->_M_finish = this->_M_Finish() - (__last - __first);
- }
- return __first;
- }
-
-public: // Replace. (Conceptually equivalent
- // to erase followed by insert.)
- _Self& replace(size_type __pos, size_type __n, const _Self& __s) {
- const size_type __size = size();
- if (__pos > __size)
- this->_M_throw_out_of_range();
- const size_type __len = (min) (__n, __size - __pos);
- if (__s.size() > max_size() - (__size - __len))
- this->_M_throw_length_error();
- return _M_replace(begin() + __pos, begin() + __pos + __len,
- __s._M_Start(), __s._M_Finish(), &__s == this);
- }
-
- _Self& replace(size_type __pos1, size_type __n1, const _Self& __s,
- size_type __pos2, size_type __n2) {
- const size_type __size1 = size();
- const size_type __size2 = __s.size();
- if (__pos1 > __size1 || __pos2 > __size2)
- this->_M_throw_out_of_range();
- const size_type __len1 = (min) (__n1, __size1 - __pos1);
- const size_type __len2 = (min) (__n2, __size2 - __pos2);
- if (__len2 > max_size() - (__size1 - __len1))
- this->_M_throw_length_error();
- return _M_replace(begin() + __pos1, begin() + __pos1 + __len1,
- __s._M_Start() + __pos2, __s._M_Start() + __pos2 + __len2, &__s == this);
- }
-
- _Self& replace(size_type __pos, size_type __n1,
- const _CharT* __s, size_type __n2) {
- _STLP_FIX_LITERAL_BUG(__s)
- const size_type __size = size();
- if (__pos > __size)
- this->_M_throw_out_of_range();
- const size_type __len = (min) (__n1, __size - __pos);
- if (__n2 > max_size() - (__size - __len))
- this->_M_throw_length_error();
- return _M_replace(begin() + __pos, begin() + __pos + __len,
- __s, __s + __n2, _M_inside(__s));
- }
-
- _Self& replace(size_type __pos, size_type __n1, const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return replace(__pos, __n1, __s, _Traits::length(__s));
- }
-
- _Self& replace(size_type __pos, size_type __n1,
- size_type __n2, _CharT __c) {
- const size_type __size = size();
- if (__pos > __size)
- this->_M_throw_out_of_range();
- const size_type __len = (min) (__n1, __size - __pos);
- if (__n2 > max_size() - (__size - __len))
- this->_M_throw_length_error();
- return replace(begin() + __pos, begin() + __pos + __len, __n2, __c);
- }
-
- _Self& replace(iterator __first, iterator __last, const _Self& __s) {
- _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last)
- return _M_replace(__first, __last, __s._M_Start(), __s._M_Finish(), &__s == this);
- }
-
- _Self& replace(iterator __first, iterator __last,
- const _CharT* __s, size_type __n) {
- _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last)
- _STLP_FIX_LITERAL_BUG(__s)
- return _M_replace(__first, __last, __s, __s + __n, _M_inside(__s));
- }
-
- _Self& replace(iterator __first, iterator __last,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last)
- _STLP_FIX_LITERAL_BUG(__s)
- return _M_replace(__first, __last, __s, __s + _Traits::length(__s), _M_inside(__s));
- }
-
- _Self& replace(iterator __first, iterator __last, size_type __n, _CharT __c);
-
-_STLP_PRIVATE: // Helper functions for replace.
- _Self& _M_replace(iterator __first, iterator __last,
- const _CharT* __f, const _CharT* __l, bool __self_ref);
-
-#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
- template <class _Integer>
- _Self& _M_replace_dispatch(iterator __first, iterator __last,
- _Integer __n, _Integer __x, const __true_type& /*IsIntegral*/) {
- _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last)
- return replace(__first, __last, (size_type) __n, (_CharT) __x);
- }
-
- template <class _InputIter>
- _Self& _M_replace_dispatch(iterator __first, iterator __last,
- _InputIter __f, _InputIter __l, const __false_type& /*IsIntegral*/) {
- _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last)
- /* We are forced to do a temporary string to avoid the self referencing issue. */
- const _Self __self(__f, __l, get_allocator());
- return _M_replace(__first, __last, __self._M_Start(), __self._M_Finish(), false);
- }
-
-public:
- // Check to see if _InputIter is an integer type. If so, then
- // it can't be an iterator.
- template <class _InputIter>
- _Self& replace(iterator __first, iterator __last,
- _InputIter __f, _InputIter __l) {
- _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last)
- typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
- return _M_replace_dispatch(__first, __last, __f, __l, _Integral());
- }
-#endif
-
-#if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION)
-public:
- _Self& replace(iterator __first, iterator __last,
- const _CharT* __f, const _CharT* __l) {
- _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last)
- _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l)
- return _M_replace(__first, __last, __f, __l, _M_inside(__f));
- }
-#endif
-
-public: // Other modifier member functions.
-
- size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const {
- _STLP_FIX_LITERAL_BUG(__s)
- if (__pos > size())
- this->_M_throw_out_of_range();
- const size_type __len = (min) (__n, size() - __pos);
- _Traits::copy(__s, this->_M_Start() + __pos, __len);
- return __len;
- }
-
- void swap(_Self& __s) { this->_M_swap(__s); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
-public: // Conversion to C string.
-
- const _CharT* c_str() const { return this->_M_Start(); }
- const _CharT* data() const { return this->_M_Start(); }
-
-public: // find.
- size_type find(const _Self& __s, size_type __pos = 0) const
- { return find(__s._M_Start(), __pos, __s.size()); }
-
- size_type find(const _CharT* __s, size_type __pos = 0) const
- { _STLP_FIX_LITERAL_BUG(__s) return find(__s, __pos, _Traits::length(__s)); }
-
- size_type find(const _CharT* __s, size_type __pos, size_type __n) const;
-
- // WIE: Versant schema compiler 5.2.2 ICE workaround
- size_type find(_CharT __c) const { return find(__c, 0); }
- size_type find(_CharT __c, size_type __pos /* = 0 */) const;
-
-public: // rfind.
- size_type rfind(const _Self& __s, size_type __pos = npos) const
- { return rfind(__s._M_Start(), __pos, __s.size()); }
-
- size_type rfind(const _CharT* __s, size_type __pos = npos) const
- { _STLP_FIX_LITERAL_BUG(__s) return rfind(__s, __pos, _Traits::length(__s)); }
-
- size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const;
- size_type rfind(_CharT __c, size_type __pos = npos) const;
-
-public: // find_first_of
- size_type find_first_of(const _Self& __s, size_type __pos = 0) const
- { return find_first_of(__s._M_Start(), __pos, __s.size()); }
-
- size_type find_first_of(const _CharT* __s, size_type __pos = 0) const
- { _STLP_FIX_LITERAL_BUG(__s) return find_first_of(__s, __pos, _Traits::length(__s)); }
-
- size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
-
- size_type find_first_of(_CharT __c, size_type __pos = 0) const
- { return find(__c, __pos); }
-
-public: // find_last_of
- size_type find_last_of(const _Self& __s, size_type __pos = npos) const
- { return find_last_of(__s._M_Start(), __pos, __s.size()); }
-
- size_type find_last_of(const _CharT* __s, size_type __pos = npos) const
- { _STLP_FIX_LITERAL_BUG(__s) return find_last_of(__s, __pos, _Traits::length(__s)); }
-
- size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
-
- size_type find_last_of(_CharT __c, size_type __pos = npos) const
- { return rfind(__c, __pos); }
-
-public: // find_first_not_of
- size_type find_first_not_of(const _Self& __s, size_type __pos = 0) const
- { return find_first_not_of(__s._M_Start(), __pos, __s.size()); }
-
- size_type find_first_not_of(const _CharT* __s, size_type __pos = 0) const
- { _STLP_FIX_LITERAL_BUG(__s) return find_first_not_of(__s, __pos, _Traits::length(__s)); }
-
- size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const;
-
- size_type find_first_not_of(_CharT __c, size_type __pos = 0) const;
-
-public: // find_last_not_of
- size_type find_last_not_of(const _Self& __s, size_type __pos = npos) const
- { return find_last_not_of(__s._M_Start(), __pos, __s.size()); }
-
- size_type find_last_not_of(const _CharT* __s, size_type __pos = npos) const
- { _STLP_FIX_LITERAL_BUG(__s) return find_last_not_of(__s, __pos, _Traits::length(__s)); }
-
- size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const;
-
- size_type find_last_not_of(_CharT __c, size_type __pos = npos) const;
-
-public: // Substring.
- _Self substr(size_type __pos = 0, size_type __n = npos) const
- { return _Self(*this, __pos, __n, get_allocator()); }
-
-public: // Compare
- int compare(const _Self& __s) const
- { return _M_compare(this->_M_Start(), this->_M_Finish(), __s._M_Start(), __s._M_Finish()); }
-
- int compare(size_type __pos1, size_type __n1, const _Self& __s) const {
- if (__pos1 > size())
- this->_M_throw_out_of_range();
- return _M_compare(this->_M_Start() + __pos1,
- this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
- __s._M_Start(), __s._M_Finish());
- }
-
- int compare(size_type __pos1, size_type __n1, const _Self& __s,
- size_type __pos2, size_type __n2) const {
- if (__pos1 > size() || __pos2 > __s.size())
- this->_M_throw_out_of_range();
- return _M_compare(this->_M_Start() + __pos1,
- this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
- __s._M_Start() + __pos2,
- __s._M_Start() + __pos2 + (min) (__n2, __s.size() - __pos2));
- }
-
- int compare(const _CharT* __s) const {
- _STLP_FIX_LITERAL_BUG(__s)
- return _M_compare(this->_M_Start(), this->_M_Finish(), __s, __s + _Traits::length(__s));
- }
-
- int compare(size_type __pos1, size_type __n1, const _CharT* __s) const {
- _STLP_FIX_LITERAL_BUG(__s)
- if (__pos1 > size())
- this->_M_throw_out_of_range();
- return _M_compare(this->_M_Start() + __pos1,
- this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
- __s, __s + _Traits::length(__s));
- }
-
- int compare(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) const {
- _STLP_FIX_LITERAL_BUG(__s)
- if (__pos1 > size())
- this->_M_throw_out_of_range();
- return _M_compare(this->_M_Start() + __pos1,
- this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
- __s, __s + __n2);
- }
-
-public: // Helper functions for compare.
- static int _STLP_CALL _M_compare(const _CharT* __f1, const _CharT* __l1,
- const _CharT* __f2, const _CharT* __l2) {
- const ptrdiff_t __n1 = __l1 - __f1;
- const ptrdiff_t __n2 = __l2 - __f2;
- const int cmp = _Traits::compare(__f1, __f2, (min) (__n1, __n2));
- return cmp != 0 ? cmp : (__n1 < __n2 ? -1 : (__n1 > __n2 ? 1 : 0));
- }
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION) && !defined (_STLP_DEBUG) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
-# define _STLP_STRING_SUM_BASE(__reserve, __size, __alloc) _STLP_PRIV _String_base<_CharT,_Alloc>(__alloc, __size + 1)
-# include <stl/_string_sum_methods.h>
-# undef _STLP_STRING_SUM_BASE
-#endif
-};
-
-#undef _STLP_PRIVATE
-
-#if defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96)
-template <class _CharT, class _Traits, class _Alloc>
-const size_t basic_string<_CharT, _Traits, _Alloc>::npos = ~(size_t) 0;
-#endif
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS basic_string<char, char_traits<char>, allocator<char> >;
-# if defined (_STLP_HAS_WCHAR_T)
-_STLP_EXPORT_TEMPLATE_CLASS basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >;
-# endif
-#endif /* _STLP_USE_TEMPLATE_EXPORT */
-
-#if defined (basic_string)
-_STLP_MOVE_TO_STD_NAMESPACE
-# undef basic_string
-#endif
-
-_STLP_END_NAMESPACE
-
-#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
-# include <stl/_string_workaround.h>
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_string.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-// ------------------------------------------------------------
-// Non-member functions.
-// Swap.
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-template <class _CharT, class _Traits, class _Alloc>
-inline void _STLP_CALL
-swap(basic_string<_CharT,_Traits,_Alloc>& __x,
- basic_string<_CharT,_Traits,_Alloc>& __y)
-{ __x.swap(__y); }
-#else
-inline void _STLP_CALL swap(string& __x, string& __y)
-{ __x.swap(__y); }
-# if defined (_STLP_HAS_WCHAR_T)
-inline void _STLP_CALL swap(wstring& __x, wstring& __y)
-{ __x.swap(__y); }
-# endif
-#endif
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _CharT, class _Traits, class _Alloc>
-struct __move_traits<basic_string<_CharT, _Traits, _Alloc> > {
- typedef __true_type implemented;
- //Completness depends on the allocator:
- typedef typename __move_traits<_Alloc>::complete complete;
-};
-/*#else
- * There is no need to specialize for string and wstring in this case
- * as the default __move_traits will already tell that string is movable
- * but not complete. We cannot define it as complete as nothing guaranty
- * that the STLport user hasn't specialized std::allocator for char or
- * wchar_t.
- */
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _CharT, class _Traits, class _Alloc>
-void _STLP_CALL _S_string_copy(const basic_string<_CharT,_Traits,_Alloc>& __s,
- _CharT* __buf, size_t __n);
-
-#if defined(_STLP_USE_WIDE_INTERFACE)
-// A couple of functions to transfer between ASCII/Unicode
-wstring __ASCIIToWide(const char *ascii);
-string __WideToASCII(const wchar_t *wide);
-#endif
-
-inline const char* _STLP_CALL
-__get_c_string(const string& __str) { return __str.c_str(); }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#include <stl/_string_operators.h>
-
-#if defined(_STLP_USE_NO_IOSTREAMS) || \
- (defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION))
-# include <stl/_string.c>
-#endif
-
-#endif /* _STLP_INTERNAL_STRING_H */
-
-/*
- * Local Variables:
- * mode:C++
- * End:
- */
diff --git a/stlport/stlport/stl/_string_base.h b/stlport/stlport/stl/_string_base.h
deleted file mode 100644
index 7c6d7fe..0000000
--- a/stlport/stlport/stl/_string_base.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * Copyright (c) 2003
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STRING_BASE_H
-#define _STLP_STRING_BASE_H
-
-// ------------------------------------------------------------
-// Class _String_base.
-
-// _String_base is a helper class that makes it it easier to write an
-// exception-safe version of basic_string. The constructor allocates,
-// but does not initialize, a block of memory. The destructor
-// deallocates, but does not destroy elements within, a block of
-// memory. The destructor assumes that _M_start either is null, or else
-// points to a block of memory that was allocated using _String_base's
-// allocator and whose size is _M_end_of_storage - _M_start_of_storage._M_data.
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp, class _Alloc>
-class _String_base {
- typedef _String_base<_Tp, _Alloc> _Self;
-protected:
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
-public:
- //dums: Some compiler(MSVC6) require it to be public not simply protected!
- enum {_DEFAULT_SIZE = 4 * sizeof( void * )};
- //This is needed by the full move framework
- typedef _Alloc allocator_type;
- typedef _STLP_alloc_proxy<_Tp*, _Tp, allocator_type> _AllocProxy;
- typedef size_t size_type;
-private:
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- union _Buffers {
- _Tp* _M_end_of_storage;
- _Tp _M_static_buf[_DEFAULT_SIZE];
- } _M_buffers;
-#else
- _Tp* _M_end_of_storage;
-#endif /* _STLP_USE_SHORT_STRING_OPTIM */
-protected:
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- bool _M_using_static_buf() const
- { return (_M_start_of_storage._M_data == _M_buffers._M_static_buf); }
- _Tp const* _M_Start() const { return _M_start_of_storage._M_data; }
- _Tp* _M_Start() { return _M_start_of_storage._M_data; }
- _Tp const* _M_End() const
- { return _M_using_static_buf() ? _M_buffers._M_static_buf + _DEFAULT_SIZE : _M_buffers._M_end_of_storage; }
- _Tp* _M_End()
- { return _M_using_static_buf() ? _M_buffers._M_static_buf + _DEFAULT_SIZE : _M_buffers._M_end_of_storage; }
- size_type _M_capacity() const
- { return _M_using_static_buf() ? _DEFAULT_SIZE : _M_buffers._M_end_of_storage - _M_start_of_storage._M_data; }
- size_type _M_rest() const
- { return _M_using_static_buf() ? _DEFAULT_SIZE - (_M_finish - _M_buffers._M_static_buf) : _M_buffers._M_end_of_storage - _M_finish; }
-#else
- _Tp const* _M_Start() const { return _M_start_of_storage._M_data; }
- _Tp* _M_Start() { return _M_start_of_storage._M_data; }
- _Tp const* _M_End() const { return _M_end_of_storage; }
- _Tp* _M_End() { return _M_end_of_storage; }
- size_type _M_capacity() const
- { return _M_end_of_storage - _M_start_of_storage._M_data; }
- size_type _M_rest() const
- { return _M_end_of_storage - _M_finish; }
-#endif /* _STLP_USE_SHORT_STRING_OPTIM */
-
- _Tp* _M_finish;
- _AllocProxy _M_start_of_storage;
-
- _Tp const* _M_Finish() const {return _M_finish;}
- _Tp* _M_Finish() {return _M_finish;}
-
- // Precondition: 0 < __n <= max_size().
- void _M_allocate_block(size_t __n = _DEFAULT_SIZE);
- void _M_deallocate_block() {
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- if (!_M_using_static_buf() && (_M_start_of_storage._M_data != 0))
- _M_start_of_storage.deallocate(_M_start_of_storage._M_data, _M_buffers._M_end_of_storage - _M_start_of_storage._M_data);
-#else
- if (_M_start_of_storage._M_data != 0)
- _M_start_of_storage.deallocate(_M_start_of_storage._M_data, _M_end_of_storage - _M_start_of_storage._M_data);
-#endif /* _STLP_USE_SHORT_STRING_OPTIM */
- }
-
- size_t max_size() const {
- const size_type __string_max_size = size_type(-1) / sizeof(_Tp);
- typename allocator_type::size_type __alloc_max_size = _M_start_of_storage.max_size();
- return (min)(__alloc_max_size, __string_max_size) - 1;
- }
-
- _String_base(const allocator_type& __a)
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- : _M_finish(_M_buffers._M_static_buf), _M_start_of_storage(__a, _M_buffers._M_static_buf)
-#else
- : _M_end_of_storage(0), _M_finish(0), _M_start_of_storage(__a, (_Tp*)0)
-#endif
- {}
-
- _String_base(const allocator_type& __a, size_t __n)
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- : _M_finish(_M_buffers._M_static_buf), _M_start_of_storage(__a, _M_buffers._M_static_buf) {
-#else
- : _M_end_of_storage(0), _M_finish(0), _M_start_of_storage(__a, (_Tp*)0) {
-#endif
- _M_allocate_block(__n);
- }
-
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- void _M_move_src (_Self &src) {
- if (src._M_using_static_buf()) {
- _M_buffers = src._M_buffers;
- _M_finish = _M_buffers._M_static_buf + (src._M_finish - src._M_start_of_storage._M_data);
- _M_start_of_storage._M_data = _M_buffers._M_static_buf;
- }
- else {
- _M_start_of_storage._M_data = src._M_start_of_storage._M_data;
- _M_finish = src._M_finish;
- _M_buffers._M_end_of_storage = src._M_buffers._M_end_of_storage;
- src._M_start_of_storage._M_data = 0;
- }
- }
-#endif
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _String_base(__move_source<_Self> src)
-# if defined (_STLP_USE_SHORT_STRING_OPTIM)
- : _M_start_of_storage(__move_source<_AllocProxy>(src.get()._M_start_of_storage)) {
- _M_move_src(src.get());
-# else
- : _M_end_of_storage(src.get()._M_end_of_storage), _M_finish(src.get()._M_finish),
- _M_start_of_storage(__move_source<_AllocProxy>(src.get()._M_start_of_storage)) {
- src.get()._M_start_of_storage._M_data = 0;
-# endif
- }
-#endif
-
- ~_String_base() { _M_deallocate_block(); }
-
- void _M_reset(_Tp *__start, _Tp *__finish, _Tp *__end_of_storage) {
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- _M_buffers._M_end_of_storage = __end_of_storage;
-#else
- _M_end_of_storage = __end_of_storage;
-#endif
- _M_finish = __finish;
- _M_start_of_storage._M_data = __start;
- }
-
- void _M_swap(_Self &__s) {
-#if defined (_STLP_USE_SHORT_STRING_OPTIM)
- if (_M_using_static_buf()) {
- if (__s._M_using_static_buf()) {
- _STLP_STD::swap(_M_buffers, __s._M_buffers);
- _Tp *__tmp = _M_finish;
- _M_finish = _M_start_of_storage._M_data + (__s._M_finish - __s._M_start_of_storage._M_data);
- __s._M_finish = __s._M_buffers._M_static_buf + (__tmp - _M_start_of_storage._M_data);
- //We need to swap _M_start_of_storage for allocators with state:
- _M_start_of_storage.swap(__s._M_start_of_storage);
- _M_start_of_storage._M_data = _M_buffers._M_static_buf;
- __s._M_start_of_storage._M_data = __s._M_buffers._M_static_buf;
- } else {
- __s._M_swap(*this);
- return;
- }
- }
- else if (__s._M_using_static_buf()) {
- _Tp *__tmp = _M_start_of_storage._M_data;
- _Tp *__tmp_finish = _M_finish;
- _Tp *__tmp_end_data = _M_buffers._M_end_of_storage;
- _M_buffers = __s._M_buffers;
- //We need to swap _M_start_of_storage for allocators with state:
- _M_start_of_storage.swap(__s._M_start_of_storage);
- _M_start_of_storage._M_data = _M_buffers._M_static_buf;
- _M_finish = _M_buffers._M_static_buf + (__s._M_finish - __s._M_buffers._M_static_buf);
- __s._M_buffers._M_end_of_storage = __tmp_end_data;
- __s._M_start_of_storage._M_data = __tmp;
- __s._M_finish = __tmp_finish;
- }
- else {
- _STLP_STD::swap(_M_buffers._M_end_of_storage, __s._M_buffers._M_end_of_storage);
- _M_start_of_storage.swap(__s._M_start_of_storage);
- _STLP_STD::swap(_M_finish, __s._M_finish);
- }
-#else
- _STLP_STD::swap(_M_end_of_storage, __s._M_end_of_storage);
- _M_start_of_storage.swap(__s._M_start_of_storage);
- _STLP_STD::swap(_M_finish, __s._M_finish);
-#endif
- }
-
- void _STLP_FUNCTION_THROWS _M_throw_length_error() const;
- void _STLP_FUNCTION_THROWS _M_throw_out_of_range() const;
-};
-
-#if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _String_base<char, allocator<char> >;
-# if defined (_STLP_HAS_WCHAR_T)
-_STLP_EXPORT_TEMPLATE_CLASS _String_base<wchar_t, allocator<wchar_t> >;
-# endif
-#endif /* _STLP_USE_TEMPLATE_EXPORT */
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_STRING_BASE_H */
-
-/*
- * Local Variables:
- * mode:C++
- * End:
- */
diff --git a/stlport/stlport/stl/_string_fwd.h b/stlport/stlport/stl/_string_fwd.h
deleted file mode 100644
index fe65385..0000000
--- a/stlport/stlport/stl/_string_fwd.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STRING_FWD_H
-#define _STLP_STRING_FWD_H
-
-#ifndef _STLP_INTERNAL_IOSFWD
-# include <stl/_iosfwd.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
-template <class _CharT,
- class _Traits = char_traits<_CharT>,
- class _Alloc = allocator<_CharT> >
-class basic_string;
-#else
-template <class _CharT,
- class _Traits,
- class _Alloc>
-class basic_string;
-#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */
-
-typedef basic_string<char, char_traits<char>, allocator<char> > string;
-
-#if defined (_STLP_HAS_WCHAR_T)
-typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
-#endif
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-//This function limits header dependency between exception and string
-//implementation. It is implemented in _string.h
-const char* _STLP_CALL __get_c_string(const string& __str);
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_STRING_FWD_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_string_hash.h b/stlport/stlport/stl/_string_hash.h
deleted file mode 100644
index 87f2d9f..0000000
--- a/stlport/stlport/stl/_string_hash.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STRING_HASH_H
-#define _STLP_STRING_HASH_H
-
-#ifndef _STLP_HASH_FUN_H
-# include <stl/_hash_fun.h>
-#endif
-
-#ifndef _STLP_INTERNAL_STRING_H
-# include <stl/_string.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _CharT, class _Traits, class _Alloc>
-_STLP_INLINE_LOOP size_t
-__stl_string_hash(const basic_string<_CharT,_Traits,_Alloc>& __s) {
- unsigned long __h = 0;
- size_t __len = __s.size();
- const _CharT* __data = __s.data();
- for ( size_t __i = 0; __i < __len; ++__i)
- __h = /* 5 *__h */(__h << 2) + __h + __data[__i];
- return size_t(__h);
-}
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && \
- (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x560))
-template <class _CharT, class _Traits, class _Alloc>
-struct hash<basic_string<_CharT,_Traits,_Alloc> > {
- size_t operator()(const basic_string<_CharT,_Traits,_Alloc>& __s) const
- { return __stl_string_hash(__s); }
-};
-
-#else
-
-_STLP_TEMPLATE_NULL
-struct _STLP_CLASS_DECLSPEC hash<string> {
- size_t operator()(const string& __s) const
- { return __stl_string_hash(__s); }
-};
-
-# if defined (_STLP_HAS_WCHAR_T)
-_STLP_TEMPLATE_NULL
-struct _STLP_CLASS_DECLSPEC hash<wstring> {
- size_t operator()(const wstring& __s) const
- { return __stl_string_hash(__s); }
-};
-# endif
-
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-
-#endif
diff --git a/stlport/stlport/stl/_string_npos.h b/stlport/stlport/stl/_string_npos.h
deleted file mode 100644
index faa9c62..0000000
--- a/stlport/stlport/stl/_string_npos.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2005
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-/* This header contains npos definition used in basic_string and rope
- * implementation. It do not have to be guarded as files including it
- * are already guarded and it has sometimes to be included several times.
- */
-
-#if defined (_STLP_STATIC_CONST_INIT_BUG)
- enum { npos = -1 };
-#elif defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96)
- // inline initializer conflicts with 'extern template'
- static const size_t npos;
-#else
- static const size_t npos = ~(size_t)0;
-#endif
diff --git a/stlport/stlport/stl/_string_operators.h b/stlport/stlport/stl/_string_operators.h
deleted file mode 100644
index cff13af..0000000
--- a/stlport/stlport/stl/_string_operators.h
+++ /dev/null
@@ -1,602 +0,0 @@
-/*
- * Copyright (c) 2003
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STRING_OPERATORS_H
-#define _STLP_STRING_OPERATORS_H
-
-_STLP_BEGIN_NAMESPACE
-
-#if !defined (_STLP_USE_TEMPLATE_EXPRESSION)
-
-# if defined (__GNUC__) || defined (__MLCCPP__)
-# define _STLP_INIT_AMBIGUITY 1
-# endif
-
-template <class _CharT, class _Traits, class _Alloc>
-inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- typedef basic_string<_CharT,_Traits,_Alloc> _Str;
- typedef typename _Str::_Reserve_t _Reserve_t;
-# if defined (_STLP_INIT_AMBIGUITY)
- // gcc counts this as a function
- _Str __result = _Str(_Reserve_t(), __s.size() + __y.size(), __s.get_allocator());
-# else
- _Str __result(_Reserve_t(), __s.size() + __y.size(), __s.get_allocator());
-# endif
- __result.append(__s);
- __result.append(__y);
- return __result;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL
-operator+(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- typedef basic_string<_CharT,_Traits,_Alloc> _Str;
- typedef typename _Str::_Reserve_t _Reserve_t;
- const size_t __n = _Traits::length(__s);
-# if defined (_STLP_INIT_AMBIGUITY)
- _Str __result = _Str(_Reserve_t(), __n + __y.size(), __y.get_allocator());
-# else
- _Str __result(_Reserve_t(), __n + __y.size(), __y.get_allocator());
-# endif
- __result.append(__s, __s + __n);
- __result.append(__y);
- return __result;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL
-operator+(_CharT __c,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- typedef basic_string<_CharT,_Traits,_Alloc> _Str;
- typedef typename _Str::_Reserve_t _Reserve_t;
-# if defined (_STLP_INIT_AMBIGUITY)
- _Str __result = _Str(_Reserve_t(), 1 + __y.size(), __y.get_allocator());
-# else
- _Str __result(_Reserve_t(), 1 + __y.size(), __y.get_allocator());
-# endif
- __result.push_back(__c);
- __result.append(__y);
- return __result;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- typedef basic_string<_CharT,_Traits,_Alloc> _Str;
- typedef typename _Str::_Reserve_t _Reserve_t;
- const size_t __n = _Traits::length(__s);
-# if defined (_STLP_INIT_AMBIGUITY)
- _Str __result = _Str(_Reserve_t(), __x.size() + __n, __x.get_allocator());
-# else
- _Str __result(_Reserve_t(), __x.size() + __n, __x.get_allocator());
-# endif
- __result.append(__x);
- __result.append(__s, __s + __n);
- return __result;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT __c) {
- typedef basic_string<_CharT,_Traits,_Alloc> _Str;
- typedef typename _Str::_Reserve_t _Reserve_t;
-# if defined (_STLP_INIT_AMBIGUITY)
- _Str __result = _Str(_Reserve_t(), __x.size() + 1, __x.get_allocator());
-# else
- _Str __result(_Reserve_t(), __x.size() + 1, __x.get_allocator());
-# endif
- __result.append(__x);
- __result.push_back(__c);
- return __result;
-}
-
-# undef _STLP_INIT_AMBIGUITY
-
-#else /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-// addition with basic_string
-template <class _CharT, class _Traits, class _Alloc>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __lhs,
- const basic_string<_CharT,_Traits,_Alloc>& __rhs) {
- typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right> __root_type;
- __root_type __root(__rhs, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__lhs.get_allocator()));
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- __root_type,
- _STLP_PRIV __on_right>(__lhs, __root);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __lhs,
- const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __rhs) {
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __on_right>(__lhs, __rhs);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __on_left> _STLP_CALL
-operator+(const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __lhs,
- const basic_string<_CharT,_Traits,_Alloc>& __rhs) {
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __on_left>(__lhs, __rhs);
-}
-
-// addition with C string
-template <class _CharT, class _Traits, class _Alloc>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- const size_t __n = _Traits::length(__s);
- typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right> __root_type;
- __root_type __root(_STLP_PRIV __cstr_wrapper<_CharT>(__s, __n), _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__x.get_allocator()));
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- __root_type, _STLP_PRIV __on_right>(__x, __root);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- const size_t __n = _Traits::length(__s);
- typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right> __root_type;
- __root_type __root(__y, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__y.get_allocator()));
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __cstr_wrapper<_CharT>,
- __root_type,
- _STLP_PRIV __on_right>(_STLP_PRIV __cstr_wrapper<_CharT>(__s, __n), __root);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __on_left> _STLP_CALL
-operator+(const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __x,
- const _CharT* __s) {
- const size_t __n = _Traits::length(__s);
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __on_left>(__x, _STLP_PRIV __cstr_wrapper<_CharT>(__s, __n));
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __y) {
- const size_t __n = _Traits::length(__s);
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __cstr_wrapper<_CharT>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __on_right>(_STLP_PRIV __cstr_wrapper<_CharT>(__s, __n), __y);
-}
-
-// addition with char
-template <class _CharT, class _Traits, class _Alloc>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __char_wrapper<_CharT>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const basic_string<_CharT,_Traits,_Alloc>& __x, const _CharT __c) {
- typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right> __root_type;
- __root_type __root(__c, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__x.get_allocator()));
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- __root_type, _STLP_PRIV __on_right>(__x, __root);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __char_wrapper<_CharT>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const _CharT __c, const basic_string<_CharT,_Traits,_Alloc>& __x) {
- typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>,
- _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>,
- _STLP_PRIV __on_right> __root_type;
- __root_type __root(__x, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__x.get_allocator()));
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>,
- __root_type, _STLP_PRIV __on_right>(__c, __root);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __char_wrapper<_CharT>,
- _STLP_PRIV __on_left> _STLP_CALL
-operator+(const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __x, const _CharT __c) {
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __char_wrapper<_CharT>, _STLP_PRIV __on_left>(__x, __c);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir>
-inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __on_right> _STLP_CALL
-operator+(const _CharT __c, const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __x) {
- return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>,
- _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>,
- _STLP_PRIV __on_right>(__c, __x);
-}
-
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-// Operator== and operator!=
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator==(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- return __x.size() == __y.size() && _Traits::compare(__x.data(), __y.data(), __x.size()) == 0;
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator==(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- return __x.size() == __y.size() && _Traits::compare(__x.data(), __y.data(), __x.size()) == 0;
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator==(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- return __x.size() == __y.size() && _Traits::compare(__x.data(), __y.data(), __x.size()) == 0;
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator==(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return __n == __y.size() && _Traits::compare(__s, __y.data(), __n) == 0;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator==(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return __x.size() == __n && _Traits::compare(__x.data(), __s, __n) == 0;
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator==(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return __n == __y.size() && _Traits::compare(__s, __y.data(), __n) == 0;
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator==(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return __x.size() == __n && _Traits::compare(__x.data(), __s, __n) == 0;
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-// Operator< (and also >, <=, and >=).
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator<(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(),
- __y.begin(), __y.end()) < 0;
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator<(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(),
- __y.begin(), __y.end()) < 0;
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator<(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(),
- __y.begin(), __y.end()) < 0;
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator<(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__s, __s + __n,
- __y.begin(), __y.end()) < 0;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator<(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(),
- __s, __s + __n) < 0;
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator<(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__s, __s + __n,
- __y.begin(), __y.end()) < 0;
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator<(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- size_t __n = _Traits::length(__s);
- return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(),
- __s, __s + __n) < 0;
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE)
-
-/* Only defined if _STLP_USE_SEPARATE_RELOPS_NAMESPACE is defined otherwise
- * it might introduce ambiguity with pure template relational operators
- * from rel_ops namespace.
- */
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator!=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y)
-{ return !(__x == __y); }
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator>(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y)
-{ return __y < __x; }
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator<=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y)
-{ return !(__y < __x); }
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator>=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y)
-{ return !(__x < __y); }
-
-# if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator!=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const basic_string<_CharT,_Traits,_Alloc>& __y)
-{ return !(__x==__y); }
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator!=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y)
-{ return !(__x==__y); }
-# endif
-
-#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator!=(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__s == __y);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator!=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__x == __s);
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator!=(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__s == __y);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator!=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__x == __s);
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator>(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return __y < __s;
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator>(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return __s < __x;
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator>(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return __y < __s;
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator>(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return __s < __x;
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator<=(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__y < __s);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator<=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__s < __x);
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator<=(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__y < __s);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator<=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__s < __x);
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator>=(const _CharT* __s,
- const basic_string<_CharT,_Traits,_Alloc>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__s < __y);
-}
-
-template <class _CharT, class _Traits, class _Alloc>
-inline bool _STLP_CALL
-operator>=(const basic_string<_CharT,_Traits,_Alloc>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__x < __s);
-}
-
-#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator>=(const _CharT* __s,
- const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__s < __y);
-}
-
-template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir>
-inline bool _STLP_CALL
-operator>=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x,
- const _CharT* __s) {
- _STLP_FIX_LITERAL_BUG(__s)
- return !(__x < __s);
-}
-#endif /* _STLP_USE_TEMPLATE_EXPRESSION */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_STRING_OPERATORS_H */
-
diff --git a/stlport/stlport/stl/_tempbuf.c b/stlport/stlport/stl/_tempbuf.c
deleted file mode 100644
index 179b472..0000000
--- a/stlport/stlport/stl/_tempbuf.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_TEMPBUF_C
-#define _STLP_TEMPBUF_C
-
-#ifndef _STLP_INTERNAL_TEMPBUF_H
-# include <stl/_tempbuf.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp>
-pair<_Tp*, ptrdiff_t> _STLP_CALL
-__get_temporary_buffer(ptrdiff_t __len, _Tp*)
-{
- if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp)))
- __len = INT_MAX / sizeof(_Tp);
-
- while (__len > 0) {
- _Tp* __tmp = (_Tp*) malloc((size_t)__len * sizeof(_Tp));
- if (__tmp != 0)
- return pair<_Tp*, ptrdiff_t>(__tmp, __len);
- __len /= 2;
- }
-
- return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0);
-}
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_TEMPBUF_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_tempbuf.h b/stlport/stlport/stl/_tempbuf.h
deleted file mode 100644
index 0e0a747..0000000
--- a/stlport/stlport/stl/_tempbuf.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_TEMPBUF_H
-#define _STLP_INTERNAL_TEMPBUF_H
-
-#ifndef _STLP_CLIMITS
-# include <climits>
-#endif
-
-#ifndef _STLP_INTERNAL_CSTDLIB
-# include <stl/_cstdlib.h>
-#endif
-
-#ifndef _STLP_INTERNAL_UNINITIALIZED_H
-# include <stl/_uninitialized.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp>
-pair<_Tp*, ptrdiff_t> _STLP_CALL
-__get_temporary_buffer(ptrdiff_t __len, _Tp*);
-
-#ifndef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
-
-template <class _Tp>
-inline pair<_Tp*, ptrdiff_t> _STLP_CALL get_temporary_buffer(ptrdiff_t __len) {
- return __get_temporary_buffer(__len, (_Tp*) 0);
-}
-
-# if ! defined(_STLP_NO_EXTENSIONS)
-// This overload is not required by the standard; it is an extension.
-// It is supported for backward compatibility with the HP STL, and
-// because not all compilers support the language feature (explicit
-// function template arguments) that is required for the standard
-// version of get_temporary_buffer.
-template <class _Tp>
-inline pair<_Tp*, ptrdiff_t> _STLP_CALL
-get_temporary_buffer(ptrdiff_t __len, _Tp*) {
- return __get_temporary_buffer(__len, (_Tp*) 0);
-}
-# endif
-#endif
-
-template <class _Tp>
-inline void _STLP_CALL return_temporary_buffer(_Tp* __p) {
-// SunPro brain damage
- free((char*)__p);
-}
-
-template <class _ForwardIterator, class _Tp>
-class _Temporary_buffer {
-private:
- ptrdiff_t _M_original_len;
- ptrdiff_t _M_len;
- _Tp* _M_buffer;
-
- void _M_allocate_buffer() {
- _M_original_len = _M_len;
- _M_buffer = 0;
-
- if (_M_len > (ptrdiff_t)(INT_MAX / sizeof(_Tp)))
- _M_len = INT_MAX / sizeof(_Tp);
-
- while (_M_len > 0) {
- _M_buffer = (_Tp*) malloc(_M_len * sizeof(_Tp));
- if (_M_buffer)
- break;
- _M_len /= 2;
- }
- }
-
- void _M_initialize_buffer(const _Tp&, const __true_type&) {}
- void _M_initialize_buffer(const _Tp& val, const __false_type&) {
- uninitialized_fill_n(_M_buffer, _M_len, val);
- }
-
-public:
- ptrdiff_t size() const { return _M_len; }
- ptrdiff_t requested_size() const { return _M_original_len; }
- _Tp* begin() { return _M_buffer; }
- _Tp* end() { return _M_buffer + _M_len; }
-
- _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) {
- // Workaround for a __type_traits bug in the pre-7.3 compiler.
-# if defined(__sgi) && !defined(__GNUC__) && _COMPILER_VERSION < 730
- typedef typename __type_traits<_Tp>::is_POD_type _Trivial;
-# else
- typedef typename __type_traits<_Tp>::has_trivial_default_constructor _Trivial;
-# endif
- _STLP_TRY {
- _M_len = _STLP_STD::distance(__first, __last);
- _M_allocate_buffer();
- if (_M_len > 0)
- _M_initialize_buffer(*__first, _Trivial());
- }
- _STLP_UNWIND(free(_M_buffer); _M_buffer = 0; _M_len = 0)
- }
-
- ~_Temporary_buffer() {
- _STLP_STD::_Destroy_Range(_M_buffer, _M_buffer + _M_len);
- free(_M_buffer);
- }
-
-private:
- // Disable copy constructor and assignment operator.
- _Temporary_buffer(const _Temporary_buffer<_ForwardIterator, _Tp>&) {}
- void operator=(const _Temporary_buffer<_ForwardIterator, _Tp>&) {}
-};
-
-# ifndef _STLP_NO_EXTENSIONS
-
-// Class temporary_buffer is not part of the standard. It is an extension.
-
-template <class _ForwardIterator,
- class _Tp
-#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
- = typename iterator_traits<_ForwardIterator>::value_type
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
- >
-struct temporary_buffer : public _Temporary_buffer<_ForwardIterator, _Tp>
-{
- temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
- : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {}
- ~temporary_buffer() {}
-};
-
-# endif /* _STLP_NO_EXTENSIONS */
-
-_STLP_END_NAMESPACE
-
-# ifndef _STLP_LINK_TIME_INSTANTIATION
-# include <stl/_tempbuf.c>
-# endif
-
-#endif /* _STLP_INTERNAL_TEMPBUF_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_tree.c b/stlport/stlport/stl/_tree.c
deleted file mode 100644
index 818fcc4..0000000
--- a/stlport/stlport/stl/_tree.c
+++ /dev/null
@@ -1,730 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Modified CRP 7/10/00 for improved conformance / efficiency on insert_unique /
- * insert_equal with valid hint -- efficiency is improved all around, and it is
- * should now be standard conforming for complexity on insert point immediately
- * after hint (amortized constant time).
- *
- */
-#ifndef _STLP_TREE_C
-#define _STLP_TREE_C
-
-#ifndef _STLP_INTERNAL_TREE_H
-# include <stl/_tree.h>
-#endif
-
-#if defined (_STLP_DEBUG)
-# define _Rb_tree _STLP_NON_DBG_NAME(Rb_tree)
-#endif
-
-// fbp: these defines are for outline methods definitions.
-// needed for definitions to be portable. Should not be used in method bodies.
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# define __iterator__ _Rb_tree_iterator<_Value, _STLP_HEADER_TYPENAME _Traits::_NonConstTraits>
-# define __size_type__ size_t
-# define iterator __iterator__
-#else
-# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc>::iterator
-# define __size_type__ _STLP_TYPENAME_ON_RETURN_TYPE _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc>::size_type
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION)
-
-template <class _Dummy> void _STLP_CALL
-_Rb_global<_Dummy>::_Rotate_left(_Rb_tree_node_base* __x,
- _Rb_tree_node_base*& __root) {
- _Rb_tree_node_base* __y = __x->_M_right;
- __x->_M_right = __y->_M_left;
- if (__y->_M_left != 0)
- __y->_M_left->_M_parent = __x;
- __y->_M_parent = __x->_M_parent;
-
- if (__x == __root)
- __root = __y;
- else if (__x == __x->_M_parent->_M_left)
- __x->_M_parent->_M_left = __y;
- else
- __x->_M_parent->_M_right = __y;
- __y->_M_left = __x;
- __x->_M_parent = __y;
-}
-
-template <class _Dummy> void _STLP_CALL
-_Rb_global<_Dummy>::_Rotate_right(_Rb_tree_node_base* __x,
- _Rb_tree_node_base*& __root) {
- _Rb_tree_node_base* __y = __x->_M_left;
- __x->_M_left = __y->_M_right;
- if (__y->_M_right != 0)
- __y->_M_right->_M_parent = __x;
- __y->_M_parent = __x->_M_parent;
-
- if (__x == __root)
- __root = __y;
- else if (__x == __x->_M_parent->_M_right)
- __x->_M_parent->_M_right = __y;
- else
- __x->_M_parent->_M_left = __y;
- __y->_M_right = __x;
- __x->_M_parent = __y;
-}
-
-template <class _Dummy> void _STLP_CALL
-_Rb_global<_Dummy>::_Rebalance(_Rb_tree_node_base* __x,
- _Rb_tree_node_base*& __root) {
- __x->_M_color = _S_rb_tree_red;
- while (__x != __root && __x->_M_parent->_M_color == _S_rb_tree_red) {
- if (__x->_M_parent == __x->_M_parent->_M_parent->_M_left) {
- _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_right;
- if (__y && __y->_M_color == _S_rb_tree_red) {
- __x->_M_parent->_M_color = _S_rb_tree_black;
- __y->_M_color = _S_rb_tree_black;
- __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red;
- __x = __x->_M_parent->_M_parent;
- }
- else {
- if (__x == __x->_M_parent->_M_right) {
- __x = __x->_M_parent;
- _Rotate_left(__x, __root);
- }
- __x->_M_parent->_M_color = _S_rb_tree_black;
- __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red;
- _Rotate_right(__x->_M_parent->_M_parent, __root);
- }
- }
- else {
- _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_left;
- if (__y && __y->_M_color == _S_rb_tree_red) {
- __x->_M_parent->_M_color = _S_rb_tree_black;
- __y->_M_color = _S_rb_tree_black;
- __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red;
- __x = __x->_M_parent->_M_parent;
- }
- else {
- if (__x == __x->_M_parent->_M_left) {
- __x = __x->_M_parent;
- _Rotate_right(__x, __root);
- }
- __x->_M_parent->_M_color = _S_rb_tree_black;
- __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red;
- _Rotate_left(__x->_M_parent->_M_parent, __root);
- }
- }
- }
- __root->_M_color = _S_rb_tree_black;
-}
-
-template <class _Dummy> _Rb_tree_node_base* _STLP_CALL
-_Rb_global<_Dummy>::_Rebalance_for_erase(_Rb_tree_node_base* __z,
- _Rb_tree_node_base*& __root,
- _Rb_tree_node_base*& __leftmost,
- _Rb_tree_node_base*& __rightmost) {
- _Rb_tree_node_base* __y = __z;
- _Rb_tree_node_base* __x;
- _Rb_tree_node_base* __x_parent;
-
- if (__y->_M_left == 0) // __z has at most one non-null child. y == z.
- __x = __y->_M_right; // __x might be null.
- else {
- if (__y->_M_right == 0) // __z has exactly one non-null child. y == z.
- __x = __y->_M_left; // __x is not null.
- else { // __z has two non-null children. Set __y to
- __y = _Rb_tree_node_base::_S_minimum(__y->_M_right); // __z's successor. __x might be null.
- __x = __y->_M_right;
- }
- }
-
- if (__y != __z) { // relink y in place of z. y is z's successor
- __z->_M_left->_M_parent = __y;
- __y->_M_left = __z->_M_left;
- if (__y != __z->_M_right) {
- __x_parent = __y->_M_parent;
- if (__x) __x->_M_parent = __y->_M_parent;
- __y->_M_parent->_M_left = __x; // __y must be a child of _M_left
- __y->_M_right = __z->_M_right;
- __z->_M_right->_M_parent = __y;
- }
- else
- __x_parent = __y;
- if (__root == __z)
- __root = __y;
- else if (__z->_M_parent->_M_left == __z)
- __z->_M_parent->_M_left = __y;
- else
- __z->_M_parent->_M_right = __y;
- __y->_M_parent = __z->_M_parent;
- _STLP_STD::swap(__y->_M_color, __z->_M_color);
- __y = __z;
- // __y now points to node to be actually deleted
- }
- else { // __y == __z
- __x_parent = __y->_M_parent;
- if (__x) __x->_M_parent = __y->_M_parent;
- if (__root == __z)
- __root = __x;
- else {
- if (__z->_M_parent->_M_left == __z)
- __z->_M_parent->_M_left = __x;
- else
- __z->_M_parent->_M_right = __x;
- }
-
- if (__leftmost == __z) {
- if (__z->_M_right == 0) // __z->_M_left must be null also
- __leftmost = __z->_M_parent;
- // makes __leftmost == _M_header if __z == __root
- else
- __leftmost = _Rb_tree_node_base::_S_minimum(__x);
- }
- if (__rightmost == __z) {
- if (__z->_M_left == 0) // __z->_M_right must be null also
- __rightmost = __z->_M_parent;
- // makes __rightmost == _M_header if __z == __root
- else // __x == __z->_M_left
- __rightmost = _Rb_tree_node_base::_S_maximum(__x);
- }
- }
-
- if (__y->_M_color != _S_rb_tree_red) {
- while (__x != __root && (__x == 0 || __x->_M_color == _S_rb_tree_black))
- if (__x == __x_parent->_M_left) {
- _Rb_tree_node_base* __w = __x_parent->_M_right;
- if (__w->_M_color == _S_rb_tree_red) {
- __w->_M_color = _S_rb_tree_black;
- __x_parent->_M_color = _S_rb_tree_red;
- _Rotate_left(__x_parent, __root);
- __w = __x_parent->_M_right;
- }
- if ((__w->_M_left == 0 ||
- __w->_M_left->_M_color == _S_rb_tree_black) && (__w->_M_right == 0 ||
- __w->_M_right->_M_color == _S_rb_tree_black)) {
- __w->_M_color = _S_rb_tree_red;
- __x = __x_parent;
- __x_parent = __x_parent->_M_parent;
- } else {
- if (__w->_M_right == 0 ||
- __w->_M_right->_M_color == _S_rb_tree_black) {
- if (__w->_M_left) __w->_M_left->_M_color = _S_rb_tree_black;
- __w->_M_color = _S_rb_tree_red;
- _Rotate_right(__w, __root);
- __w = __x_parent->_M_right;
- }
- __w->_M_color = __x_parent->_M_color;
- __x_parent->_M_color = _S_rb_tree_black;
- if (__w->_M_right) __w->_M_right->_M_color = _S_rb_tree_black;
- _Rotate_left(__x_parent, __root);
- break;
- }
- } else { // same as above, with _M_right <-> _M_left.
- _Rb_tree_node_base* __w = __x_parent->_M_left;
- if (__w->_M_color == _S_rb_tree_red) {
- __w->_M_color = _S_rb_tree_black;
- __x_parent->_M_color = _S_rb_tree_red;
- _Rotate_right(__x_parent, __root);
- __w = __x_parent->_M_left;
- }
- if ((__w->_M_right == 0 ||
- __w->_M_right->_M_color == _S_rb_tree_black) && (__w->_M_left == 0 ||
- __w->_M_left->_M_color == _S_rb_tree_black)) {
- __w->_M_color = _S_rb_tree_red;
- __x = __x_parent;
- __x_parent = __x_parent->_M_parent;
- } else {
- if (__w->_M_left == 0 ||
- __w->_M_left->_M_color == _S_rb_tree_black) {
- if (__w->_M_right) __w->_M_right->_M_color = _S_rb_tree_black;
- __w->_M_color = _S_rb_tree_red;
- _Rotate_left(__w, __root);
- __w = __x_parent->_M_left;
- }
- __w->_M_color = __x_parent->_M_color;
- __x_parent->_M_color = _S_rb_tree_black;
- if (__w->_M_left) __w->_M_left->_M_color = _S_rb_tree_black;
- _Rotate_right(__x_parent, __root);
- break;
- }
- }
- if (__x) __x->_M_color = _S_rb_tree_black;
- }
- return __y;
-}
-
-template <class _Dummy> _Rb_tree_node_base* _STLP_CALL
-_Rb_global<_Dummy>::_M_decrement(_Rb_tree_node_base* _M_node) {
- if (_M_node->_M_color == _S_rb_tree_red && _M_node->_M_parent->_M_parent == _M_node)
- _M_node = _M_node->_M_right;
- else if (_M_node->_M_left != 0) {
- _M_node = _Rb_tree_node_base::_S_maximum(_M_node->_M_left);
- }
- else {
- _Base_ptr __y = _M_node->_M_parent;
- while (_M_node == __y->_M_left) {
- _M_node = __y;
- __y = __y->_M_parent;
- }
- _M_node = __y;
- }
- return _M_node;
-}
-
-template <class _Dummy> _Rb_tree_node_base* _STLP_CALL
-_Rb_global<_Dummy>::_M_increment(_Rb_tree_node_base* _M_node) {
- if (_M_node->_M_right != 0) {
- _M_node = _Rb_tree_node_base::_S_minimum(_M_node->_M_right);
- }
- else {
- _Base_ptr __y = _M_node->_M_parent;
- while (_M_node == __y->_M_right) {
- _M_node = __y;
- __y = __y->_M_parent;
- }
- // check special case: This is necessary if _M_node is the
- // _M_head and the tree contains only a single node __y. In
- // that case parent, left and right all point to __y!
- if (_M_node->_M_right != __y)
- _M_node = __y;
- }
- return _M_node;
-}
-
-#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */
-
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>&
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::operator=(
- const _Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>& __x) {
- if (this != &__x) {
- // Note that _Key may be a constant type.
- clear();
- _M_node_count = 0;
- _M_key_compare = __x._M_key_compare;
- if (__x._M_root() == 0) {
- _M_root() = 0;
- _M_leftmost() = &this->_M_header._M_data;
- _M_rightmost() = &this->_M_header._M_data;
- }
- else {
- _M_root() = _M_copy(__x._M_root(), &this->_M_header._M_data);
- _M_leftmost() = _S_minimum(_M_root());
- _M_rightmost() = _S_maximum(_M_root());
- _M_node_count = __x._M_node_count;
- }
- }
- return *this;
-}
-
-// CRP 7/10/00 inserted argument __on_right, which is another hint (meant to
-// act like __on_left and ignore a portion of the if conditions -- specify
-// __on_right != 0 to bypass comparison as false or __on_left != 0 to bypass
-// comparison as true)
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-__iterator__
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::_M_insert(_Rb_tree_node_base * __parent,
- const _Value& __val,
- _Rb_tree_node_base * __on_left,
- _Rb_tree_node_base * __on_right) {
- // We do not create the node here as, depending on tests, we might call
- // _M_key_compare that can throw an exception.
- _Base_ptr __new_node;
-
- if ( __parent == &this->_M_header._M_data ) {
- __new_node = _M_create_node(__val);
- _S_left(__parent) = __new_node; // also makes _M_leftmost() = __new_node
- _M_root() = __new_node;
- _M_rightmost() = __new_node;
- }
- else if ( __on_right == 0 && // If __on_right != 0, the remainder fails to false
- ( __on_left != 0 || // If __on_left != 0, the remainder succeeds to true
- _M_key_compare( _KeyOfValue()(__val), _S_key(__parent) ) ) ) {
- __new_node = _M_create_node(__val);
- _S_left(__parent) = __new_node;
- if (__parent == _M_leftmost())
- _M_leftmost() = __new_node; // maintain _M_leftmost() pointing to min node
- }
- else {
- __new_node = _M_create_node(__val);
- _S_right(__parent) = __new_node;
- if (__parent == _M_rightmost())
- _M_rightmost() = __new_node; // maintain _M_rightmost() pointing to max node
- }
- _S_parent(__new_node) = __parent;
- _Rb_global_inst::_Rebalance(__new_node, this->_M_header._M_data._M_parent);
- ++_M_node_count;
- return iterator(__new_node);
-}
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-__iterator__
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_equal(const _Value& __val) {
- _Base_ptr __y = &this->_M_header._M_data;
- _Base_ptr __x = _M_root();
- while (__x != 0) {
- __y = __x;
- if (_M_key_compare(_KeyOfValue()(__val), _S_key(__x))) {
- __x = _S_left(__x);
- }
- else
- __x = _S_right(__x);
- }
- return _M_insert(__y, __val, __x);
-}
-
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-pair<__iterator__, bool>
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_unique(const _Value& __val) {
- _Base_ptr __y = &this->_M_header._M_data;
- _Base_ptr __x = _M_root();
- bool __comp = true;
- while (__x != 0) {
- __y = __x;
- __comp = _M_key_compare(_KeyOfValue()(__val), _S_key(__x));
- __x = __comp ? _S_left(__x) : _S_right(__x);
- }
- iterator __j = iterator(__y);
- if (__comp) {
- if (__j == begin())
- return pair<iterator,bool>(_M_insert(__y, __val, /* __x*/ __y), true);
- else
- --__j;
- }
- if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__val))) {
- return pair<iterator,bool>(_M_insert(__y, __val, __x), true);
- }
- return pair<iterator,bool>(__j, false);
-}
-
-// Modifications CRP 7/10/00 as noted to improve conformance and
-// efficiency.
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-__iterator__
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_unique(iterator __position,
- const _Value& __val) {
- if (__position._M_node == this->_M_header._M_data._M_left) { // begin()
-
- // if the container is empty, fall back on insert_unique.
- if (empty())
- return insert_unique(__val).first;
-
- if (_M_key_compare(_KeyOfValue()(__val), _S_key(__position._M_node))) {
- return _M_insert(__position._M_node, __val, __position._M_node);
- }
- // first argument just needs to be non-null
- else {
- bool __comp_pos_v = _M_key_compare( _S_key(__position._M_node), _KeyOfValue()(__val) );
-
- if (__comp_pos_v == false) // compare > and compare < both false so compare equal
- return __position;
- //Below __comp_pos_v == true
-
- // Standard-conformance - does the insertion point fall immediately AFTER
- // the hint?
- iterator __after = __position;
- ++__after;
-
- // Check for only one member -- in that case, __position points to itself,
- // and attempting to increment will cause an infinite loop.
- if (__after._M_node == &this->_M_header._M_data)
- // Check guarantees exactly one member, so comparison was already
- // performed and we know the result; skip repeating it in _M_insert
- // by specifying a non-zero fourth argument.
- return _M_insert(__position._M_node, __val, 0, __position._M_node);
-
- // All other cases:
-
- // Optimization to catch insert-equivalent -- save comparison results,
- // and we get this for free.
- if (_M_key_compare( _KeyOfValue()(__val), _S_key(__after._M_node) )) {
- if (_S_right(__position._M_node) == 0)
- return _M_insert(__position._M_node, __val, 0, __position._M_node);
- else
- return _M_insert(__after._M_node, __val, __after._M_node);
- }
- else {
- return insert_unique(__val).first;
- }
- }
- }
- else if (__position._M_node == &this->_M_header._M_data) { // end()
- if (_M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__val))) {
- // pass along to _M_insert that it can skip comparing
- // v, Key ; since compare Key, v was true, compare v, Key must be false.
- return _M_insert(_M_rightmost(), __val, 0, __position._M_node); // Last argument only needs to be non-null
- }
- else
- return insert_unique(__val).first;
- }
- else {
- iterator __before = __position;
- --__before;
-
- bool __comp_v_pos = _M_key_compare(_KeyOfValue()(__val), _S_key(__position._M_node));
-
- if (__comp_v_pos
- && _M_key_compare( _S_key(__before._M_node), _KeyOfValue()(__val) )) {
-
- if (_S_right(__before._M_node) == 0)
- return _M_insert(__before._M_node, __val, 0, __before._M_node); // Last argument only needs to be non-null
- else
- return _M_insert(__position._M_node, __val, __position._M_node);
- // first argument just needs to be non-null
- }
- else {
- // Does the insertion point fall immediately AFTER the hint?
- iterator __after = __position;
- ++__after;
- // Optimization to catch equivalent cases and avoid unnecessary comparisons
- bool __comp_pos_v = !__comp_v_pos; // Stored this result earlier
- // If the earlier comparison was true, this comparison doesn't need to be
- // performed because it must be false. However, if the earlier comparison
- // was false, we need to perform this one because in the equal case, both will
- // be false.
- if (!__comp_v_pos) {
- __comp_pos_v = _M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__val));
- }
-
- if ( (!__comp_v_pos) // comp_v_pos true implies comp_v_pos false
- && __comp_pos_v
- && (__after._M_node == &this->_M_header._M_data ||
- _M_key_compare( _KeyOfValue()(__val), _S_key(__after._M_node) ))) {
- if (_S_right(__position._M_node) == 0)
- return _M_insert(__position._M_node, __val, 0, __position._M_node);
- else
- return _M_insert(__after._M_node, __val, __after._M_node);
- } else {
- // Test for equivalent case
- if (__comp_v_pos == __comp_pos_v)
- return __position;
- else
- return insert_unique(__val).first;
- }
- }
- }
-}
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-__iterator__
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_equal(iterator __position,
- const _Value& __val) {
- if (__position._M_node == this->_M_header._M_data._M_left) { // begin()
-
- // Check for zero members
- if (size() <= 0)
- return insert_equal(__val);
-
- if (!_M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__val)))
- return _M_insert(__position._M_node, __val, __position._M_node);
- else {
- // Check for only one member
- if (__position._M_node->_M_left == __position._M_node)
- // Unlike insert_unique, can't avoid doing a comparison here.
- return _M_insert(__position._M_node, __val);
-
- // All other cases:
- // Standard-conformance - does the insertion point fall immediately AFTER
- // the hint?
- iterator __after = __position;
- ++__after;
-
- // Already know that compare(pos, v) must be true!
- // Therefore, we want to know if compare(after, v) is false.
- // (i.e., we now pos < v, now we want to know if v <= after)
- // If not, invalid hint.
- if ( __after._M_node == &this->_M_header._M_data ||
- !_M_key_compare( _S_key(__after._M_node), _KeyOfValue()(__val) ) ) {
- if (_S_right(__position._M_node) == 0)
- return _M_insert(__position._M_node, __val, 0, __position._M_node);
- else
- return _M_insert(__after._M_node, __val, __after._M_node);
- }
- else { // Invalid hint
- return insert_equal(__val);
- }
- }
- }
- else if (__position._M_node == &this->_M_header._M_data) { // end()
- if (!_M_key_compare(_KeyOfValue()(__val), _S_key(_M_rightmost())))
- return _M_insert(_M_rightmost(), __val, 0, __position._M_node); // Last argument only needs to be non-null
- else {
- return insert_equal(__val);
- }
- }
- else {
- iterator __before = __position;
- --__before;
- // store the result of the comparison between pos and v so
- // that we don't have to do it again later. Note that this reverses the shortcut
- // on the if, possibly harming efficiency in comparisons; I think the harm will
- // be negligible, and to do what I want to do (save the result of a comparison so
- // that it can be re-used) there is no alternative. Test here is for before <= v <= pos.
- bool __comp_pos_v = _M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__val));
- if (!__comp_pos_v &&
- !_M_key_compare(_KeyOfValue()(__val), _S_key(__before._M_node))) {
- if (_S_right(__before._M_node) == 0)
- return _M_insert(__before._M_node, __val, 0, __before._M_node); // Last argument only needs to be non-null
- else
- return _M_insert(__position._M_node, __val, __position._M_node);
- }
- else {
- // Does the insertion point fall immediately AFTER the hint?
- // Test for pos < v <= after
- iterator __after = __position;
- ++__after;
-
- if (__comp_pos_v &&
- ( __after._M_node == &this->_M_header._M_data ||
- !_M_key_compare( _S_key(__after._M_node), _KeyOfValue()(__val) ) ) ) {
- if (_S_right(__position._M_node) == 0)
- return _M_insert(__position._M_node, __val, 0, __position._M_node);
- else
- return _M_insert(__after._M_node, __val, __after._M_node);
- }
- else { // Invalid hint
- return insert_equal(__val);
- }
- }
- }
-}
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-_Rb_tree_node_base*
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::_M_copy(_Rb_tree_node_base* __x,
- _Rb_tree_node_base* __p) {
- // structural copy. __x and __p must be non-null.
- _Base_ptr __top = _M_clone_node(__x);
- _S_parent(__top) = __p;
-
- _STLP_TRY {
- if (_S_right(__x))
- _S_right(__top) = _M_copy(_S_right(__x), __top);
- __p = __top;
- __x = _S_left(__x);
-
- while (__x != 0) {
- _Base_ptr __y = _M_clone_node(__x);
- _S_left(__p) = __y;
- _S_parent(__y) = __p;
- if (_S_right(__x))
- _S_right(__y) = _M_copy(_S_right(__x), __y);
- __p = __y;
- __x = _S_left(__x);
- }
- }
- _STLP_UNWIND(_M_erase(__top))
-
- return __top;
-}
-
-// this has to stay out-of-line : it's recursive
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-void
-_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>::_M_erase(_Rb_tree_node_base *__x) {
- // erase without rebalancing
- while (__x != 0) {
- _M_erase(_S_right(__x));
- _Base_ptr __y = _S_left(__x);
- _STLP_STD::_Destroy(&_S_value(__x));
- this->_M_header.deallocate(__STATIC_CAST(_Link_type, __x),1);
- __x = __y;
- }
-}
-
-#if defined (_STLP_DEBUG)
-inline int
-__black_count(_Rb_tree_node_base* __node, _Rb_tree_node_base* __root) {
- if (__node == 0)
- return 0;
- else {
- int __bc = __node->_M_color == _S_rb_tree_black ? 1 : 0;
- if (__node == __root)
- return __bc;
- else
- return __bc + __black_count(__node->_M_parent, __root);
- }
-}
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-bool _Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>::__rb_verify() const {
- if (_M_node_count == 0 || begin() == end())
- return ((_M_node_count == 0) &&
- (begin() == end()) &&
- (this->_M_header._M_data._M_left == &this->_M_header._M_data) &&
- (this->_M_header._M_data._M_right == &this->_M_header._M_data));
-
- int __len = __black_count(_M_leftmost(), _M_root());
- for (const_iterator __it = begin(); __it != end(); ++__it) {
- _Base_ptr __x = __it._M_node;
- _Base_ptr __L = _S_left(__x);
- _Base_ptr __R = _S_right(__x);
-
- if (__x->_M_color == _S_rb_tree_red)
- if ((__L && __L->_M_color == _S_rb_tree_red) ||
- (__R && __R->_M_color == _S_rb_tree_red))
- return false;
-
- if (__L && _M_key_compare(_S_key(__x), _S_key(__L)))
- return false;
- if (__R && _M_key_compare(_S_key(__R), _S_key(__x)))
- return false;
-
- if (!__L && !__R && __black_count(__x, _M_root()) != __len)
- return false;
- }
-
- if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root()))
- return false;
- if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root()))
- return false;
-
- return true;
-}
-#endif /* _STLP_DEBUG */
-
-_STLP_MOVE_TO_STD_NAMESPACE
-_STLP_END_NAMESPACE
-
-#undef _Rb_tree
-#undef __iterator__
-#undef iterator
-#undef __size_type__
-
-#endif /* _STLP_TREE_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_tree.h b/stlport/stlport/stl/_tree.h
deleted file mode 100644
index bf05901..0000000
--- a/stlport/stlport/stl/_tree.h
+++ /dev/null
@@ -1,684 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_TREE_H
-#define _STLP_INTERNAL_TREE_H
-
-/*
-
-Red-black tree class, designed for use in implementing STL
-associative containers (set, multiset, map, and multimap). The
-insertion and deletion algorithms are based on those in Cormen,
-Leiserson, and Rivest, Introduction to Algorithms (MIT Press, 1990),
-except that
-
-(1) the header cell is maintained with links not only to the root
-but also to the leftmost node of the tree, to enable constant time
-begin(), and to the rightmost node of the tree, to enable linear time
-performance when used with the generic set algorithms (set_union,
-etc.);
-
-(2) when a node being deleted has two children its successor node is
-relinked into its place, rather than copied, so that the only
-iterators invalidated are those referring to the deleted node.
-
-*/
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-#ifndef _STLP_INTERNAL_FUNCTION_BASE_H
-# include <stl/_function_base.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-typedef bool _Rb_tree_Color_type;
-//const _Rb_tree_Color_type _S_rb_tree_red = false;
-//const _Rb_tree_Color_type _S_rb_tree_black = true;
-
-#define _S_rb_tree_red false
-#define _S_rb_tree_black true
-
-struct _Rb_tree_node_base {
- typedef _Rb_tree_Color_type _Color_type;
- typedef _Rb_tree_node_base* _Base_ptr;
-
- _Color_type _M_color;
- _Base_ptr _M_parent;
- _Base_ptr _M_left;
- _Base_ptr _M_right;
-
- static _Base_ptr _STLP_CALL _S_minimum(_Base_ptr __x) {
- while (__x->_M_left != 0) __x = __x->_M_left;
- return __x;
- }
-
- static _Base_ptr _STLP_CALL _S_maximum(_Base_ptr __x) {
- while (__x->_M_right != 0) __x = __x->_M_right;
- return __x;
- }
-};
-
-template <class _Value>
-struct _Rb_tree_node : public _Rb_tree_node_base {
- _Value _M_value_field;
- __TRIVIAL_STUFF(_Rb_tree_node)
-};
-
-struct _Rb_tree_base_iterator;
-
-template <class _Dummy>
-class _Rb_global {
-public:
- typedef _Rb_tree_node_base* _Base_ptr;
- // those used to be global functions
- static void _STLP_CALL _Rebalance(_Base_ptr __x, _Base_ptr& __root);
- static _Base_ptr _STLP_CALL _Rebalance_for_erase(_Base_ptr __z,
- _Base_ptr& __root,
- _Base_ptr& __leftmost,
- _Base_ptr& __rightmost);
- // those are from _Rb_tree_base_iterator - moved here to reduce code bloat
- // moved here to reduce code bloat without templatizing _Rb_tree_base_iterator
- static _Base_ptr _STLP_CALL _M_increment (_Base_ptr);
- static _Base_ptr _STLP_CALL _M_decrement (_Base_ptr);
- static void _STLP_CALL _Rotate_left (_Base_ptr __x, _Base_ptr& __root);
- static void _STLP_CALL _Rotate_right(_Base_ptr __x, _Base_ptr& __root);
-};
-
-# if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS _Rb_global<bool>;
-# endif
-
-typedef _Rb_global<bool> _Rb_global_inst;
-
-struct _Rb_tree_base_iterator {
- typedef _Rb_tree_node_base* _Base_ptr;
- typedef bidirectional_iterator_tag iterator_category;
- typedef ptrdiff_t difference_type;
- _Base_ptr _M_node;
- _Rb_tree_base_iterator() : _M_node(0) {}
- _Rb_tree_base_iterator(_Base_ptr __x) : _M_node(__x) {}
-};
-
-template <class _Value, class _Traits>
-struct _Rb_tree_iterator : public _Rb_tree_base_iterator {
- typedef _Value value_type;
- typedef typename _Traits::reference reference;
- typedef typename _Traits::pointer pointer;
- typedef _Rb_tree_iterator<_Value, _Traits> _Self;
- typedef _Rb_tree_node_base* _Base_ptr;
- typedef _Rb_tree_node<_Value>* _Link_type;
-
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
- typedef _Rb_tree_iterator<_Value, _NonConstTraits> iterator;
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef _Rb_tree_iterator<_Value, _ConstTraits> const_iterator;
-
- _Rb_tree_iterator() {}
-#if !defined (_STLP_DEBUG)
- /* In STL debug mode we need this constructor implicit for the pointer
- * specialization implementation.
- */
- explicit
-#endif
- _Rb_tree_iterator(_Base_ptr __x) : _Rb_tree_base_iterator(__x) {}
- //copy constructor for iterator and constructor from iterator for const_iterator
- _Rb_tree_iterator(const iterator& __it) : _Rb_tree_base_iterator(__it._M_node) {}
-
- reference operator*() const {
- return __STATIC_CAST(_Link_type, _M_node)->_M_value_field;
- }
-
- _STLP_DEFINE_ARROW_OPERATOR
-
- _Self& operator++() {
- _M_node = _Rb_global_inst::_M_increment(_M_node);
- return *this;
- }
- _Self operator++(int) {
- _Self __tmp = *this;
- ++(*this);
- return __tmp;
- }
-
- _Self& operator--() {
- _M_node = _Rb_global_inst::_M_decrement(_M_node);
- return *this;
- }
- _Self operator--(int) {
- _Self __tmp = *this;
- --(*this);
- return __tmp;
- }
-
- bool operator == (const_iterator __rhs) const {
- return _M_node == __rhs._M_node;
- }
- bool operator != (const_iterator __rhs) const {
- return _M_node != __rhs._M_node;
- }
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Value, class _Traits>
-struct __type_traits<_STLP_PRIV _Rb_tree_iterator<_Value, _Traits> > {
- typedef __false_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES)
-_STLP_MOVE_TO_STD_NAMESPACE
-template <class _Value, class _Traits>
-inline _Value* value_type(const _STLP_PRIV _Rb_tree_iterator<_Value, _Traits>&)
-{ return (_Value*)0; }
-inline bidirectional_iterator_tag iterator_category(const _STLP_PRIV _Rb_tree_base_iterator&)
-{ return bidirectional_iterator_tag(); }
-inline ptrdiff_t* distance_type(const _STLP_PRIV _Rb_tree_base_iterator&)
-{ return (ptrdiff_t*) 0; }
-_STLP_MOVE_TO_PRIV_NAMESPACE
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-// Base class to help EH
-
-template <class _Tp, class _Alloc>
-class _Rb_tree_base {
-public:
- typedef _Rb_tree_node_base _Node_base;
- typedef _Rb_tree_node<_Tp> _Node;
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef _Alloc allocator_type;
-private:
- typedef _Rb_tree_base<_Tp, _Alloc> _Self;
- typedef typename _Alloc_traits<_Node, _Alloc>::allocator_type _M_node_allocator_type;
- typedef _STLP_alloc_proxy<_Node_base, _Node, _M_node_allocator_type> _AllocProxy;
-
-public:
- allocator_type get_allocator() const {
- return _STLP_CONVERT_ALLOCATOR(_M_header, _Tp);
- }
-
-protected:
- _Rb_tree_base(const allocator_type& __a) :
- _M_header(_STLP_CONVERT_ALLOCATOR(__a, _Node), _Node_base() ) {
- _M_empty_initialize();
- }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _Rb_tree_base(__move_source<_Self> src) :
- _M_header(__move_source<_AllocProxy>(src.get()._M_header)) {
- _M_rebind(&src.get()._M_header._M_data);
- src.get()._M_empty_initialize();
- }
-#endif
-
- void _M_empty_initialize() {
- _M_header._M_data._M_color = _S_rb_tree_red; // used to distinguish header from
- // __root, in iterator.operator++
- _M_header._M_data._M_parent = 0;
- _M_header._M_data._M_left = &_M_header._M_data;
- _M_header._M_data._M_right = &_M_header._M_data;
- }
-
- void _M_rebind(_Node_base *__static_node) {
- if (_M_header._M_data._M_parent != 0) {
- _M_header._M_data._M_parent->_M_parent = &_M_header._M_data;
- }
- if (_M_header._M_data._M_right == __static_node) {
- _M_header._M_data._M_right = &_M_header._M_data;
- }
- if (_M_header._M_data._M_left == __static_node) {
- _M_header._M_data._M_left = &_M_header._M_data;
- }
- }
-
- _AllocProxy _M_header;
-};
-
-#if defined (_STLP_DEBUG)
-# define _Rb_tree _STLP_NON_DBG_NAME(Rb_tree)
-#endif
-
-template <class _Key, class _Compare,
- class _Value, class _KeyOfValue, class _Traits,
- _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Value>) >
-class _Rb_tree : public _Rb_tree_base<_Value, _Alloc> {
- typedef _Rb_tree_base<_Value, _Alloc> _Base;
- typedef _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc> _Self;
-protected:
- typedef _Rb_tree_node_base * _Base_ptr;
- typedef _Rb_tree_node<_Value> _Node;
- typedef _Node* _Link_type;
- typedef _Rb_tree_Color_type _Color_type;
-public:
- typedef _Key key_type;
- typedef _Value value_type;
- typedef typename _Traits::pointer pointer;
- typedef const value_type* const_pointer;
- typedef typename _Traits::reference reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef bidirectional_iterator_tag _Iterator_category;
- typedef typename _Base::allocator_type allocator_type;
-
-protected:
-
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
- _Base_ptr _M_create_node(const value_type& __x) {
- _Link_type __tmp = this->_M_header.allocate(1);
- _STLP_TRY {
- _Copy_Construct(&__tmp->_M_value_field, __x);
- }
- _STLP_UNWIND(this->_M_header.deallocate(__tmp,1))
- _S_left(__tmp) = 0;
- _S_right(__tmp) = 0;
- return __tmp;
- }
-
- _Base_ptr _M_clone_node(_Base_ptr __x) {
- _Base_ptr __tmp = _M_create_node(_S_value(__x));
- _S_color(__tmp) = _S_color(__x);
- return __tmp;
- }
-
- size_type _M_node_count; // keeps track of size of tree
- _Compare _M_key_compare;
-
- _Base_ptr _M_root() const
- { return this->_M_header._M_data._M_parent; }
- _Base_ptr _M_leftmost() const
- { return this->_M_header._M_data._M_left; }
- _Base_ptr _M_rightmost() const
- { return this->_M_header._M_data._M_right; }
-
- _Base_ptr& _M_root()
- { return this->_M_header._M_data._M_parent; }
- _Base_ptr& _M_leftmost()
- { return this->_M_header._M_data._M_left; }
- _Base_ptr& _M_rightmost()
- { return this->_M_header._M_data._M_right; }
-
- static _Base_ptr& _STLP_CALL _S_left(_Base_ptr __x)
- { return __x->_M_left; }
- static _Base_ptr& _STLP_CALL _S_right(_Base_ptr __x)
- { return __x->_M_right; }
- static _Base_ptr& _STLP_CALL _S_parent(_Base_ptr __x)
- { return __x->_M_parent; }
- static value_type& _STLP_CALL _S_value(_Base_ptr __x)
- { return __STATIC_CAST(_Link_type, __x)->_M_value_field; }
- static const _Key& _STLP_CALL _S_key(_Base_ptr __x)
- { return _KeyOfValue()(_S_value(__x));}
- static _Color_type& _STLP_CALL _S_color(_Base_ptr __x)
- { return (_Color_type&)(__x->_M_color); }
-
- static _Base_ptr _STLP_CALL _S_minimum(_Base_ptr __x)
- { return _Rb_tree_node_base::_S_minimum(__x); }
-
- static _Base_ptr _STLP_CALL _S_maximum(_Base_ptr __x)
- { return _Rb_tree_node_base::_S_maximum(__x); }
-
-public:
- typedef typename _Traits::_NonConstTraits _NonConstTraits;
- typedef typename _Traits::_ConstTraits _ConstTraits;
- typedef _Rb_tree_iterator<value_type, _NonConstTraits> iterator;
- typedef _Rb_tree_iterator<value_type, _ConstTraits> const_iterator;
- _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS;
-
-private:
- iterator _M_insert(_Base_ptr __parent, const value_type& __val, _Base_ptr __on_left = 0, _Base_ptr __on_right = 0);
- _Base_ptr _M_copy(_Base_ptr __x, _Base_ptr __p);
- void _M_erase(_Base_ptr __x);
-
-public:
- // allocation/deallocation
- _Rb_tree()
- : _Rb_tree_base<_Value, _Alloc>(allocator_type()), _M_node_count(0), _M_key_compare(_Compare())
- {}
-
- _Rb_tree(const _Compare& __comp)
- : _Rb_tree_base<_Value, _Alloc>(allocator_type()), _M_node_count(0), _M_key_compare(__comp)
- {}
-
- _Rb_tree(const _Compare& __comp, const allocator_type& __a)
- : _Rb_tree_base<_Value, _Alloc>(__a), _M_node_count(0), _M_key_compare(__comp)
- {}
-
- _Rb_tree(const _Self& __x)
- : _Rb_tree_base<_Value, _Alloc>(__x.get_allocator()),
- _M_node_count(0), _M_key_compare(__x._M_key_compare) {
- if (__x._M_root() != 0) {
- _S_color(&this->_M_header._M_data) = _S_rb_tree_red;
- _M_root() = _M_copy(__x._M_root(), &this->_M_header._M_data);
- _M_leftmost() = _S_minimum(_M_root());
- _M_rightmost() = _S_maximum(_M_root());
- }
- _M_node_count = __x._M_node_count;
- }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _Rb_tree(__move_source<_Self> src)
- : _Rb_tree_base<_Value, _Alloc>(__move_source<_Base>(src.get())),
- _M_node_count(src.get()._M_node_count),
- _M_key_compare(_AsMoveSource(src.get()._M_key_compare))
- { src.get()._M_node_count = 0; }
-#endif
-
- ~_Rb_tree() { clear(); }
- _Self& operator=(const _Self& __x);
-
-public:
- // accessors:
- _Compare key_comp() const { return _M_key_compare; }
-
- iterator begin() { return iterator(_M_leftmost()); }
- const_iterator begin() const { return const_iterator(_M_leftmost()); }
- iterator end() { return iterator(&this->_M_header._M_data); }
- const_iterator end() const { return const_iterator(__CONST_CAST(_Base_ptr, &this->_M_header._M_data)); }
-
- reverse_iterator rbegin() { return reverse_iterator(end()); }
- const_reverse_iterator rbegin() const
- { return const_reverse_iterator(end()); }
- reverse_iterator rend() { return reverse_iterator(begin()); }
- const_reverse_iterator rend() const
- { return const_reverse_iterator(begin()); }
- bool empty() const { return _M_node_count == 0; }
- size_type size() const { return _M_node_count; }
- size_type max_size() const { return size_type(-1); }
-
- void swap(_Self& __t) {
- if (__t.empty()) {
- if (this->empty()) return;
- __t._M_header.swap(this->_M_header);
- __t._M_rebind(&this->_M_header._M_data);
- this->_M_empty_initialize();
- }
- else if (this->empty()) {
- __t.swap(*this);
- return;
- }
- else {
- this->_M_header.swap(__t._M_header);
- this->_M_rebind(&__t._M_header._M_data);
- __t._M_rebind(&this->_M_header._M_data);
- }
- _STLP_STD::swap(_M_node_count, __t._M_node_count);
- _STLP_STD::swap(_M_key_compare, __t._M_key_compare);
- }
-
-public:
- // insert/erase
- pair<iterator,bool> insert_unique(const value_type& __x);
- iterator insert_equal(const value_type& __x);
-
- iterator insert_unique(iterator __pos, const value_type& __x);
- iterator insert_equal(iterator __pos, const value_type& __x);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template<class _II> void insert_equal(_II __first, _II __last) {
- for ( ; __first != __last; ++__first)
- insert_equal(*__first);
- }
- template<class _II> void insert_unique(_II __first, _II __last) {
- for ( ; __first != __last; ++__first)
- insert_unique(*__first);
- }
-#else
- void insert_unique(const_iterator __first, const_iterator __last) {
- for ( ; __first != __last; ++__first)
- insert_unique(*__first);
- }
- void insert_unique(const value_type* __first, const value_type* __last) {
- for ( ; __first != __last; ++__first)
- insert_unique(*__first);
- }
- void insert_equal(const_iterator __first, const_iterator __last) {
- for ( ; __first != __last; ++__first)
- insert_equal(*__first);
- }
- void insert_equal(const value_type* __first, const value_type* __last) {
- for ( ; __first != __last; ++__first)
- insert_equal(*__first);
- }
-#endif
-
- void erase(iterator __pos) {
- _Base_ptr __x = _Rb_global_inst::_Rebalance_for_erase(__pos._M_node,
- this->_M_header._M_data._M_parent,
- this->_M_header._M_data._M_left,
- this->_M_header._M_data._M_right);
- _STLP_STD::_Destroy(&_S_value(__x));
- this->_M_header.deallocate(__STATIC_CAST(_Link_type, __x), 1);
- --_M_node_count;
- }
-
- size_type erase(const key_type& __x) {
- pair<iterator,iterator> __p = equal_range(__x);
- size_type __n = _STLP_STD::distance(__p.first, __p.second);
- erase(__p.first, __p.second);
- return __n;
- }
-
- size_type erase_unique(const key_type& __x) {
- iterator __i = find(__x);
- if (__i._M_node != &this->_M_header._M_data) {
- erase(__i);
- return 1;
- }
- return 0;
- }
-
- void erase(iterator __first, iterator __last) {
- if (__first._M_node == this->_M_header._M_data._M_left && // begin()
- __last._M_node == &this->_M_header._M_data) // end()
- clear();
- else
- while (__first != __last) erase(__first++);
- }
-
- void erase(const key_type* __first, const key_type* __last) {
- while (__first != __last) erase(*__first++);
- }
-
- void clear() {
- if (_M_node_count != 0) {
- _M_erase(_M_root());
- _M_leftmost() = &this->_M_header._M_data;
- _M_root() = 0;
- _M_rightmost() = &this->_M_header._M_data;
- _M_node_count = 0;
- }
- }
-
-public:
- // set operations:
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __k) { return iterator(_M_find(__k)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __k) const { return const_iterator(_M_find(__k)); }
-private:
- _STLP_TEMPLATE_FOR_CONT_EXT
- _Base_ptr _M_find(const _KT& __k) const {
- _Base_ptr __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); // Last node which is not less than __k.
- _Base_ptr __x = _M_root(); // Current node.
-
- while (__x != 0)
- if (!_M_key_compare(_S_key(__x), __k))
- __y = __x, __x = _S_left(__x);
- else
- __x = _S_right(__x);
-
- if (__y != &this->_M_header._M_data) {
- if (_M_key_compare(__k, _S_key(__y))) {
- __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data);
- }
- }
- return __y;
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- _Base_ptr _M_lower_bound(const _KT& __k) const {
- _Base_ptr __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); /* Last node which is not less than __k. */
- _Base_ptr __x = _M_root(); /* Current node. */
-
- while (__x != 0)
- if (!_M_key_compare(_S_key(__x), __k))
- __y = __x, __x = _S_left(__x);
- else
- __x = _S_right(__x);
-
- return __y;
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- _Base_ptr _M_upper_bound(const _KT& __k) const {
- _Base_ptr __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); /* Last node which is greater than __k. */
- _Base_ptr __x = _M_root(); /* Current node. */
-
- while (__x != 0)
- if (_M_key_compare(__k, _S_key(__x)))
- __y = __x, __x = _S_left(__x);
- else
- __x = _S_right(__x);
-
- return __y;
- }
-
-public:
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __x) const {
- pair<const_iterator, const_iterator> __p = equal_range(__x);
- return _STLP_STD::distance(__p.first, __p.second);
- }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator lower_bound(const _KT& __x) { return iterator(_M_lower_bound(__x)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator lower_bound(const _KT& __x) const { return const_iterator(_M_lower_bound(__x)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator upper_bound(const _KT& __x) { return iterator(_M_upper_bound(__x)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator upper_bound(const _KT& __x) const { return const_iterator(_M_upper_bound(__x)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator,iterator> equal_range(const _KT& __x)
- { return pair<iterator, iterator>(lower_bound(__x), upper_bound(__x)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __x) const
- { return pair<const_iterator, const_iterator>(lower_bound(__x), upper_bound(__x)); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator,iterator> equal_range_unique(const _KT& __x) {
- pair<iterator, iterator> __p;
- __p.second = lower_bound(__x);
- if (__p.second._M_node != &this->_M_header._M_data &&
- !_M_key_compare(__x, _S_key(__p.second._M_node))) {
- __p.first = __p.second++;
- }
- else {
- __p.first = __p.second;
- }
- return __p;
- }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range_unique(const _KT& __x) const {
- pair<const_iterator, const_iterator> __p;
- __p.second = lower_bound(__x);
- if (__p.second._M_node != &this->_M_header._M_data &&
- !_M_key_compare(__x, _S_key(__p.second._M_node))) {
- __p.first = __p.second++;
- }
- else {
- __p.first = __p.second;
- }
- return __p;
- }
-
-#if defined (_STLP_DEBUG)
-public:
- // Debugging.
- bool __rb_verify() const;
-#endif //_STLP_DEBUG
-};
-
-#if defined (_STLP_DEBUG)
-# undef _Rb_tree
-#endif
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_tree.c>
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_tree.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#define _STLP_TEMPLATE_HEADER template <class _Key, class _Compare, class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER _STLP_PRIV _Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Key, class _Compare, class _Value, class _KeyOfValue, class _Traits, class _Alloc>
-struct __move_traits<_STLP_PRIV _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc> >
- : _STLP_PRIV __move_traits_help2<_Compare, _Alloc> {};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_TREE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_uninitialized.h b/stlport/stlport/stl/_uninitialized.h
deleted file mode 100644
index 5489a94..0000000
--- a/stlport/stlport/stl/_uninitialized.h
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_UNINITIALIZED_H
-#define _STLP_INTERNAL_UNINITIALIZED_H
-
-#ifndef _STLP_INTERNAL_CSTRING
-# include <stl/_cstring.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-// uninitialized_copy
-
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __ucopy(_InputIter __first, _InputIter __last,
- _OutputIter __result, _Distance*) {
- _OutputIter __cur = __result;
- _STLP_TRY {
- for ( ; __first != __last; ++__first, ++__cur)
- _Param_Construct(&*__cur, *__first);
- return __cur;
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur))
- _STLP_RET_AFTER_THROW(__cur)
-}
-
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __ucopy(_InputIter __first, _InputIter __last,
- _OutputIter __result, const input_iterator_tag &, _Distance* __d)
-{ return __ucopy(__first, __last, __result, __d); }
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __ucopy(_InputIter __first, _InputIter __last,
- _OutputIter __result, const forward_iterator_tag &, _Distance* __d)
-{ return __ucopy(__first, __last, __result, __d); }
-
-template <class _InputIter, class _OutputIter, class _Distance>
-inline _OutputIter __ucopy(_InputIter __first, _InputIter __last,
- _OutputIter __result, const bidirectional_iterator_tag &, _Distance* __d)
-{ return __ucopy(__first, __last, __result, __d); }
-#endif
-
-template <class _RandomAccessIter, class _OutputIter, class _Distance>
-inline _OutputIter __ucopy(_RandomAccessIter __first, _RandomAccessIter __last,
- _OutputIter __result, const random_access_iterator_tag &, _Distance*) {
- _OutputIter __cur = __result;
- _STLP_TRY {
- for (_Distance __n = __last - __first; __n > 0; --__n) {
- _Param_Construct(&*__cur, *__first);
- ++__first;
- ++__cur;
- }
- return __cur;
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur))
- _STLP_RET_AFTER_THROW(__cur)
-}
-
-//Used internaly
-template <class _RandomAccessIter, class _OutputIter>
-inline _OutputIter __ucopy(_RandomAccessIter __first, _RandomAccessIter __last, _OutputIter __result)
-{ return __ucopy(__first, __last, __result, random_access_iterator_tag(), (ptrdiff_t*)0); }
-
-inline void*
-__ucopy_trivial(const void* __first, const void* __last, void* __result) {
- //dums: this version can use memcpy (__copy_trivial can't)
- return (__last == __first) ? __result :
- ((char*)memcpy(__result, __first, ((const char*)__last - (const char*)__first))) +
- ((const char*)__last - (const char*)__first);
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __ucopy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __false_type& /*TrivialUCopy*/)
-{ return __ucopy(__first, __last, __result, random_access_iterator_tag(), (ptrdiff_t*)0); }
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __ucopy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __true_type& /*TrivialUCopy*/) {
- // we know they all pointers, so this cast is OK
- // return (_OutputIter)__copy_trivial(&(*__first), &(*__last), &(*__result));
- return (_OutputIter)__ucopy_trivial(__first, __last, __result);
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __ucopy_aux(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __true_type& /*BothPtrType*/) {
- return __ucopy_ptrs(__first, __last, __result,
- _UseTrivialUCopy(_STLP_VALUE_TYPE(__first, _InputIter),
- _STLP_VALUE_TYPE(__result, _OutputIter))._Answer());
-}
-
-template <class _InputIter, class _OutputIter>
-inline _OutputIter __ucopy_aux(_InputIter __first, _InputIter __last, _OutputIter __result,
- const __false_type& /*BothPtrType*/) {
- return __ucopy(__first, __last, __result,
- _STLP_ITERATOR_CATEGORY(__first, _InputIter),
- _STLP_DISTANCE_TYPE(__first, _InputIter));
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _ForwardIter>
-inline _ForwardIter
-uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
-{ return _STLP_PRIV __ucopy_aux(__first, __last, __result, _BothPtrType< _InputIter, _ForwardIter>::_Answer()); }
-
-inline char*
-uninitialized_copy(const char* __first, const char* __last, char* __result)
-{ return (char*)_STLP_PRIV __ucopy_trivial(__first, __last, __result); }
-
-# if defined (_STLP_HAS_WCHAR_T) // dwa 8/15/97
-inline wchar_t*
-uninitialized_copy(const wchar_t* __first, const wchar_t* __last, wchar_t* __result)
-{ return (wchar_t*)_STLP_PRIV __ucopy_trivial (__first, __last, __result); }
-# endif
-
-// uninitialized_copy_n (not part of the C++ standard)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter, class _Size, class _ForwardIter>
-_STLP_INLINE_LOOP
-pair<_InputIter, _ForwardIter>
-__ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result,
- const input_iterator_tag &) {
- _ForwardIter __cur = __result;
- _STLP_TRY {
- for ( ; __count > 0 ; --__count, ++__first, ++__cur)
- _Param_Construct(&*__cur, *__first);
- return pair<_InputIter, _ForwardIter>(__first, __cur);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur))
- _STLP_RET_AFTER_THROW((pair<_InputIter, _ForwardIter>(__first, __cur)))
-}
-
-# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _InputIter, class _Size, class _ForwardIterator>
-inline pair<_InputIter, _ForwardIterator>
-__ucopy_n(_InputIter __first, _Size __count,
- _ForwardIterator __result,
- const forward_iterator_tag &)
-{ return __ucopy_n(__first, __count, __result, input_iterator_tag()); }
-
-template <class _InputIter, class _Size, class _ForwardIterator>
-inline pair<_InputIter, _ForwardIterator>
-__ucopy_n(_InputIter __first, _Size __count,
- _ForwardIterator __result,
- const bidirectional_iterator_tag &)
-{ return __ucopy_n(__first, __count, __result, input_iterator_tag()); }
-# endif
-
-template <class _RandomAccessIter, class _Size, class _ForwardIter>
-inline pair<_RandomAccessIter, _ForwardIter>
-__ucopy_n(_RandomAccessIter __first, _Size __count, _ForwardIter __result,
- const random_access_iterator_tag &) {
- _RandomAccessIter __last = __first + __count;
- return pair<_RandomAccessIter, _ForwardIter>(__last, uninitialized_copy(__first, __last, __result));
-}
-
-// This is used internally in <rope> , which is extension itself.
-template <class _InputIter, class _Size, class _ForwardIter>
-inline pair<_InputIter, _ForwardIter>
-__ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result)
-{ return _STLP_PRIV __ucopy_n(__first, __count, __result, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); }
-
-#if !defined (_STLP_NO_EXTENSIONS)
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _InputIter, class _Size, class _ForwardIter>
-inline pair<_InputIter, _ForwardIter>
-uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result)
-{ return _STLP_PRIV __ucopy_n(__first, __count, __result); }
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-#endif
-
-template <class _ForwardIter, class _Tp, class _Distance>
-inline void __ufill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, _Distance*) {
- _ForwardIter __cur = __first;
- _STLP_TRY {
- for ( ; __cur != __last; ++__cur)
- _Param_Construct(&*__cur, __x);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first, __cur))
-}
-
-template <class _ForwardIter, class _Tp, class _Distance>
-inline void __ufill(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __x, const input_iterator_tag &, _Distance* __d)
-{ __ufill(__first, __last, __x, __d); }
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _ForwardIter, class _Tp, class _Distance>
-inline void __ufill(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __x, const forward_iterator_tag &, _Distance* __d)
-{ __ufill(__first, __last, __x, __d); }
-
-template <class _ForwardIter, class _Tp, class _Distance>
-inline void __ufill(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __x, const bidirectional_iterator_tag &, _Distance* __d)
-{ __ufill(__first, __last, __x, __d); }
-#endif
-
-template <class _ForwardIter, class _Tp, class _Distance>
-inline void __ufill(_ForwardIter __first, _ForwardIter __last,
- const _Tp& __x, const random_access_iterator_tag &, _Distance*) {
- _ForwardIter __cur = __first;
- _STLP_TRY {
- for (_Distance __n = __last - __first; __n > 0; --__n, ++__cur)
- _Param_Construct(&*__cur, __x);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first, __cur))
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Tp>
-inline void uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) {
- _STLP_PRIV __ufill(__first, __last, __x,
- _STLP_ITERATOR_CATEGORY(__first, _ForwardIter),
- _STLP_DISTANCE_TYPE(__first, _ForwardIter));
-}
-
-// Specialization: for one-byte types we can use memset.
-inline void uninitialized_fill(unsigned char* __first, unsigned char* __last,
- const unsigned char& __val) {
- unsigned char __tmp = __val;
- memset(__first, __tmp, __last - __first);
-}
-#if !defined (_STLP_NO_SIGNED_BUILTINS)
-inline void uninitialized_fill(signed char* __first, signed char* __last,
- const signed char& __val) {
- signed char __tmp = __val;
- memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first);
-}
-#endif
-inline void uninitialized_fill(char* __first, char* __last, const char& __val) {
- char __tmp = __val;
- memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first);
-}
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x) {
- _ForwardIter __cur = __first;
- _STLP_TRY {
- for ( ; __n > 0; --__n, ++__cur)
- _Param_Construct(&*__cur, __x);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first, __cur))
- return __cur;
-}
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x,
- const input_iterator_tag &)
-{ return __ufill_n(__first, __n, __x); }
-
-#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x,
- const forward_iterator_tag &)
-{ return __ufill_n(__first, __n, __x); }
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x,
- const bidirectional_iterator_tag &)
-{ return __ufill_n(__first, __n, __x); }
-#endif
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) {
- _ForwardIter __last = __first + __n;
- __ufill(__first, __last, __x, random_access_iterator_tag(), (ptrdiff_t*)0);
- return __last;
-}
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x,
- const random_access_iterator_tag &)
-{ return __uninitialized_fill_n(__first, __n, __x); }
-
-/* __uninitialized_init is an internal algo to init a range with a value
- * built using default constructor. It is only called with pointer as
- * iterator.
- */
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __uinit_aux_aux(_ForwardIter __first, _Size __n, const _Tp& __val,
- const __false_type& /*_HasDefaultZero*/)
-{ return __uninitialized_fill_n(__first, __n, __val); }
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __uinit_aux_aux(_ForwardIter __first, _Size __n, const _Tp& /* __val */,
- const __true_type& /*_HasDefaultZero*/) {
- memset((unsigned char*)__first, 0, __n * sizeof(_Tp));
- return __first + __n;
-}
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __uinit_aux(_ForwardIter __first, _Size __n, const _Tp&,
- const __true_type& /*_TrivialInit*/)
-{ return __first + __n; }
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __uinit_aux(_ForwardIter __first, _Size __n, const _Tp& __val,
- const __false_type& /*_TrivialInit*/)
-{ return __uinit_aux_aux(__first, __n, __val, _HasDefaultZeroValue(__first)._Answer()); }
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline _ForwardIter __uninitialized_init(_ForwardIter __first, _Size __n, const _Tp& __val)
-{ return __uinit_aux(__first, __n, __val, _UseTrivialInit(__first)._Answer()); }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-template <class _ForwardIter, class _Size, class _Tp>
-inline void
-uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x)
-{ _STLP_PRIV __ufill_n(__first, __n, __x, _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); }
-
-// 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 + (last1 - first1), result + (last1 - first1) + (last2 - first2)).
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _InputIter1, class _InputIter2, class _ForwardIter>
-inline _ForwardIter
-__uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1,
- _InputIter2 __first2, _InputIter2 __last2,
- _ForwardIter __result) {
- _ForwardIter __new_result = uninitialized_copy(__first1, __last1, __result);
- _STLP_TRY {
- return uninitialized_copy(__first2, __last2, __new_result);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __new_result))
- _STLP_RET_AFTER_THROW(__result)
-}
-
-// __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);
- _STLP_TRY {
- return uninitialized_copy(__first, __last, __mid);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __mid))
- _STLP_RET_AFTER_THROW(__result)
-}
-
-// __uninitialized_copy_fill
-// Copies [first1, last1) into [first2, first2 + (last1 - first1)), and
-// fills [first2 + (last1 - first1), last2) with x.
-template <class _Iter, class _Tp>
-inline void
-__uninitialized_copy_fill(_Iter __first1, _Iter __last1, _Iter __first2, _Iter __last2,
- const _Tp& __x) {
- _Iter __mid2 = uninitialized_copy(__first1, __last1, __first2);
- _STLP_TRY {
- uninitialized_fill(__mid2, __last2, __x);
- }
- _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first2, __mid2))
-}
-
-/* __uninitialized_move:
- * This function is used internaly and only with pointers as iterators.
- */
-template <class _InputIter, class _ForwardIter, class _TrivialUCpy>
-inline _ForwardIter
-__uninitialized_move(_InputIter __first, _InputIter __last, _ForwardIter __result,
- _TrivialUCpy __trivial_ucpy, const __false_type& /*_Movable*/)
-{ return __ucopy_ptrs(__first, __last, __result, __trivial_ucpy); }
-
-template <class _InputIter, class _ForwardIter, class _TrivialUCpy>
-_STLP_INLINE_LOOP
-_ForwardIter
-__uninitialized_move(_InputIter __first, _InputIter __last, _ForwardIter __result,
- _TrivialUCpy , const __true_type& /*_Movable*/) {
- //Move constructor should not throw so we do not need to take care of exceptions here.
- for (ptrdiff_t __n = __last - __first ; __n > 0; --__n) {
- _Move_Construct(&*__result, *__first);
- ++__first; ++__result;
- }
- return __result;
-}
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_UNINITIALIZED_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_unordered_map.h b/stlport/stlport/stl/_unordered_map.h
deleted file mode 100644
index f2b017d..0000000
--- a/stlport/stlport/stl/_unordered_map.h
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- * Copyright (c) 2004
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_UNORDERED_MAP_H
-#define _STLP_INTERNAL_UNORDERED_MAP_H
-
-#ifndef _STLP_INTERNAL_HASHTABLE_H
-# include <stl/_hashtable.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-//Specific iterator traits creation
-_STLP_CREATE_HASH_ITERATOR_TRAITS(UnorderedMapTraitsT, traits)
-
-_STLP_BEGIN_TR1_NAMESPACE
-
-template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>),
- _STLP_DFL_TMPL_PARAM(_EqualKey, equal_to<_Key>),
- _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
-class unordered_map
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<unordered_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> >
-#endif
-{
-private:
- typedef unordered_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self;
-public:
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<_STLP_CONST key_type, data_type> value_type;
-private:
- //Specific iterator traits creation
- typedef _STLP_PRIV _UnorderedMapTraitsT<value_type> _UnorderedMapTraits;
-
-public:
- typedef hashtable<value_type, key_type, _HashFcn, _UnorderedMapTraits,
- _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht;
-
- typedef typename _Ht::hasher hasher;
- typedef typename _Ht::key_equal key_equal;
-
- typedef typename _Ht::size_type size_type;
- typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::reference reference;
- typedef typename _Ht::const_reference const_reference;
-
- typedef typename _Ht::iterator iterator;
- typedef typename _Ht::const_iterator const_iterator;
- typedef typename _Ht::local_iterator local_iterator;
- typedef typename _Ht::const_local_iterator const_local_iterator;
-
- typedef typename _Ht::allocator_type allocator_type;
-
- hasher hash_function() const { return _M_ht.hash_funct(); }
- key_equal key_eq() const { return _M_ht.key_eq(); }
- allocator_type get_allocator() const { return _M_ht.get_allocator(); }
-
-private:
- _Ht _M_ht;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
- explicit unordered_map(size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- unordered_map(__move_source<_Self> src)
- : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {}
-#endif
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- unordered_map(_InputIterator __f, _InputIterator __l,
- size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-#else
- unordered_map(const value_type* __f, const value_type* __l,
- size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-
- unordered_map(const_iterator __f, const_iterator __l,
- size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_unique(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
- _Self& operator = (const _Self& __other)
- { _M_ht = __other._M_ht; return *this; }
-
- size_type size() const { return _M_ht.size(); }
- size_type max_size() const { return _M_ht.max_size(); }
- bool empty() const { return _M_ht.empty(); }
- void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- iterator begin() { return _M_ht.begin(); }
- iterator end() { return _M_ht.end(); }
- const_iterator begin() const { return _M_ht.begin(); }
- const_iterator end() const { return _M_ht.end(); }
-
- pair<iterator,bool> insert(const value_type& __obj)
- { return _M_ht.insert_unique(__obj); }
- iterator insert(const_iterator /*__hint*/, const value_type& __obj)
- { return _M_ht.insert_unique(__obj); }
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __f, _InputIterator __l)
-#else
- void insert(const value_type* __f, const value_type* __l)
- { _M_ht.insert_unique(__f,__l); }
- void insert(const_iterator __f, const_iterator __l)
-#endif /*_STLP_MEMBER_TEMPLATES */
- { _M_ht.insert_unique(__f, __l); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_ht.find(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- _Tp& operator[](const _KT& __key) {
- iterator __it = _M_ht.find(__key);
- return (__it == _M_ht.end() ?
- _M_ht._M_insert(value_type(__key, _STLP_DEFAULT_CONSTRUCTED(_Tp))).second :
- (*__it).second );
- }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const { return _M_ht.count(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __key)
- { return _M_ht.equal_range(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __key) const
- { return _M_ht.equal_range(__key); }
-
- size_type erase(const key_type& __key) {return _M_ht.erase(__key); }
- void erase(const_iterator __it) { _M_ht.erase(__it); }
- void erase(const_iterator __f, const_iterator __l) { _M_ht.erase(__f, __l); }
- void clear() { _M_ht.clear(); }
-
- size_type bucket_count() const { return _M_ht.bucket_count(); }
- size_type max_bucket_count() const { return _M_ht.max_bucket_count(); }
- size_type bucket_size(size_type __n) const { return _M_ht.elems_in_bucket(__n); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type bucket(const _KT& __k) const { return _M_ht.bucket(__k); }
- local_iterator begin(size_type __n) { return _M_ht.begin(__n); }
- local_iterator end(size_type __n) { return _M_ht.end(__n); }
- const_local_iterator begin(size_type __n) const { return _M_ht.begin(__n); }
- const_local_iterator end(size_type __n) const { return _M_ht.end(__n); }
-
- float load_factor() const { return _M_ht.load_factor(); }
- float max_load_factor() const { return _M_ht.max_load_factor(); }
- void max_load_factor(float __val) { _M_ht.max_load_factor(__val); }
- void rehash(size_type __hint) { _M_ht.rehash(__hint); }
-
-#if defined (__DMC__) // disable operator==(pair<x,unordered_map>, pair<x,unordered_map>)
- bool operator==(const _Self&) const;
-#endif
-};
-
-_STLP_END_NAMESPACE
-
-//Specific iterator traits creation
-_STLP_CREATE_HASH_ITERATOR_TRAITS(UnorderedMultimapTraitsT, traits)
-
-_STLP_BEGIN_TR1_NAMESPACE
-
-template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>),
- _STLP_DFL_TMPL_PARAM(_EqualKey, equal_to<_Key>),
- _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
-class unordered_multimap
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND)
- : public __stlport_class<unordered_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> >
-#endif
-{
-private:
- typedef unordered_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self;
-public:
- typedef _Key key_type;
- typedef _Tp data_type;
- typedef _Tp mapped_type;
- typedef pair<_STLP_CONST key_type, data_type> value_type;
-private:
- //Specific iterator traits creation
- typedef _STLP_PRIV _UnorderedMultimapTraitsT<value_type> _UnorderedMultimapTraits;
-
-public:
- typedef hashtable<value_type, key_type, _HashFcn, _UnorderedMultimapTraits,
- _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht;
-
- typedef typename _Ht::hasher hasher;
- typedef typename _Ht::key_equal key_equal;
-
- typedef typename _Ht::size_type size_type;
- typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::reference reference;
- typedef typename _Ht::const_reference const_reference;
-
- typedef typename _Ht::iterator iterator;
- typedef typename _Ht::const_iterator const_iterator;
- typedef typename _Ht::local_iterator local_iterator;
- typedef typename _Ht::const_local_iterator const_local_iterator;
-
- typedef typename _Ht::allocator_type allocator_type;
-
- hasher hash_function() const { return _M_ht.hash_funct(); }
- key_equal key_eq() const { return _M_ht.key_eq(); }
- allocator_type get_allocator() const { return _M_ht.get_allocator(); }
-
-private:
- _Ht _M_ht;
- _STLP_KEY_TYPE_FOR_CONT_EXT(key_type)
-
-public:
- explicit unordered_multimap(size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a) {}
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- unordered_multimap(__move_source<_Self> src)
- : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {}
-#endif
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- unordered_multimap(_InputIterator __f, _InputIterator __l,
- size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-#else
- unordered_multimap(const value_type* __f, const value_type* __l,
- size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-
- unordered_multimap(const_iterator __f, const_iterator __l,
- size_type __n = 0, const hasher& __hf = hasher(),
- const key_equal& __eql = key_equal(),
- const allocator_type& __a = allocator_type())
- : _M_ht(__n, __hf, __eql, __a)
- { _M_ht.insert_equal(__f, __l); }
-#endif /*_STLP_MEMBER_TEMPLATES */
-
- _Self& operator = (const _Self& __other)
- { _M_ht = __other._M_ht; return *this; }
-
- size_type size() const { return _M_ht.size(); }
- size_type max_size() const { return _M_ht.max_size(); }
- bool empty() const { return _M_ht.empty(); }
- void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
- iterator begin() { return _M_ht.begin(); }
- iterator end() { return _M_ht.end(); }
- const_iterator begin() const { return _M_ht.begin(); }
- const_iterator end() const { return _M_ht.end(); }
-
- iterator insert(const value_type& __obj)
- { return _M_ht.insert_equal(__obj); }
- iterator insert(const_iterator /*__hint*/, const value_type& __obj)
- { return _M_ht.insert_equal(__obj); }
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void insert(_InputIterator __f, _InputIterator __l)
-#else
- void insert(const value_type* __f, const value_type* __l)
- { _M_ht.insert_equal(__f,__l); }
- void insert(const_iterator __f, const_iterator __l)
-#endif /*_STLP_MEMBER_TEMPLATES */
- { _M_ht.insert_equal(__f, __l); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- iterator find(const _KT& __key) { return _M_ht.find(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- const_iterator find(const _KT& __key) const { return _M_ht.find(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type count(const _KT& __key) const { return _M_ht.count(__key); }
-
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<iterator, iterator> equal_range(const _KT& __key)
- { return _M_ht.equal_range(__key); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- pair<const_iterator, const_iterator> equal_range(const _KT& __key) const
- { return _M_ht.equal_range(__key); }
-
- size_type erase(const key_type& __key) {return _M_ht.erase(__key); }
- void erase(const_iterator __it) { _M_ht.erase(__it); }
- void erase(const_iterator __f, const_iterator __l) { _M_ht.erase(__f, __l); }
- void clear() { _M_ht.clear(); }
-
- size_type bucket_count() const { return _M_ht.bucket_count(); }
- size_type max_bucket_count() const { return _M_ht.max_bucket_count(); }
- size_type bucket_size(size_type __n) const { return _M_ht.elems_in_bucket(__n); }
- _STLP_TEMPLATE_FOR_CONT_EXT
- size_type bucket(const _KT& __k) const { return _M_ht.bucket(__k); }
- local_iterator begin(size_type __n) { return _M_ht.begin(__n); }
- local_iterator end(size_type __n) { return _M_ht.end(__n); }
- const_local_iterator begin(size_type __n) const { return _M_ht.begin(__n); }
- const_local_iterator end(size_type __n) const { return _M_ht.end(__n); }
-
- float load_factor() const { return _M_ht.load_factor(); }
- float max_load_factor() const { return _M_ht.max_load_factor(); }
- void max_load_factor(float __val) { _M_ht.max_load_factor(__val); }
- void rehash(size_type __hint) { _M_ht.rehash(__hint); }
-};
-
-#define _STLP_TEMPLATE_HEADER template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER unordered_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>
-
-#include <stl/_relops_hash_cont.h>
-
-#undef _STLP_TEMPLATE_CONTAINER
-#define _STLP_TEMPLATE_CONTAINER unordered_multimap<_Key,_Tp,_HashFcn,_EqlKey,_Alloc>
-
-#include <stl/_relops_hash_cont.h>
-
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-_STLP_END_NAMESPACE
-
-// Specialization of insert_iterator so that it will work for unordered_map
-// and unordered_multimap.
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-struct __move_traits<_STLP_TR1 unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > :
- _STLP_PRIV __move_traits_help<typename _STLP_TR1 unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht>
-{};
-
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-struct __move_traits<_STLP_TR1 unordered_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > :
- _STLP_PRIV __move_traits_help<typename _STLP_TR1 unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht>
-{};
-# endif
-
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-class insert_iterator<_STLP_TR1 unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > {
-protected:
- typedef _STLP_TR1 unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
- _Container* container;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x) : container(&__x) {}
- insert_iterator(_Container& __x, typename _Container::iterator)
- : container(&__x) {}
- insert_iterator<_Container>&
- operator=(const typename _Container::value_type& __val) {
- container->insert(__val);
- return *this;
- }
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-
-template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-class insert_iterator<_STLP_TR1 unordered_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > {
-protected:
- typedef _STLP_TR1 unordered_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
- _Container* container;
- typename _Container::iterator iter;
-public:
- typedef _Container container_type;
- typedef output_iterator_tag iterator_category;
- typedef void value_type;
- typedef void difference_type;
- typedef void pointer;
- typedef void reference;
-
- insert_iterator(_Container& __x) : container(&__x) {}
- insert_iterator(_Container& __x, typename _Container::iterator)
- : container(&__x) {}
- insert_iterator<_Container>&
- operator=(const typename _Container::value_type& __val) {
- container->insert(__val);
- return *this;
- }
- insert_iterator<_Container>& operator*() { return *this; }
- insert_iterator<_Container>& operator++() { return *this; }
- insert_iterator<_Container>& operator++(int) { return *this; }
-};
-
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_INTERNAL_UNORDERED_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_vector.c b/stlport/stlport/stl/_vector.c
deleted file mode 100644
index 705f786..0000000
--- a/stlport/stlport/stl/_vector.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- *
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_VECTOR_C
-#define _STLP_VECTOR_C
-
-#if !defined (_STLP_INTERNAL_VECTOR_H)
-# include <stl/_vector.h>
-#endif
-
-#include <stl/_range_errors.h>
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp, class _Alloc>
-void _Vector_base<_Tp,_Alloc>::_M_throw_length_error() const
-{ __stl_throw_length_error("vector"); }
-
-template <class _Tp, class _Alloc>
-void _Vector_base<_Tp, _Alloc>::_M_throw_out_of_range() const
-{ __stl_throw_out_of_range("vector"); }
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define vector _STLP_PTR_IMPL_NAME(vector)
-#elif defined (_STLP_DEBUG)
-# define vector _STLP_NON_DBG_NAME(vector)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# define __iterator__ _Tp*
-#else
-# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE vector<_Tp, _Alloc>::iterator
-#endif
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::reserve(size_type __n) {
- if (capacity() < __n) {
- if (max_size() < __n) {
- this->_M_throw_length_error();
- }
-
- const size_type __old_size = size();
- pointer __tmp;
- if (this->_M_start) {
- __tmp = _M_allocate_and_copy(__n, this->_M_start, this->_M_finish);
- _M_clear();
- } else {
- __tmp = this->_M_end_of_storage.allocate(__n, __n);
- }
- _M_set(__tmp, __tmp + __old_size, __tmp + __n);
- }
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_insert_overflow_aux(pointer __pos, const _Tp& __x, const __false_type& /*DO NOT USE!!*/,
- size_type __fill_len, bool __atend ) {
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- size_type __len = _M_compute_next_size(__fill_len);
- pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
- pointer __new_finish = __new_start;
- _STLP_TRY {
- __new_finish = _STLP_PRIV __uninitialized_move(this->_M_start, __pos, __new_start, _TrivialUCopy(), _Movable());
- // handle insertion
- if (__fill_len == 1) {
- _Copy_Construct(__new_finish, __x);
- ++__new_finish;
- } else
- __new_finish = _STLP_PRIV __uninitialized_fill_n(__new_finish, __fill_len, __x);
- if (!__atend)
- __new_finish = _STLP_PRIV __uninitialized_move(__pos, this->_M_finish, __new_finish, _TrivialUCopy(), _Movable()); // copy remainder
- }
- _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish),
- this->_M_end_of_storage.deallocate(__new_start,__len)))
- _M_clear_after_move();
- _M_set(__new_start, __new_finish, __new_start + __len);
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_insert_overflow(pointer __pos, const _Tp& __x, const __true_type& /*_TrivialCopy*/,
- size_type __fill_len, bool __atend ) {
- size_type __len = _M_compute_next_size(__fill_len);
- pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
- pointer __new_finish = __STATIC_CAST(pointer, _STLP_PRIV __copy_trivial(this->_M_start, __pos, __new_start));
- // handle insertion
- __new_finish = _STLP_PRIV __fill_n(__new_finish, __fill_len, __x);
- if (!__atend)
- __new_finish = __STATIC_CAST(pointer, _STLP_PRIV __copy_trivial(__pos, this->_M_finish, __new_finish)); // copy remainder
- _M_clear();
- _M_set(__new_start, __new_finish, __new_start + __len);
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_fill_insert_aux(iterator __pos, size_type __n,
- const _Tp& __x, const __true_type& /*_Movable*/) {
- if (_M_is_inside(__x)) {
- _Tp __x_copy = __x;
- _M_fill_insert_aux(__pos, __n, __x_copy, __true_type());
- return;
- }
- iterator __src = this->_M_finish - 1;
- iterator __dst = __src + __n;
- for (; __src >= __pos; --__dst, --__src) {
- _STLP_STD::_Move_Construct(__dst, *__src);
- _STLP_STD::_Destroy_Moved(__src);
- }
- _STLP_PRIV __uninitialized_fill_n(__pos, __n, __x);
- this->_M_finish += __n;
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_fill_insert_aux (iterator __pos, size_type __n,
- const _Tp& __x, const __false_type& /*_Movable*/) {
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- //Here self referencing needs to be checked even for non movable types.
- if (_M_is_inside(__x)) {
- _Tp __x_copy = __x;
- _M_fill_insert_aux(__pos, __n, __x_copy, __false_type());
- return;
- }
- const size_type __elems_after = this->_M_finish - __pos;
- pointer __old_finish = this->_M_finish;
- if (__elems_after > __n) {
- _STLP_PRIV __ucopy_ptrs(this->_M_finish - __n, this->_M_finish, this->_M_finish, _TrivialUCopy());
- this->_M_finish += __n;
- _STLP_PRIV __copy_backward_ptrs(__pos, __old_finish - __n, __old_finish, _TrivialCopy());
- _STLP_STD::fill(__pos, __pos + __n, __x);
- } else {
- this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_finish, __n - __elems_after, __x);
- _STLP_PRIV __ucopy_ptrs(__pos, __old_finish, this->_M_finish, _TrivialUCopy());
- this->_M_finish += __elems_after;
- _STLP_STD::fill(__pos, __old_finish, __x);
- }
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_fill_insert(iterator __pos,
- size_type __n, const _Tp& __x) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- if (__n != 0) {
- if (size_type(this->_M_end_of_storage._M_data - this->_M_finish) >= __n) {
- _M_fill_insert_aux(__pos, __n, __x, _Movable());
- } else {
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- _M_insert_overflow(__pos, __x, _TrivialCopy(), __n);
- }
- }
-}
-
-template <class _Tp, class _Alloc>
-vector<_Tp, _Alloc>& vector<_Tp, _Alloc>::operator = (const vector<_Tp, _Alloc>& __x) {
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
- if (&__x != this) {
- const size_type __xlen = __x.size();
- if (__xlen > capacity()) {
- size_type __len = __xlen;
- pointer __tmp = _M_allocate_and_copy(__len, __CONST_CAST(const_pointer, __x._M_start) + 0,
- __CONST_CAST(const_pointer, __x._M_finish) + 0);
- _M_clear();
- this->_M_start = __tmp;
- this->_M_end_of_storage._M_data = this->_M_start + __len;
- } else if (size() >= __xlen) {
- pointer __i = _STLP_PRIV __copy_ptrs(__CONST_CAST(const_pointer, __x._M_start) + 0,
- __CONST_CAST(const_pointer, __x._M_finish) + 0, this->_M_start, _TrivialCopy());
- _STLP_STD::_Destroy_Range(__i, this->_M_finish);
- } else {
- _STLP_PRIV __copy_ptrs(__CONST_CAST(const_pointer, __x._M_start),
- __CONST_CAST(const_pointer, __x._M_start) + size(), this->_M_start, _TrivialCopy());
- _STLP_PRIV __ucopy_ptrs(__CONST_CAST(const_pointer, __x._M_start) + size(),
- __CONST_CAST(const_pointer, __x._M_finish) + 0, this->_M_finish, _TrivialUCopy());
- }
- this->_M_finish = this->_M_start + __xlen;
- }
- return *this;
-}
-
-template <class _Tp, class _Alloc>
-void vector<_Tp, _Alloc>::_M_fill_assign(size_t __n, const _Tp& __val) {
- if (__n > capacity()) {
- vector<_Tp, _Alloc> __tmp(__n, __val, get_allocator());
- __tmp.swap(*this);
- } else if (__n > size()) {
- fill(begin(), end(), __val);
- this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_finish, __n - size(), __val);
- } else
- erase(_STLP_PRIV __fill_n(begin(), __n, __val), end());
-}
-
-template <class _Tp, class _Alloc>
-__iterator__
-vector<_Tp, _Alloc>::insert(iterator __pos, const _Tp& __x) {
- size_type __n = __pos - begin();
- _M_fill_insert(__pos, 1, __x);
- return begin() + __n;
-}
-
-#undef __iterator__
-
-#if defined (vector)
-# undef vector
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_VECTOR_C */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/_vector.h b/stlport/stlport/stl/_vector.h
deleted file mode 100644
index ed243ef..0000000
--- a/stlport/stlport/stl/_vector.h
+++ /dev/null
@@ -1,773 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* NOTE: This is an internal header file, included by other STL headers.
- * You should not attempt to use it directly.
- */
-
-#ifndef _STLP_INTERNAL_VECTOR_H
-#define _STLP_INTERNAL_VECTOR_H
-
-#ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ALLOC_H
-# include <stl/_alloc.h>
-#endif
-
-#ifndef _STLP_INTERNAL_ITERATOR_H
-# include <stl/_iterator.h>
-#endif
-
-#ifndef _STLP_INTERNAL_UNINITIALIZED_H
-# include <stl/_uninitialized.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-// The vector base class serves one purpose, its constructor and
-// destructor allocate (but don't initialize) storage. This makes
-// exception safety easier.
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-template <class _Tp, class _Alloc>
-class _Vector_base {
-public:
- typedef _Vector_base<_Tp, _Alloc> _Self;
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef _Alloc allocator_type;
- typedef _Tp* pointer;
- typedef _STLP_alloc_proxy<pointer, _Tp, allocator_type> _AllocProxy;
-
- _Vector_base(const _Alloc& __a)
- : _M_start(0), _M_finish(0), _M_end_of_storage(__a, 0) {}
-
- _Vector_base(size_t __n, const _Alloc& __a)
- : _M_start(0), _M_finish(0), _M_end_of_storage(__a, 0) {
- _M_start = _M_end_of_storage.allocate(__n, __n);
- _M_finish = _M_start;
- _M_end_of_storage._M_data = _M_start + __n;
- _STLP_MPWFIX_TRY _STLP_MPWFIX_CATCH
- }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- _Vector_base(__move_source<_Self> src)
- : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish),
- _M_end_of_storage(__move_source<_AllocProxy>(src.get()._M_end_of_storage)) {
- //Set the source as empty:
- src.get()._M_finish = src.get()._M_end_of_storage._M_data = src.get()._M_start = 0;
- }
-#endif
-
- ~_Vector_base() {
- if (_M_start != _STLP_DEFAULT_CONSTRUCTED(pointer))
- _M_end_of_storage.deallocate(_M_start, _M_end_of_storage._M_data - _M_start);
- }
-
-protected:
- void _STLP_FUNCTION_THROWS _M_throw_length_error() const;
- void _STLP_FUNCTION_THROWS _M_throw_out_of_range() const;
-
- pointer _M_start;
- pointer _M_finish;
- _AllocProxy _M_end_of_storage;
-};
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define vector _STLP_PTR_IMPL_NAME(vector)
-#elif defined (_STLP_DEBUG)
-# define vector _STLP_NON_DBG_NAME(vector)
-#else
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-template <class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
-class vector : protected _STLP_PRIV _Vector_base<_Tp, _Alloc>
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (vector)
- , public __stlport_class<vector<_Tp, _Alloc> >
-#endif
-{
-private:
- typedef _STLP_PRIV _Vector_base<_Tp, _Alloc> _Base;
- typedef vector<_Tp, _Alloc> _Self;
-public:
- _STLP_FORCE_ALLOCATORS(_Tp, _Alloc)
- typedef typename _Base::allocator_type allocator_type;
-
- typedef _Tp value_type;
- typedef value_type* pointer;
- typedef const value_type* const_pointer;
- typedef value_type* iterator;
- typedef const value_type* const_iterator;
-
- typedef value_type& reference;
- typedef const value_type& const_reference;
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef random_access_iterator_tag _Iterator_category;
-
- _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS;
-
- allocator_type get_allocator() const
- { return _STLP_CONVERT_ALLOCATOR((const allocator_type&)this->_M_end_of_storage, _Tp); }
-
-private:
-#if defined (_STLP_NO_MOVE_SEMANTIC)
- typedef __false_type _Movable;
-#endif
-
- // handles insertions on overflow
- void _M_insert_overflow_aux(pointer __pos, const _Tp& __x, const __false_type& /*_Movable*/,
- size_type __fill_len, bool __atend);
- void _M_insert_overflow_aux(pointer __pos, const _Tp& __x, const __true_type& /*_Movable*/,
- size_type __fill_len, bool __atend) {
- //We need to take care of self referencing here:
- if (_M_is_inside(__x)) {
- value_type __x_copy = __x;
- _M_insert_overflow_aux(__pos, __x_copy, __false_type(), __fill_len, __atend);
- return;
- }
- _M_insert_overflow_aux(__pos, __x, __false_type(), __fill_len, __atend);
- }
-
- void _M_insert_overflow(pointer __pos, const _Tp& __x, const __false_type& /*_TrivialCopy*/,
- size_type __fill_len, bool __atend = false) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- _M_insert_overflow_aux(__pos, __x, _Movable(), __fill_len, __atend);
- }
- void _M_insert_overflow(pointer __pos, const _Tp& __x, const __true_type& /*_TrivialCopy*/,
- size_type __fill_len, bool __atend = false);
- void _M_range_check(size_type __n) const {
- if (__n >= size_type(this->_M_finish - this->_M_start))
- this->_M_throw_out_of_range();
- }
-
- size_type _M_compute_next_size(size_type __n) {
- const size_type __size = size();
- if (__n > max_size() - __size)
- this->_M_throw_length_error();
- size_type __len = __size + (max)(__n, __size);
- if (__len > max_size() || __len < __size)
- __len = max_size(); // overflow
- return __len;
- }
-
-public:
- iterator begin() { return this->_M_start; }
- const_iterator begin() const { return this->_M_start; }
- iterator end() { return this->_M_finish; }
- const_iterator end() const { return this->_M_finish; }
-
- reverse_iterator rbegin() { return reverse_iterator(end()); }
- const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
- reverse_iterator rend() { return reverse_iterator(begin()); }
- const_reverse_iterator rend() const { return const_reverse_iterator(begin()); }
-
- size_type size() const { return size_type(this->_M_finish - this->_M_start); }
- size_type max_size() const {
- size_type __vector_max_size = size_type(-1) / sizeof(_Tp);
- typename allocator_type::size_type __alloc_max_size = this->_M_end_of_storage.max_size();
- return (__alloc_max_size < __vector_max_size)?__alloc_max_size:__vector_max_size;
- }
-
- size_type capacity() const { return size_type(this->_M_end_of_storage._M_data - this->_M_start); }
- bool empty() const { return this->_M_start == this->_M_finish; }
-
- reference operator[](size_type __n) { return *(begin() + __n); }
- const_reference operator[](size_type __n) const { return *(begin() + __n); }
-
- reference front() { return *begin(); }
- const_reference front() const { return *begin(); }
- reference back() { return *(end() - 1); }
- const_reference back() const { return *(end() - 1); }
-
- reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; }
- const_reference at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- explicit vector(const allocator_type& __a = allocator_type())
-#else
- vector()
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(allocator_type()) {}
- vector(const allocator_type& __a)
-#endif
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__a) {}
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
-private:
- //We always call _M_initialize with only 1 parameter. Default parameter
- //is used to allow explicit instanciation of vector with types with no
- //default constructor.
- void _M_initialize(size_type __n, const _Tp& __val = _STLP_DEFAULT_CONSTRUCTED(_Tp))
- { this->_M_finish = _STLP_PRIV __uninitialized_init(this->_M_start, __n, __val); }
-public:
- explicit vector(size_type __n)
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, allocator_type())
- { _M_initialize(__n); }
- vector(size_type __n, const _Tp& __val, const allocator_type& __a = allocator_type())
-#else
- explicit vector(size_type __n)
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, allocator_type())
- { this->_M_finish = _STLP_PRIV __uninitialized_init(this->_M_start, __n, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
- vector(size_type __n, const _Tp& __val)
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, allocator_type())
- { this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_start, __n, __val); }
- vector(size_type __n, const _Tp& __val, const allocator_type& __a)
-#endif
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, __a)
- { this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_start, __n, __val); }
-
- vector(const _Self& __x)
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__x.size(), __x.get_allocator()) {
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
- this->_M_finish = _STLP_PRIV __ucopy_ptrs(__x.begin(), __x.end(), this->_M_start, _TrivialUCopy());
- }
-
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- vector(__move_source<_Self> src)
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__move_source<_Base>(src.get()))
- {}
-#endif
-
-#if defined (_STLP_MEMBER_TEMPLATES)
-private:
- template <class _Integer>
- void _M_initialize_aux(_Integer __n, _Integer __val,
- const __true_type& /*_IsIntegral*/) {
- size_type __real_n = __n;
- this->_M_start = this->_M_end_of_storage.allocate(__n, __real_n);
- this->_M_end_of_storage._M_data = this->_M_start + __real_n;
- this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_start, __n, __val);
- }
-
- template <class _InputIterator>
- void _M_initialize_aux(_InputIterator __first, _InputIterator __last,
- const __false_type& /*_IsIntegral*/)
- { _M_range_initialize(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); }
-
-public:
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- vector(_InputIterator __first, _InputIterator __last,
- const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL )
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__a) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_aux(__first, __last, _Integral());
- }
-
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
- template <class _InputIterator>
- vector(_InputIterator __first, _InputIterator __last)
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(allocator_type()) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_initialize_aux(__first, __last, _Integral());
- }
-# endif /* _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS */
-
-#else /* _STLP_MEMBER_TEMPLATES */
- vector(const _Tp* __first, const _Tp* __last,
- const allocator_type& __a = allocator_type())
- : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__last - __first, __a) {
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
- this->_M_finish = _STLP_PRIV __ucopy_ptrs(__first, __last, this->_M_start, _TrivialUCopy());
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-
- //As the vector container is a back insert oriented container it
- //seems rather logical to destroy elements in reverse order.
- ~vector() { _STLP_STD::_Destroy_Range(rbegin(), rend()); }
-
- _Self& operator=(const _Self& __x);
-
- void reserve(size_type __n);
-
- // assign(), a generalized assignment member function. Two
- // versions: one that takes a count, and one that takes a range.
- // The range version is a member template, so we dispatch on whether
- // or not the type is an integer.
-
- void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); }
- void _M_fill_assign(size_type __n, const _Tp& __val);
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _ForwardIter>
- void _M_assign_aux(_ForwardIter __first, _ForwardIter __last, const forward_iterator_tag &) {
-#else
- void assign(const_iterator __first, const_iterator __last) {
- typedef const_iterator _ForwardIter;
-#endif
- const size_type __len = _STLP_STD::distance(__first, __last);
- if (__len > capacity()) {
- size_type __n = __len;
- iterator __tmp = _M_allocate_and_copy(__n, __first, __last);
- _M_clear();
- _M_set(__tmp, __tmp + __len, __tmp + __n);
- }
- else if (size() >= __len) {
- iterator __new_finish = copy(__first, __last, this->_M_start);
- _STLP_STD::_Destroy_Range(__new_finish, this->_M_finish);
- this->_M_finish = __new_finish;
- }
- else {
- _ForwardIter __mid = __first;
- _STLP_STD::advance(__mid, size());
- _STLP_STD::copy(__first, __mid, this->_M_start);
- this->_M_finish = _STLP_STD::uninitialized_copy(__mid, __last, this->_M_finish);
- }
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIter>
- void _M_assign_aux(_InputIter __first, _InputIter __last,
- const input_iterator_tag &) {
- iterator __cur = begin();
- for ( ; __first != __last && __cur != end(); ++__cur, ++__first)
- *__cur = *__first;
- if (__first == __last)
- erase(__cur, end());
- else
- insert(end(), __first, __last);
- }
-
- template <class _Integer>
- void _M_assign_dispatch(_Integer __n, _Integer __val,
- const __true_type& /*_IsIntegral*/)
- { _M_fill_assign(__n, __val); }
-
- template <class _InputIter>
- void _M_assign_dispatch(_InputIter __first, _InputIter __last,
- const __false_type& /*_IsIntegral*/)
- { _M_assign_aux(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); }
-
- template <class _InputIterator>
- void assign(_InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_assign_dispatch(__first, __last, _Integral());
- }
-#endif
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS)
- void push_back(const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
-#else
- void push_back(const _Tp& __x) {
-#endif
- if (this->_M_finish != this->_M_end_of_storage._M_data) {
- _Copy_Construct(this->_M_finish, __x);
- ++this->_M_finish;
- }
- else {
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- _M_insert_overflow(this->_M_finish, __x, _TrivialCopy(), 1, true);
- }
- }
-
-#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS)
- iterator insert(iterator __pos, const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp));
-#else
- iterator insert(iterator __pos, const _Tp& __x);
-#endif
-
-#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS)
- void push_back() { push_back(_STLP_DEFAULT_CONSTRUCTED(_Tp)); }
- iterator insert(iterator __pos) { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
-#endif
-
- void swap(_Self& __x) {
- _STLP_STD::swap(this->_M_start, __x._M_start);
- _STLP_STD::swap(this->_M_finish, __x._M_finish);
- this->_M_end_of_storage.swap(__x._M_end_of_storage);
- }
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
- void _M_swap_workaround(_Self& __x) { swap(__x); }
-#endif
-
-private:
- void _M_fill_insert_aux (iterator __pos, size_type __n, const _Tp& __x, const __true_type& /*_Movable*/);
- void _M_fill_insert_aux (iterator __pos, size_type __n, const _Tp& __x, const __false_type& /*_Movable*/);
- void _M_fill_insert (iterator __pos, size_type __n, const _Tp& __x);
-
- bool _M_is_inside(const value_type& __x) const {
- return (&__x >= this->_M_start && &__x < this->_M_finish);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _ForwardIterator>
- void _M_range_insert_realloc(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
-#else
- void _M_range_insert_realloc(iterator __pos,
- const_iterator __first, const_iterator __last,
-#endif
- size_type __n) {
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- size_type __len = _M_compute_next_size(__n);
- pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
- pointer __new_finish = __new_start;
- _STLP_TRY {
- __new_finish = _STLP_PRIV __uninitialized_move(this->_M_start, __pos, __new_start, _TrivialUCopy(), _Movable());
- __new_finish = uninitialized_copy(__first, __last, __new_finish);
- __new_finish = _STLP_PRIV __uninitialized_move(__pos, this->_M_finish, __new_finish, _TrivialUCopy(), _Movable());
- }
- _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish),
- this->_M_end_of_storage.deallocate(__new_start,__len)))
- _M_clear_after_move();
- _M_set(__new_start, __new_finish, __new_start + __len);
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _ForwardIterator>
- void _M_range_insert_aux(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
-#else
- void _M_range_insert_aux(iterator __pos,
- const_iterator __first, const_iterator __last,
-#endif
- size_type __n, const __true_type& /*_Movable*/) {
- iterator __src = this->_M_finish - 1;
- iterator __dst = __src + __n;
- for (; __src >= __pos; --__dst, --__src) {
- _STLP_STD::_Move_Construct(__dst, *__src);
- _STLP_STD::_Destroy_Moved(__src);
- }
- uninitialized_copy(__first, __last, __pos);
- this->_M_finish += __n;
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _ForwardIterator>
- void _M_range_insert_aux(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
-#else
- void _M_range_insert_aux(iterator __pos,
- const_iterator __first, const_iterator __last,
-#endif
- size_type __n, const __false_type& /*_Movable*/) {
- typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy;
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- const size_type __elems_after = this->_M_finish - __pos;
- pointer __old_finish = this->_M_finish;
- if (__elems_after > __n) {
- _STLP_PRIV __ucopy_ptrs(this->_M_finish - __n, this->_M_finish, this->_M_finish, _TrivialUCopy());
- this->_M_finish += __n;
- _STLP_PRIV __copy_backward_ptrs(__pos, __old_finish - __n, __old_finish, _TrivialCopy());
- copy(__first, __last, __pos);
- }
- else {
-#if defined ( _STLP_MEMBER_TEMPLATES )
- _ForwardIterator __mid = __first;
- _STLP_STD::advance(__mid, __elems_after);
-#else
- const_pointer __mid = __first + __elems_after;
-#endif
- uninitialized_copy(__mid, __last, this->_M_finish);
- this->_M_finish += __n - __elems_after;
- _STLP_PRIV __ucopy_ptrs(__pos, __old_finish, this->_M_finish, _TrivialUCopy());
- this->_M_finish += __elems_after;
- copy(__first, __mid, __pos);
- } /* elems_after */
- }
-
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _Integer>
- void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val,
- const __true_type&)
- { _M_fill_insert(__pos, (size_type) __n, (_Tp) __val); }
-
- template <class _InputIterator>
- void _M_insert_dispatch(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- const __false_type&)
- { _M_range_insert(__pos, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); }
-
-public:
- // Check whether it's an integral type. If so, it's not an iterator.
- template <class _InputIterator>
- void insert(iterator __pos, _InputIterator __first, _InputIterator __last) {
- typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
- _M_insert_dispatch(__pos, __first, __last, _Integral());
- }
-
-private:
- template <class _InputIterator>
- void _M_range_insert(iterator __pos,
- _InputIterator __first, _InputIterator __last,
- const input_iterator_tag &) {
- for ( ; __first != __last; ++__first) {
- __pos = insert(__pos, *__first);
- ++__pos;
- }
- }
-
- template <class _ForwardIterator>
- void _M_range_insert(iterator __pos,
- _ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
-#else
-public:
- void insert(iterator __pos,
- const_iterator __first, const_iterator __last) {
-#endif
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- /* This method do not check self referencing.
- * Standard forbids it, checked by the debug mode.
- */
- if (__first != __last) {
- size_type __n = _STLP_STD::distance(__first, __last);
-
- if (size_type(this->_M_end_of_storage._M_data - this->_M_finish) >= __n) {
- _M_range_insert_aux(__pos, __first, __last, __n, _Movable());
- }
- else {
- _M_range_insert_realloc(__pos, __first, __last, __n);
- }
- }
- }
-
-public:
- void insert (iterator __pos, size_type __n, const _Tp& __x)
- { _M_fill_insert(__pos, __n, __x); }
-
- void pop_back() {
- --this->_M_finish;
- _STLP_STD::_Destroy(this->_M_finish);
- }
-
-private:
- iterator _M_erase(iterator __pos, const __true_type& /*_Movable*/) {
- _STLP_STD::_Destroy(__pos);
- iterator __dst = __pos, __src = __dst + 1;
- iterator __end = end();
- for (; __src != __end; ++__dst, ++__src) {
- _STLP_STD::_Move_Construct(__dst, *__src);
- _STLP_STD::_Destroy_Moved(__src);
- }
- this->_M_finish = __dst;
- return __pos;
- }
- iterator _M_erase(iterator __pos, const __false_type& /*_Movable*/) {
- if (__pos + 1 != end()) {
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- _STLP_PRIV __copy_ptrs(__pos + 1, this->_M_finish, __pos, _TrivialCopy());
- }
- --this->_M_finish;
- _STLP_STD::_Destroy(this->_M_finish);
- return __pos;
- }
- iterator _M_erase(iterator __first, iterator __last, const __true_type& /*_Movable*/) {
- iterator __dst = __first, __src = __last;
- iterator __end = end();
- for (; __dst != __last && __src != __end; ++__dst, ++__src) {
- _STLP_STD::_Destroy(__dst);
- _STLP_STD::_Move_Construct(__dst, *__src);
- }
- if (__dst != __last) {
- //There is more elements to erase than element to move:
- _STLP_STD::_Destroy_Range(__dst, __last);
- _STLP_STD::_Destroy_Moved_Range(__last, __end);
- }
- else {
- //There is more element to move than element to erase:
- for (; __src != __end; ++__dst, ++__src) {
- _STLP_STD::_Destroy_Moved(__dst);
- _STLP_STD::_Move_Construct(__dst, *__src);
- }
- _STLP_STD::_Destroy_Moved_Range(__dst, __end);
- }
- this->_M_finish = __dst;
- return __first;
- }
- iterator _M_erase(iterator __first, iterator __last, const __false_type& /*_Movable*/) {
- typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy;
- pointer __i = _STLP_PRIV __copy_ptrs(__last, this->_M_finish, __first, _TrivialCopy());
- _STLP_STD::_Destroy_Range(__i, this->_M_finish);
- this->_M_finish = __i;
- return __first;
- }
-
-public:
- iterator erase(iterator __pos) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- return _M_erase(__pos, _Movable());
- }
- iterator erase(iterator __first, iterator __last) {
-#if !defined (_STLP_NO_MOVE_SEMANTIC)
- typedef typename __move_traits<_Tp>::implemented _Movable;
-#endif
- if (__first == __last)
- return __first;
- return _M_erase(__first, __last, _Movable());
- }
-
-#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type __new_size, const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
-#else
- void resize(size_type __new_size, const _Tp& __x) {
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
- if (__new_size < size())
- erase(begin() + __new_size, end());
- else
- insert(end(), __new_size - size(), __x);
- }
-
-#if defined (_STLP_DONT_SUP_DFLT_PARAM)
- void resize(size_type __new_size) { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); }
-#endif /*_STLP_DONT_SUP_DFLT_PARAM*/
-
- void clear() {
- erase(begin(), end());
- }
-
-private:
- void _M_clear() {
- _STLP_STD::_Destroy_Range(rbegin(), rend());
- this->_M_end_of_storage.deallocate(this->_M_start, this->_M_end_of_storage._M_data - this->_M_start);
- }
-
- void _M_clear_after_move() {
- _STLP_STD::_Destroy_Moved_Range(rbegin(), rend());
- this->_M_end_of_storage.deallocate(this->_M_start, this->_M_end_of_storage._M_data - this->_M_start);
- }
-
- void _M_set(pointer __s, pointer __f, pointer __e) {
- this->_M_start = __s;
- this->_M_finish = __f;
- this->_M_end_of_storage._M_data = __e;
- }
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _ForwardIterator>
- pointer _M_allocate_and_copy(size_type& __n,
- _ForwardIterator __first, _ForwardIterator __last)
-#else /* _STLP_MEMBER_TEMPLATES */
- pointer _M_allocate_and_copy(size_type& __n,
- const_pointer __first, const_pointer __last)
-#endif /* _STLP_MEMBER_TEMPLATES */
- {
- pointer __result = this->_M_end_of_storage.allocate(__n, __n);
- _STLP_TRY {
- uninitialized_copy(__first, __last, __result);
- return __result;
- }
- _STLP_UNWIND(this->_M_end_of_storage.deallocate(__result, __n))
- _STLP_RET_AFTER_THROW(__result)
- }
-
-
-#if defined (_STLP_MEMBER_TEMPLATES)
- template <class _InputIterator>
- void _M_range_initialize(_InputIterator __first, _InputIterator __last,
- const input_iterator_tag &) {
- for ( ; __first != __last; ++__first)
- push_back(*__first);
- }
- // This function is only called by the constructor.
- template <class _ForwardIterator>
- void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
- const forward_iterator_tag &) {
- size_type __n = _STLP_STD::distance(__first, __last);
- this->_M_start = this->_M_end_of_storage.allocate(__n, __n);
- this->_M_end_of_storage._M_data = this->_M_start + __n;
- this->_M_finish = uninitialized_copy(__first, __last, this->_M_start);
- }
-#endif /* _STLP_MEMBER_TEMPLATES */
-};
-
-#if defined (vector)
-# undef vector
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-_STLP_END_NAMESPACE
-
-#if !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/_vector.c>
-#endif
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# include <stl/pointers/_vector.h>
-#endif
-
-//We define the bool specialization before the debug interfave
-//to benefit of the debug version of vector even for the bool
-//specialization.
-#if !defined (_STLP_NO_BOOL) || !defined (_STLP_NO_EXTENSIONS)
-# if !defined (_STLP_INTERNAL_BVECTOR_H)
-# include <stl/_bvector.h>
-# endif
-#endif
-
-#if defined (_STLP_DEBUG)
-# include <stl/debug/_vector.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-#if !defined (_STLP_NO_BOOL) && !defined (_STLP_NO_EXTENSIONS)
-// This typedef is non-standard. It is provided for backward compatibility.
-typedef vector<bool, allocator<bool> > bit_vector;
-#endif
-
-#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc>
-#define _STLP_TEMPLATE_CONTAINER vector<_Tp, _Alloc>
-#include <stl/_relops_cont.h>
-#undef _STLP_TEMPLATE_CONTAINER
-#undef _STLP_TEMPLATE_HEADER
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if !defined (_STLP_NO_MOVE_SEMANTIC)
-template <class _Tp, class _Alloc>
-struct __move_traits<vector<_Tp, _Alloc> > {
- typedef __true_type implemented;
- typedef typename __move_traits<_Alloc>::complete complete;
-};
-# endif
-
-# if !defined (_STLP_DEBUG)
-template <class _Tp, class _Alloc>
-struct _DefaultZeroValue<vector<_Tp, _Alloc> >
-{ typedef typename __type_traits<_Alloc>::has_trivial_default_constructor _Ret; };
-# endif
-
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_VECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/char_traits.h b/stlport/stlport/stl/char_traits.h
deleted file mode 100644
index f004a70..0000000
--- a/stlport/stlport/stl/char_traits.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_CHAR_TRAITS_H
-#define _STLP_CHAR_TRAITS_H
-
-// Define char_traits
-
-#ifndef _STLP_INTERNAL_CSTDDEF
-# include <stl/_cstddef.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CSTRING
-# include <stl/_cstring.h>
-#endif
-
-#if defined (__unix)
-# include <sys/types.h> // For off_t
-#endif /* __unix */
-
-#if defined (__BORLANDC__)
-# include <mem.h>
-# include <string.h>
-# include <_stddef.h>
-# include <sys/types.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CONSTRUCT_H
-# include <stl/_construct.h>
-#endif
-
-#ifndef _STLP_INTERNAL_CWCHAR
-# include <stl/_cwchar.h>
-#endif
-
-_STLP_BEGIN_NAMESPACE
-
-template <class _Tp> class allocator;
-
-#define _STLP_NULL_CHAR_INIT(_ChT) _STLP_DEFAULT_CONSTRUCTED(_ChT)
-
-#if defined(_STLP_WCE)
-typedef long streamoff;
-#elif defined (_STLP_WIN32)
-# if defined (_STLP_LONG_LONG) && !defined (__CYGWIN__)
-//The Win32 file io API support 64 bits access so streamoff and streamsize
-//has to reflect that. Do not change the stringbuf behavior.
-typedef _STLP_LONG_LONG streamoff;
-# else
-typedef ptrdiff_t streamoff;
-# endif
-#else // __unix
-# ifdef _STLP_USE_DEFAULT_FILE_OFFSET
-typedef off_t streamoff;
-# elif defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE) /* || defined(__USE_FILE_OFFSET64) */ \
- /* || (defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)) */ /* || defined (__sgi) && defined (_STLP_HAS_NO_NEW_C_HEADERS) */
-typedef off64_t streamoff;
-# else
-typedef off_t streamoff;
-# endif
-#endif /* __unix */
-
-#if defined (_STLP_WIN32)
-typedef streamoff streamsize;
-#else
-typedef ptrdiff_t streamsize;
-#endif
-
-// Class fpos, which represents a position within a file. (The C++
-// standard calls for it to be defined in <ios>. This implementation
-// moves it to <iosfwd>, which is included by <ios>.)
-template <class _StateT> class fpos {
-public: // From table 88 of the C++ standard.
- fpos(streamoff __pos) : _M_pos(__pos), _M_st(_STLP_NULL_CHAR_INIT(_StateT)) {}
- fpos() : _M_pos(0), _M_st(_STLP_NULL_CHAR_INIT(_StateT)) {}
-
- operator streamoff() const { return _M_pos; }
-
- bool operator==(const fpos& __y) const
- { return _M_pos == __y._M_pos; }
- bool operator!=(const fpos& __y) const
- { return _M_pos != __y._M_pos; }
-
- fpos& operator+=(streamoff __off) {
- _M_pos += __off;
- return *this;
- }
- fpos& operator-=(streamoff __off) {
- _M_pos -= __off;
- return *this;
- }
-
- fpos operator+(streamoff __off) {
- fpos __tmp(*this);
- __tmp += __off;
- return __tmp;
- }
- fpos operator-(streamoff __off) {
- fpos __tmp(*this);
- __tmp -= __off;
- return __tmp;
- }
-
-public: // Manipulation of the state member.
- _StateT state() const { return _M_st; }
- void state(_StateT __st) { _M_st = __st; }
-private:
- streamoff _M_pos;
- _StateT _M_st;
-};
-
-typedef fpos<mbstate_t> streampos;
-typedef fpos<mbstate_t> wstreampos;
-
-// Class __char_traits_base.
-template <class _CharT, class _IntT>
-class __char_traits_base {
-public:
- typedef _CharT char_type;
- typedef _IntT int_type;
- typedef streamoff off_type;
- typedef streampos pos_type;
- typedef mbstate_t state_type;
-
- static void _STLP_CALL assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; }
- static bool _STLP_CALL eq(const char_type& __c1, const char_type& __c2)
- { return __c1 == __c2; }
- static bool _STLP_CALL lt(const char_type& __c1, const char_type& __c2)
- { return __c1 < __c2; }
-
- static int _STLP_CALL compare(const char_type* __s1, const char_type* __s2, size_t __n) {
- for (size_t __i = 0; __i < __n; ++__i)
- if (!eq(__s1[__i], __s2[__i]))
- return __s1[__i] < __s2[__i] ? -1 : 1;
- return 0;
- }
-
- static size_t _STLP_CALL length(const char_type* __s) {
- const char_type _NullChar = _STLP_DEFAULT_CONSTRUCTED(char_type);
- size_t __i(0);
- for (; !eq(__s[__i], _NullChar); ++__i) {}
- return __i;
- }
-
- static const char_type* _STLP_CALL find(const char_type* __s, size_t __n, const char_type& __c) {
- for ( ; __n > 0 ; ++__s, --__n)
- if (eq(*__s, __c))
- return __s;
- return 0;
- }
-
- static char_type* _STLP_CALL move(char_type* __s1, const char_type* __s2, size_t _Sz)
- { return (_Sz == 0 ? __s1 : (char_type*)memmove(__s1, __s2, _Sz * sizeof(char_type))); }
-
- static char_type* _STLP_CALL copy(char_type* __s1, const char_type* __s2, size_t __n) {
- return (__n == 0 ? __s1 :
- (char_type*)memcpy(__s1, __s2, __n * sizeof(char_type)));
- }
-
- static char_type* _STLP_CALL assign(char_type* __s, size_t __n, char_type __c) {
- for (size_t __i = 0; __i < __n; ++__i)
- __s[__i] = __c;
- return __s;
- }
-
- static int_type _STLP_CALL not_eof(const int_type& __c)
- { return !eq_int_type(__c, eof()) ? __c : __STATIC_CAST(int_type, 0); }
-
- static char_type _STLP_CALL to_char_type(const int_type& __c)
- { return (char_type)__c; }
-
- static int_type _STLP_CALL to_int_type(const char_type& __c)
- { return (int_type)__c; }
-
- static bool _STLP_CALL eq_int_type(const int_type& __c1, const int_type& __c2)
- { return __c1 == __c2; }
-
- static int_type _STLP_CALL eof()
- { return (int_type)-1; }
-};
-
-// Generic char_traits class. Note that this class is provided only
-// as a base for explicit specialization; it is unlikely to be useful
-// as is for any particular user-defined type. In particular, it
-// *will not work* for a non-POD type.
-
-template <class _CharT>
-class char_traits
- : public __char_traits_base<_CharT, _CharT> {};
-
-// Specialization for char.
-
-_STLP_TEMPLATE_NULL
-class _STLP_CLASS_DECLSPEC char_traits<char>
- : public __char_traits_base<char, int>,
- public __stlport_class<char_traits<char> > {
-public:
- typedef char char_type;
- typedef int int_type;
- typedef streamoff off_type;
- typedef streampos pos_type;
- typedef mbstate_t state_type;
-
- static char _STLP_CALL to_char_type(const int& __c)
- { return (char)(unsigned char)__c; }
-
- static int _STLP_CALL to_int_type(const char& __c)
- { return (unsigned char)__c; }
-
- static int _STLP_CALL compare(const char* __s1, const char* __s2, size_t __n)
- { return memcmp(__s1, __s2, __n); }
-
- static size_t _STLP_CALL length(const char* __s)
- { return strlen(__s); }
-
- static void _STLP_CALL assign(char& __c1, const char& __c2)
- { __c1 = __c2; }
-
- static char* _STLP_CALL assign(char* __s, size_t __n, char __c) {
- memset(__s, __c, __n);
- return __s;
- }
-};
-
-#if defined (_STLP_HAS_WCHAR_T)
-// Specialization for wchar_t.
-_STLP_TEMPLATE_NULL
-class _STLP_CLASS_DECLSPEC char_traits<wchar_t>
- : public __char_traits_base<wchar_t, wint_t> {
-# if !defined (_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined (_STLP_WCHAR_HPACC_EXCLUDE)
-public:
-# if !defined (__BORLANDC__)
- static wchar_t* _STLP_CALL move(wchar_t* __dest, const wchar_t* __src, size_t __n)
- { return wmemmove(__dest, __src, __n); }
-# endif
-
- static wchar_t* _STLP_CALL copy(wchar_t* __dest, const wchar_t* __src, size_t __n)
- { return wmemcpy(__dest, __src, __n); }
-
-# if !defined (__DMC__) && !defined (__BORLANDC__)
- static int _STLP_CALL compare(const wchar_t* __s1, const wchar_t* __s2, size_t __n)
- { return wmemcmp(__s1, __s2, __n); }
-# endif
-
- static wchar_t* _STLP_CALL assign(wchar_t* __s, size_t __n, wchar_t __c)
- { return wmemset(__s, __c, __n); }
-
- static size_t _STLP_CALL length(const wchar_t* __s)
- { return wcslen(__s); }
-
- static void _STLP_CALL assign(wchar_t& __c1, const wchar_t& __c2)
- { __c1 = __c2; }
-# endif
-};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_CHAR_TRAITS_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/config/_android.h b/stlport/stlport/stl/config/_android.h
deleted file mode 100755
index efb0261..0000000
--- a/stlport/stlport/stl/config/_android.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef __stl_config__android_h
-#define __stl_config__android_h
-
-/* Copyright (c) 2010, The Linux Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of The Linux Foundation nor
- * the names of its contributors may be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#define _STLP_PLATFORM "Android"
-
-// The Android C library is mostly glibc-like
-#define _STLP_USE_GLIBC 1
-
-// ...and Unix-like.
-#define _STLP_UNIX 1
-
-// Have pthreads support.
-#define _PTHREADS
-
-// Don't have native <cplusplus> headers
-#define _STLP_HAS_NO_NEW_C_HEADERS 1
-
-// Don't use wchar.h etc
-//#define _STLP_NO_WCHAR_T 1
-
-// Don't have (working) native wide character support.
-#define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
-
-// Don't use mbstate_t, define our own.
-//#define _STLP_NO_NATIVE_MBSTATE_T 1
-
-// No (proper) wide stream support in Android
-#define _STLP_NO_NATIVE_WIDE_STREAMS 1
-
-// C library is in the global namespace.
-#define _STLP_VENDOR_GLOBAL_CSTD 1
-
-// Don't have underlying local support.
-#undef _STLP_REAL_LOCALE_IMPLEMENTED
-
-// No pthread_spinlock_t in Android
-#define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
-
-// Little endian platform.
-#define _STLP_LITTLE_ENDIAN 1
-
-// No <exception> headers
-#define _STLP_NO_EXCEPTION_HEADER 1
-
-// No need to define our own namespace
-#define _STLP_NO_OWN_NAMESPACE 1
-
-// Need this to define STLport's own bad_alloc class (which won't be
-// thrown in any case)
-#define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
-
-// Use __new_alloc instead of __node_alloc, so we don't need static functions.
-#define _STLP_USE_SIMPLE_NODE_ALLOC 1
-
-// Don't use extern versions of range errors, so we don't need to
-// compile as a library.
-#define _STLP_USE_NO_EXTERN_RANGE_ERRORS 1
-
-// The system math library doesn't have long double variants, e.g
-// sinl, cosl, etc
-#define _STLP_NO_VENDOR_MATH_L 1
-
-// Define how to include our native headers.
-#define _STLP_NATIVE_HEADER(header) <libstdc++/include/header>
-#define _STLP_NATIVE_C_HEADER(header) <../include/header>
-#define _STLP_NATIVE_CPP_C_HEADER(header) <libstdc++/include/header>
-#define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <libstdc++/include/header>
-#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <libstdc++/include/header>
-
-#endif /* __stl_config__android_h */
diff --git a/stlport/stlport/stl/config/_auto_link.h b/stlport/stlport/stl/config/_auto_link.h
deleted file mode 100644
index 8898c55..0000000
--- a/stlport/stlport/stl/config/_auto_link.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* We do not use auto link feature when:
- * - user asked not to use it (_STLP_DONT_USE_AUTO_LINK)
- * - STLport is used only as a STL library (_STLP_NO_IOSTREAMS || _STLP_USE_NO_IOSTREAMS)
- * - we are building a C translation unit, STLport is a C++ Standard library implementation
- */
-#if !defined (__BUILDING_STLPORT) && !defined (_STLP_DONT_USE_AUTO_LINK) && \
- !defined (_STLP_NO_IOSTREAMS) && !defined (_STLP_USE_NO_IOSTREAMS) && \
- defined (__cplusplus)
-
-# define _STLP_STRINGIZE(X) _STLP_STRINGIZE_AUX(X)
-# define _STLP_STRINGIZE_AUX(X) #X
-
-# if defined (_STLP_DEBUG)
-# define _STLP_LIB_OPTIM_MODE "stld"
-# elif defined (_DEBUG)
-# define _STLP_LIB_OPTIM_MODE "d"
-# else
-# define _STLP_LIB_OPTIM_MODE ""
-# endif
-
-# if defined (_STLP_LIB_NAME_MOTIF)
-# define _STLP_LIB_MOTIF "_"_STLP_LIB_NAME_MOTIF
-# else
-# define _STLP_LIB_MOTIF ""
-# endif
-
-# if defined (_STLP_USE_DYNAMIC_LIB)
-# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
-# define _STLP_LIB_TYPE "_x"
-# else
-# define _STLP_LIB_TYPE ""
-# endif
-# else
-# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
-# define _STLP_LIB_TYPE "_statix"
-# else
-# define _STLP_LIB_TYPE "_static"
-# endif
-# endif
-
-# if defined (_STLP_USE_DYNAMIC_LIB)
-# define _STLP_VERSION_STR "."_STLP_STRINGIZE(_STLPORT_MAJOR)"."_STLP_STRINGIZE(_STLPORT_MINOR)
-# else
-# define _STLP_VERSION_STR ""
-# endif
-
-# define _STLP_STLPORT_LIB "stlport"_STLP_LIB_OPTIM_MODE""_STLP_LIB_TYPE""_STLP_LIB_MOTIF""_STLP_VERSION_STR".lib"
-
-# if defined (_STLP_VERBOSE)
-# pragma message ("STLport: Auto linking to "_STLP_STLPORT_LIB)
-# endif
-# pragma comment (lib, _STLP_STLPORT_LIB)
-
-# undef _STLP_STLPORT_LIB
-# undef _STLP_LIB_OPTIM_MODE
-# undef _STLP_LIB_TYPE
-# undef _STLP_STRINGIZE_AUX
-# undef _STLP_STRINGIZE
-
-#endif /* _STLP_DONT_USE_AUTO_LINK */
-
diff --git a/stlport/stlport/stl/config/_detect_dll_or_lib.h b/stlport/stlport/stl/config/_detect_dll_or_lib.h
deleted file mode 100644
index a062e69..0000000
--- a/stlport/stlport/stl/config/_detect_dll_or_lib.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* File used to define macros:
- * _STLP_USE_DYNAMIC_LIB: To signal use STLport as a dll or build of the
- * STLport dlls.
- * _STLP_USE_STATIC_LIB: To signal use of STLport as a static lib or build of
- * the STLport static libs.
- * _STLP_USING_CROSS_NATIVE_RUNTIME_LIB: Signal that we are using a native runtime
- * in a version different from the STLport one.
- * If _STLP_USE_DYNAMIC_LIB or _STLP_USE_STATIC_LIB is alreday defined it means that
- * user forces use of a specific version. In this case _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
- * will surely be defined otherwise there is no need to force macro defines.
- *
- * Before including this file the compiler must define:
- * _STLP_DLL: If we are building a dll
- * _STLP_RUNTIME_DLL: If we are using native runtime as a dll
- */
-#if defined (__BUILDING_STLPORT)
-# undef _STLP_USE_DYNAMIC_LIB
-# undef _STLP_USE_STATIC_LIB
-# if defined (_STLP_DLL)
-/* We are building the STLport dll */
-# define _STLP_USE_DYNAMIC_LIB
-# if !defined (_STLP_RUNTIME_DLL)
-# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
-# endif
-# else
-# define _STLP_USE_STATIC_LIB
-# if defined (_STLP_RUNTIME_DLL)
-# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
-# endif
-# endif
-#else
-# if !defined (_STLP_NO_IOSTREAMS)
-/* STLport use only depend on _STLP_RUNTIME_DLL as we are replacing
- * the native runtime.
- */
-# if defined (_STLP_RUNTIME_DLL)
-# if !defined (_STLP_USE_STATIC_LIB)
-# if !defined (_STLP_USE_DYNAMIC_LIB)
-# define _STLP_USE_DYNAMIC_LIB
-# endif
-# else
-/* The user is forcing use of STLport as a dynamic library. We signal it so
- * that the STLport namespace will be modify to report such a combination
- * and force the user to link with the rebuilt STLport library.
- */
-# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
-# endif
-# else
-# if !defined(_STLP_USE_DYNAMIC_LIB)
-# if !defined (_STLP_USE_STATIC_LIB)
-# define _STLP_USE_STATIC_LIB
-# endif
-# else
-/* Idem previous remark but the user forces use of the static native runtime.
- */
-# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
-# endif
-# endif
-# else
-/* If we do not build and use STLport libs we consider that we are in a static lib
- * mode as only dynamic lib needs additional export/import specifier.
- */
-# define _STLP_USE_STATIC_LIB
-# endif
-#endif
-
-/* we don't have a static native runtime library on evc3/evc4 */
-#ifdef _STLP_WCE
-# undef _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
-#endif
-
-#if !defined (_STLP_USE_DYNAMIC_LIB) && !defined (_STLP_USE_STATIC_LIB)
-# error Unknown STLport usage config (dll/lib?)
-#endif
diff --git a/stlport/stlport/stl/config/_epilog.h b/stlport/stlport/stl/config/_epilog.h
deleted file mode 100644
index 30d1e24..0000000
--- a/stlport/stlport/stl/config/_epilog.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#if defined (_STLP_MSVC) || defined (__ICL)
-
-# pragma warning (pop)
-# pragma pack (pop)
-
-#elif defined (__BORLANDC__)
-
-# pragma option pop
-# pragma option -w-pow // -w-8062 Previous options and warnings not restored
-
-#elif defined (__sgi) && !defined (__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
-
-# pragma reset woff 1174
-# pragma reset woff 1375
-# pragma reset woff 1209
-/* from iterator_base.h */
-# pragma reset woff 1183
-
-#elif defined (__DECCXX)
-
-# ifdef __PRAGMA_ENVIRONMENT
-# pragma __environment __restore
-# endif
-
-#elif defined (__IBMCPP__)
-
-# pragma info(restore)
-
-#endif
diff --git a/stlport/stlport/stl/config/_feedback.h b/stlport/stlport/stl/config/_feedback.h
deleted file mode 100644
index 0171ca5..0000000
--- a/stlport/stlport/stl/config/_feedback.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Helper header to give feedback about build environment configuration
- * thanks to #pragma message directives.
- */
-
-#if defined (_STLP_VERBOSE)
-# define _STLP_VERBOSE_MODE_SUPPORTED
-
-# if defined (_STLP_COMPILER)
-# pragma message (_STLP_COMPILER)
-# endif
-
-# if defined (_STLP_NO_RTTI)
-# pragma message ("STLport: RTTI support -> Disabled")
-# else
-# pragma message ("STLport: RTTI support -> Enabled")
-# endif
-
-# if defined (_STLP_HAS_NO_EXCEPTIONS)
-# pragma message ("STLport: Exception support -> Disabled")
-# else
-# pragma message ("STLport: Exception support -> Enabled")
-# endif
-
-# if defined (_STLP_THREADS)
-# pragma message ("STLport: Threading model -> Multi")
-# else
-# pragma message ("STLport: Threading model -> Mono")
-# endif
-
-# if defined (_STLP_USE_DYNAMIC_LIB)
-# pragma message ("STLport: Library model -> Dynamic")
-# else
-# pragma message ("STLport: Library model -> Static")
-# endif
-
-# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
-# if defined (_STLP_USE_DYNAMIC_LIB)
-# pragma message ("STLport: Native library model -> Static")
-# else
-# pragma message ("STLport: Native library model -> Dynamic")
-# endif
-# endif
-#endif
diff --git a/stlport/stlport/stl/config/_gcc.h b/stlport/stlport/stl/config/_gcc.h
deleted file mode 100644
index 0d41863..0000000
--- a/stlport/stlport/stl/config/_gcc.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/* STLport configuration file
- * It is internal STLport header - DO NOT include it directly
- */
-
-#define _STLP_COMPILER "gcc"
-
-#define _STLP_HAS_INCLUDE_NEXT 1
-
-#if (__GNUC__ < 2) || ((__GNUC__ < 3) && ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)))
-/* We do not support neither the unofficial 2.96 gcc version. */
-# error GNU compilers before 2.95 are not supported anymore.
-#endif
-
-/* Systems having GLIBC installed have different traits */
-#if defined (__linux__)
-# ifndef _STLP_USE_GLIBC
-# define _STLP_USE_GLIBC 1
-# endif
-# if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC)
-# define _STLP_USE_UCLIBC 1
-# endif
-#endif
-
-#if defined (__CYGWIN__) && \
- (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99)
-# define _STLP_NO_VENDOR_MATH_L
-# define _STLP_NO_VENDOR_STDLIB_L
-#endif
-
-#if (__GNUC__ < 3)
-# define _STLP_NO_VENDOR_STDLIB_L
-#endif
-
-#if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
-/* define for gcc versions before 3.4.0. */
-# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-#if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \
- (defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \
- (defined (__MINGW32__) && defined (_MT)))
-# define _REENTRANT
-#endif
-
-#if defined (__DJGPP)
-# define _STLP_RAND48 1
-# define _NOTHREADS 1
-# undef _PTHREADS
-# define _STLP_LITTLE_ENDIAN
-#endif
-
-#if defined (__MINGW32__)
-/* Mingw32, egcs compiler using the Microsoft C runtime */
-# if (__GNUC__ >= 3)
-/* For gcc before version 3 this macro is defined below */
-# define _STLP_VENDOR_GLOBAL_CSTD
-# endif
-# undef _STLP_NO_DRAND48
-# define _STLP_NO_DRAND48
-# define _STLP_CALL
-#endif /* __MINGW32__ */
-
-#if defined (__CYGWIN__) || defined (__MINGW32__)
-# if !defined (_STLP_USE_STATIC_LIB)
-# define _STLP_USE_DECLSPEC 1
-# if !defined (_STLP_USE_DYNAMIC_LIB)
-# define _STLP_USE_DYNAMIC_LIB
-# endif
-# define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
-# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
-# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
-# endif
-/* The following is defined independently of _STLP_USE_STATIC_LIB because it is also
- * used to import symbols from PSDK under MinGW
- */
-# define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
-#else
-# if (__GNUC__ >= 4)
-# if !defined (_STLP_USE_STATIC_LIB)
-# if !defined (_STLP_USE_DYNAMIC_LIB)
-# define _STLP_USE_DYNAMIC_LIB
-# endif
-# define _STLP_USE_DECLSPEC 1
-# define _STLP_EXPORT_DECLSPEC __attribute__((visibility("default")))
-# define _STLP_IMPORT_DECLSPEC __attribute__((visibility("default")))
-# define _STLP_CLASS_EXPORT_DECLSPEC __attribute__((visibility("default")))
-# define _STLP_CLASS_IMPORT_DECLSPEC __attribute__((visibility("default")))
-# endif
-# endif
-#endif
-
-#if defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__))
-# if !defined (__MINGW32__) && !defined (__CYGWIN__)
-# define _STLP_NO_NATIVE_MBSTATE_T 1
-# endif
-# if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4)
-# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
-# endif
-# define _STLP_NO_NATIVE_WIDE_STREAMS 1
-#endif
-
-#define _STLP_NORETURN_FUNCTION __attribute__((noreturn))
-
-/* Mac OS X is a little different with namespaces and cannot instantiate
- * static data members in template classes */
-#if defined (__APPLE__)
-# if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)))
-/* Mac OS X is missing a required typedef and standard macro */
-typedef unsigned int wint_t;
-# endif
-
-# define __unix
-
-# define _STLP_NO_LONG_DOUBLE
-
-/* Mac OS X needs all "::" scope references to be "std::" */
-# define _STLP_USE_NEW_C_HEADERS
-
-# define _STLP_NO_VENDOR_STDLIB_L
-
-#endif /* __APPLE__ */
-
-/* g++ 2.7.x and above */
-#define _STLP_LONG_LONG long long
-
-#ifdef _STLP_USE_UCLIBC
- /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
-# define _STLP_NO_VENDOR_MATH_F
- /* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */
-# define _STLP_NO_VENDOR_MATH_L
-# define _STLP_NO_LONG_DOUBLE
-#endif
-
-#if defined (__OpenBSD__) || defined (__FreeBSD__)
-# define _STLP_NO_VENDOR_MATH_L
-# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
-# ifndef __unix
-# define __unix
-# endif
-#endif
-
-#if defined (__alpha__)
-# define _STLP_NO_VENDOR_MATH_L
-#endif
-
-#if defined (__hpux)
-# define _STLP_VENDOR_GLOBAL_CSTD 1
-# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */
- /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */
-# define _STLP_NO_VENDOR_MATH_F
-#endif
-
-#if (__GNUC__ >= 3)
-# ifndef _STLP_HAS_NO_NEW_C_HEADERS
-/*
-# ifndef _STLP_USE_UCLIBC
-*/
-# define _STLP_HAS_NATIVE_FLOAT_ABS
-/*
-# endif
-*/
-# else
-# ifdef _STLP_USE_GLIBC
-# define _STLP_VENDOR_LONG_DOUBLE_MATH 1
-# endif
-# endif
-#endif
-
-#if (__GNUC__ < 3)
-# define _STLP_HAS_NO_NEW_C_HEADERS 1
-# define _STLP_VENDOR_GLOBAL_CSTD 1
-# define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
-# ifndef __HONOR_STD
-# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
-# endif
-/* egcs fails to initialize builtin types in expr. like this : new(p) char(); */
-# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
-#endif
-
-#undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
-#undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
-
-/* strict ANSI prohibits "long long" ( gcc) */
-#if defined ( __STRICT_ANSI__ )
-# undef _STLP_LONG_LONG
-#endif
-
-#ifndef __EXCEPTIONS
-# undef _STLP_DONT_USE_EXCEPTIONS
-# define _STLP_DONT_USE_EXCEPTIONS 1
-#endif
-
-#if (__GNUC__ >= 3)
-/* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
- instantiation within library: nothing except increased library size. - ptr
- */
-# define _STLP_NO_FORCE_INSTANTIATE
-#endif
diff --git a/stlport/stlport/stl/config/_msvc.h b/stlport/stlport/stl/config/_msvc.h
deleted file mode 100644
index 418d018..0000000
--- a/stlport/stlport/stl/config/_msvc.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/* STLport configuration file
- * It is internal STLport header - DO NOT include it directly
- * Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0, ICL
- */
-
-#if !defined (_STLP_COMPILER)
-# define _STLP_COMPILER "Microsoft Visual Studio C++"
-#endif
-
-#if !defined (__ICL) && !defined (_STLP_MSVC)
-# define _STLP_MSVC _MSC_VER
-#endif
-
-#if !defined (_STLP_MSVC_LIB)
-# define _STLP_MSVC_LIB _MSC_VER
-#endif
-
-#if defined (__BUILDING_STLPORT) && defined (_MANAGED)
-/* Building a managed version of STLport is not supported because we haven't
- * found a good reason to support it. However, building a managed translation
- * unit using STLport _is_ supported.
- */
-# error Sorry but building a managed version of STLport is not supported.
-#endif
-
-#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
-/* This is a specific section for compilers coming with platform SDKs. Native
- * library coming with it is different from the one coming with commercial
- * MSVC compilers so there is some specific settings.
- */
-# define _STLP_NATIVE_INCLUDE_PATH ../crt
-# define _STLP_VENDOR_GLOBAL_CSTD
-# define _STLP_VENDOR_TERMINATE_STD
-# define _STLP_GLOBAL_NEW_HANDLER
-# if (_STLP_MSVC_LIB <= 1400)
-/* We hope this bug will be fixed in future versions. */
-# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
-# endif
-#endif
-
-#define _STLP_CALL __cdecl
-
-#ifndef _STLP_LONG_LONG
-# define _STLP_LONG_LONG __int64
-#endif
-
-#define _STLP_PRAGMA_ONCE
-
-/* These switches depend on compiler flags. We are hoping here that compilers
- * simulating MSVC behavior use identical macros to report compilation context.
- * Otherwise those macros will have to be undef in specific compiler configuration
- * files.
- */
-#ifndef _CPPUNWIND
-# define _STLP_DONT_USE_EXCEPTIONS 1
-#endif
-
-#ifndef _CPPRTTI
-# define _STLP_NO_RTTI 1
-#endif
-
-#if defined (_MT) && !defined (_STLP_NO_THREADS)
-# define _STLP_THREADS 1
-#endif
-
-#if !defined (_NATIVE_WCHAR_T_DEFINED)
-# define _STLP_WCHAR_T_IS_USHORT 1
-#endif
-
-#define _STLP_NO_VENDOR_STDLIB_L 1
-
-#if defined (_STLP_MSVC)
-
-# if (_STLP_MSVC < 1200)
-# error Microsoft Visual C++ compilers before version 6 (SP5) are not supported.
-# endif
-
-# define _STLP_NORETURN_FUNCTION __declspec(noreturn)
-
-/* Full compiler version comes from boost library intrinsics.hpp header. */
-# if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215)
-# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-# define _STLP_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
-# define _STLP_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
-# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-# define _STLP_IS_POD(T) __is_pod(T)
-# define _STLP_HAS_TYPE_TRAITS_INTRINSICS
-# endif
-
-# ifndef _STLP_MSVC50_COMPATIBILITY
-# define _STLP_MSVC50_COMPATIBILITY 1
-# endif
-
-# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
-# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1
-# define _STLP_NO_STATIC_CONST_DEFINITION 1
-
-/* # ifndef __BUILDING_STLPORT
- * # define _STLP_USE_TEMPLATE_EXPORT 1
- * # endif
- */
-
-/** Note: the macro _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT is defined
-unconditionally and undef'ed here when applicable. */
-# if defined (UNDER_CE)
-/* eVCx:
-uncaught_exception is declared in the SDKs delivered with eVC4 (eVC3 is
-unknown) and they all reside in namespace 'std' there. However, they are not
-part of any lib so linking fails. When using VC8 to crosscompile for CE 5 on
-an ARMV4I, the uncaught_exception test fails, the function returns the wrong
-value. */
-/* All eVCs up to at least VC8/CE5 have a broken new operator that
- returns null instead of throwing bad_alloc. */
-# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
-# else
-/* VCx:
-These are present at least since VC6, but the uncaught_exception() of VC6 is
-broken, it returns the wrong value in the unittests. 7.1 and later seem to
-work, 7.0 is still unknown (we assume it works until negative report). */
-# if (_STLP_MSVC >= 1300)// VC7 and later
-# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
-# endif
-# if (_STLP_MSVC < 1300)
-# define _STLP_NOTHROW
-# endif
-# endif
-
-# if (_STLP_MSVC <= 1300)
-# define _STLP_STATIC_CONST_INIT_BUG 1
-# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
-# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
-/* There is no partial spec, and MSVC breaks on simulating it for iterator_traits queries */
-# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
-# define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
-# define _STLP_NO_METHOD_SPECIALIZATION 1
-# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
-# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
-/* VC++ cannot handle default allocator argument in template constructors */
-# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
-# define _STLP_NO_QUALIFIED_FRIENDS 1
-# endif
-
-# if (_STLP_MSVC < 1300) /* including MSVC 6.0 */
-# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
-# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
-# endif
-
-# define _STLP_HAS_NATIVE_FLOAT_ABS 1
-
-// TODO: some eVC4 compilers report _MSC_VER 1201 or 1202, which category do they belong to?
-# if (_STLP_MSVC > 1200) && (_STLP_MSVC < 1310)
-# define _STLP_NO_MOVE_SEMANTIC
-# endif
-
-# if (_STLP_MSVC < 1300)
-/* TODO: remove this if it is handled and documented elsewhere
- * dums: VC6 do not handle correctly member templates of class that are explicitely
- * instanciated to be exported. There is a workaround, seperate the non template methods
- * from the template ones within 2 different classes and only export the non template one.
- * It is implemented for basic_string and locale at the writing of this note.
- * However this problem hos not been considered as important enough to remove template member
- * methods for other classes. Moreover Boost (www.boost.org) required it to be granted.
- * The workaround is activated thanks to the _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro defined
- * later in this config file.
- */
-/*
-# if defined (_DLL)
-# define _STLP_NO_MEMBER_TEMPLATES 1
-# endif
-*/
-
-/* Boris : not defining this macro for SP5 causes other problems */
-/*# if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 ) */
-# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
-/*# endif */
-# define _STLP_DONT_USE_BOOL_TYPEDEF 1
-# define _STLP_DONT_RETURN_VOID 1
-# endif
-
-# if (_STLP_MSVC < 1300) /* MSVC 6.0 and earlier */
-# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
-/* defined for DEBUG and NDEBUG too, to allow user mix own debug build with STLP release library */
-# define _STLP_USE_ABBREVS
-# endif
-
-#endif /* _STLP_MSVC */
-
-/* The desktop variants starting with VC8 have a set of more secure replacements
- * for the error-prone string handling functions of the C standard lib. */
-/* When user do not consider 'unsafe' string functions as deprecated using _CRT_SECURE_NO_DEPRECATE
- * macro we use 'unsafe' functions for performance reasons. */
-#if (_STLP_MSVC_LIB >= 1400) && !defined (_STLP_USING_PLATFORM_SDK_COMPILER) && !defined (UNDER_CE) && \
- !defined (_CRT_SECURE_NO_DEPRECATE)
-# define _STLP_USE_SAFE_STRING_FUNCTIONS 1
-#endif
-
-#if (_STLP_MSVC_LIB <= 1310)
-# define _STLP_VENDOR_GLOBAL_CSTD
-#endif
-
-#if (_STLP_MSVC_LIB >= 1300) && !defined(UNDER_CE)
-/* Starting with MSVC 7.0 and compilers simulating it,
- * we assume that the new SDK is granted:
- */
-# define _STLP_NEW_PLATFORM_SDK 1
-#endif
-
-#if (_STLP_MSVC_LIB < 1300) /* including MSVC 6.0 */
-# define _STLP_GLOBAL_NEW_HANDLER 1
-# define _STLP_VENDOR_UNEXPECTED_STD
-# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
-#endif
-
-#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
-#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
-#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
-#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
-
-#if defined (__DLL) || defined (_DLL) || defined (_RTLDLL) || defined (_AFXDLL)
-# define _STLP_RUNTIME_DLL
-#endif
-#if defined (__BUILDING_STLPORT) && \
- (defined (_STLP_USE_DYNAMIC_LIB) || \
- defined (_STLP_RUNTIME_DLL) && !defined (_STLP_USE_STATIC_LIB))
-# define _STLP_DLL
-#endif
-#include <stl/config/_detect_dll_or_lib.h>
-#undef _STLP_RUNTIME_DLL
-#undef _STLP_DLL
-
-#if defined (_STLP_USE_DYNAMIC_LIB)
-# undef _STLP_USE_DECLSPEC
-# define _STLP_USE_DECLSPEC 1
-# if defined (_STLP_MSVC) && (_STLP_MSVC < 1300)
-# define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 1
-# endif
-#endif
-
-#if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD)
-# if !defined (_MSC_EXTENSIONS) || defined (_STLP_MSVC) && (_STLP_MSVC >= 1300)
-# define _STLP_IMPORT_TEMPLATE_KEYWORD
-# else
-# define _STLP_IMPORT_TEMPLATE_KEYWORD extern
-# endif
-#endif
-#define _STLP_EXPORT_TEMPLATE_KEYWORD
-
-#include <stl/config/_auto_link.h>
-
-#if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
-/* The Windows 64 bits SDK required for the moment link to bufferoverflowU.lib for
- * additional buffer overrun checks. Rather than require the STLport build system and
- * users to explicitely link with it we use the MSVC auto link feature.
- */
-# if !defined (_STLP_DONT_USE_AUTO_LINK) || defined (__BUILDING_STLPORT)
-# pragma comment (lib, "bufferoverflowU.lib")
-# if defined (_STLP_VERBOSE)
-# pragma message ("STLport: Auto linking to bufferoverflowU.lib")
-# endif
-# endif
-#endif
-
-#if defined (_STLP_MSVC)
-# include <stl/config/_feedback.h>
-#endif
diff --git a/stlport/stlport/stl/config/_native_headers.h b/stlport/stlport/stl/config/_native_headers.h
deleted file mode 100644
index f1f4bc9..0000000
--- a/stlport/stlport/stl/config/_native_headers.h
+++ /dev/null
@@ -1,50 +0,0 @@
- /*
- *
- * Copyright (c) 2006
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_MAKE_HEADER)
-# define _STLP_MAKE_HEADER(path, header) <path/header>
-#endif
-
-#if !defined (_STLP_NATIVE_HEADER)
-# if !defined (_STLP_NATIVE_INCLUDE_PATH)
-# define _STLP_NATIVE_INCLUDE_PATH ../include
-# endif
-# define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header)
-#endif
-
-/* For some compilers, C headers like <stdio.h> are located in separate directory */
-#if !defined (_STLP_NATIVE_C_HEADER)
-# if !defined (_STLP_NATIVE_C_INCLUDE_PATH)
-# define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
-# endif
-# define _STLP_NATIVE_C_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_C_INCLUDE_PATH,header)
-#endif
-
-/* For some compilers, C-library headers like <cstdio> are located in separate directory */
-#if !defined (_STLP_NATIVE_CPP_C_HEADER)
-# if !defined (_STLP_NATIVE_CPP_C_INCLUDE_PATH)
-# define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
-# endif
-# define _STLP_NATIVE_CPP_C_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_CPP_C_INCLUDE_PATH,header)
-#endif
-
-/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */
-#if !defined ( _STLP_NATIVE_CPP_RUNTIME_HEADER )
-# if !defined (_STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH)
-# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
-# endif
-# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH,header)
-#endif
diff --git a/stlport/stlport/stl/config/_prolog.h b/stlport/stlport/stl/config/_prolog.h
deleted file mode 100644
index a16a794..0000000
--- a/stlport/stlport/stl/config/_prolog.h
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#if defined (_STLP_MSVC) || defined (__ICL)
-
-# pragma warning (push)
-# include <stl/config/_warnings_off.h>
-/* We are forcing the alignment to guaranty that libraries are use
- * with the same alignment as the one use to build them.
- */
-# if !defined (_WIN64)
-# pragma pack(push, 8)
-# else
-# pragma pack(push, 16)
-# endif
-
-#elif defined (__BORLANDC__)
-
-# pragma option push
-# pragma option -Vx- -Ve- -a8 -b -pc
-# include <stl/config/_warnings_off.h>
-
-#elif defined (__sgi) && !defined (__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
-
-# pragma set woff 1209
-# pragma set woff 1174
-# pragma set woff 1375
-/* from iterator_base.h */
-# pragma set woff 1183
-
-#elif defined (__DECCXX)
-
-# ifdef __PRAGMA_ENVIRONMENT
-# pragma __environment __save
-# pragma __environment __header_defaults
-# endif
-
-#elif defined (__IBMCPP__)
-/* supress EDC3130: A constant is being used as a conditional expression */
-# pragma info(nocnd)
-#elif defined (__WATCOMCPLUSPLUS__)
-# pragma warning 604 10 /* must lookahead to determine... */
-# pragma warning 594 10 /* resolved as declaration/type */
-# pragma warning 595 10 /* resolved as an expression */
-#endif
diff --git a/stlport/stlport/stl/config/_system.h b/stlport/stlport/stl/config/_system.h
deleted file mode 100755
index a48408f..0000000
--- a/stlport/stlport/stl/config/_system.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Copyright (c) 2010, The Linux Foundation. All rights reserved.
- */
-
-/*
- * Purpose of this file :
- *
- * To hold COMPILER-SPECIFIC portion of STLport settings.
- * In general, user should not edit this file unless
- * using the compiler not recognized below.
- *
- * If your compiler is not being recognized yet,
- * please look for definitions of macros in stl_mycomp.h,
- * copy stl_mycomp.h to stl_YOUR_COMPILER_NAME,
- * adjust flags for your compiler, and add <include config/stl_YOUR_COMPILER_NAME>
- * to the secton controlled by unique macro defined internaly by your compiler.
- *
- * To change user-definable settings, please edit <user_config.h>
- *
- */
-
-#ifndef __stl_config__system_h
-#define __stl_config__system_h
-
-#if defined (__sun)
-# include <stl/config/_solaris.h>
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# elif defined (__SUNPRO_CC) || defined (__SUNPRO_C)
-# include <stl/config/_sunprocc.h>
-/*
-# ifdef __KCC
-# include <stl/config/_kai.h>
-# endif
-*/
-# elif defined (__APOGEE__) /* Apogee 4.x */
-# include <stl/config/_apcc.h>
-# elif defined (__FCC_VERSION) /* Fujitsu Compiler, v4.0 assumed */
-# include <stl/config/_fujitsu.h>
-# endif
-#elif defined (__hpux)
-# include <stl/config/_hpux.h>
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# elif defined (__HP_aCC)
-# include <stl/config/_hpacc.h>
-# endif
-#elif defined (ANDROID)
-# include <stl/config/_android.h>
-# include <stl/config/_gcc.h>
-#elif defined (linux) || defined (__linux__)
-# include <stl/config/_linux.h>
-# if defined (__BORLANDC__)
-# include <stl/config/_bc.h> /* Borland C++ 0x570 */
-/* Intel's icc define __GNUC__! */
-# elif defined (__INTEL_COMPILER)
-# include <stl/config/_icc.h>
-# elif defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# endif
-/*
-# ifdef __KCC
-# include <stl/config/_kai.h>
-# endif
-*/
-#elif defined (__FreeBSD__)
-# include <stl/config/_freebsd.h>
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# endif
-#elif defined (__OpenBSD__)
-# include <stl/config/_openbsd.h>
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# endif
-#elif defined (__sgi) /* IRIX? */
-# define _STLP_PLATFORM "SGI Irix"
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# else
-# include <stl/config/_sgi.h>
-# endif
-#elif defined (__OS400__) /* AS/400 C++ */
-# define _STLP_PLATFORM "OS 400"
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# else
-# include <stl/config/_as400.h>
-# endif
-#elif defined (_AIX)
-# include <stl/config/_aix.h>
-# if defined (__xlC__) || defined (__IBMC__) || defined ( __IBMCPP__ )
- /* AIX xlC, Visual Age C++ , OS-390 C++ */
-# include <stl/config/_ibm.h>
-# endif
-#elif defined (_CRAY) /* Cray C++ 3.4 or 3.5 */
-# define _STLP_PLATFORM "Cray"
-# include <config/_cray.h>
-#elif defined (__DECCXX) || defined (__DECC)
-# define _STLP_PLATFORM "DECC"
-# ifdef __vms
-# include <stl/config/_dec_vms.h>
-# else
-# include <stl/config/_dec.h>
-# endif
-#elif defined (macintosh) || defined (_MAC)
-# include <stl/config/_mac.h>
-# if defined (__MWERKS__)
-# include <stl/config/_mwerks.h>
-# endif
-#elif defined (__APPLE__)
-# include <stl/config/_macosx.h>
-# ifdef __GNUC__
-# include <stl/config/_gcc.h>
-# endif
-#elif defined (__CYGWIN__)
-# include <stl/config/_cygwin.h>
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# endif
-#elif defined (__MINGW32__)
-# define _STLP_PLATFORM "MinGW"
-# if defined (__GNUC__)
-# include <stl/config/_gcc.h>
-# endif
-# include <stl/config/_windows.h>
-#elif defined (_WIN32) || defined (__WIN32) || defined (WIN32) || defined (__WIN32__) || \
- defined (__WIN16) || defined (WIN16) || defined (_WIN16)
-# if defined ( __BORLANDC__ ) /* Borland C++ / CodeGear C++ */
-# include <stl/config/_bc.h>
-# elif defined (__WATCOM_CPLUSPLUS__) || defined (__WATCOMC__) /* Watcom C++ */
-# include <stl/config/_watcom.h>
-# elif defined (__COMO__) || defined (__COMO_VERSION_)
-# include <stl/config/_como.h>
-# elif defined (__DMC__) /* Digital Mars C++ */
-# include <stl/config/_dm.h>
-# elif defined (__ICL) /* Intel reference compiler for Win */
-# include <stl/config/_intel.h>
-# elif defined (__MWERKS__)
-# include <stl/config/_mwerks.h>
-# elif defined (_MSC_VER) && (_MSC_VER >= 1200) && defined (UNDER_CE)
- /* Microsoft eMbedded Visual C++ 3.0, 4.0 (.NET) */
-# include <stl/config/_evc.h>
-# elif defined (_MSC_VER)
- /* Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0 */
-# include <stl/config/_msvc.h>
-# endif
-
-# include <stl/config/_windows.h>
-#else
-# error Unknown platform !!
-#endif
-
-#if !defined (_STLP_COMPILER)
-/* Unable to identify the compiler, issue error diagnostic.
- * Edit <config/stl_mycomp.h> to set STLport up for your compiler. */
-# include <stl/config/stl_mycomp.h>
-#endif
-
-#endif /* __stl_config__system_h */
diff --git a/stlport/stlport/stl/config/_warnings_off.h b/stlport/stlport/stl/config/_warnings_off.h
deleted file mode 100644
index 77e9815..0000000
--- a/stlport/stlport/stl/config/_warnings_off.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* This header turns off warnings that STLport headers generate for compiled
- * user code.
- */
-
-#if defined (_STLP_MSVC)
-# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) || \
- defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY) || defined (_STLP_CHECK_RUNTIME_COMPATIBILITY)
-/*
- * 31/07/2004: dums - now that we do not export the basic_string class anymore but only a base class
- * we have to disable this warning as the string are used as data members type of many iostream classes.
- */
-# pragma warning ( disable : 4251 ) // ignore template classes being exported in .dll's
-# endif
-
-# if (_STLP_MSVC < 1300) // VC6, eVC3, eVC4
-# pragma warning( disable : 4097 ) // typedef-name used as based class of (...)
-# pragma warning( disable : 4231 ) // non standard extension : 'extern' before template instanciation
-# pragma warning( disable : 4244 ) // implicit conversion: possible loss of data
-# pragma warning( disable : 4284 ) // for -> operator
-//This warning is necessary because of the native platform headers:
-# pragma warning( disable : 4290 ) // c++ exception specification ignored
-# pragma warning( disable : 4514 ) // unreferenced inline function has been removed
-# pragma warning( disable : 4660 ) // template-class specialization '...' is already instantiated
-# pragma warning( disable : 4701 ) // local variable '...' may be used without having been initialized
-# pragma warning( disable : 4710 ) // function (...) not inlined
-# pragma warning( disable : 4786 ) // identifier truncated to 255 characters
-# endif
-
-# if (_STLP_MSVC < 1400)
-# pragma warning( disable : 4511 ) // copy constructor cannot be generated
-# endif
-
-//Pool of common warnings for all MSVC supported versions:
-//Many are only useful if warning level is set to 4.
-# pragma warning( disable : 4100 ) // unreferenced formal parameter
-# pragma warning( disable : 4127 ) // conditional expression is constant
-# pragma warning( disable : 4146 ) // unary minus operator applied to unsigned type, result still unsigned
-# pragma warning( disable : 4245 ) // conversion from 'enum ' to 'unsigned int', signed/unsigned mismatch
-# pragma warning( disable : 4355 ) // this used in base member initializer list (used in rope implementation)
-# pragma warning( disable : 4510 ) // default constructor cannot be generated
-# pragma warning( disable : 4512 ) // assignment operator could not be generated
-# pragma warning( disable : 4571 ) // catch(...) blocks compiled with /EHs do not catch or re-throw Structured Exceptions
-# pragma warning( disable : 4610 ) // struct '...' can never be instantiated - user defined construtor required
-#elif defined (__BORLANDC__)
-# pragma option -w-ccc // -w-8008 Condition is always true OR Condition is always false
-# pragma option -w-inl // -w-8027 Functions containing reserved words are not expanded inline
-# pragma option -w-ngu // -w-8041 Negating unsigned value
-# pragma option -w-pow // -w-8062 Previous options and warnings not restored
-# pragma option -w-rch // -w-8066 Unreachable code
-# pragma option -w-par // -w-8057 Parameter 'parameter' is never used
-#endif
diff --git a/stlport/stlport/stl/config/_windows.h b/stlport/stlport/stl/config/_windows.h
deleted file mode 100644
index 6b42e11..0000000
--- a/stlport/stlport/stl/config/_windows.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * Copyright (c) 2003
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-#ifndef _STLP_INTERNAL_WINDOWS_H
-#define _STLP_INTERNAL_WINDOWS_H
-
-#if !defined (_STLP_PLATFORM)
-# define _STLP_PLATFORM "Windows"
-#endif
-
-#if !defined (_STLP_BIG_ENDIAN) && !defined (_STLP_LITTLE_ENDIAN)
-# if defined (_MIPSEB)
-# define _STLP_BIG_ENDIAN 1
-# endif
-# if defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \
- defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \
- defined (__alpha__)
-# define _STLP_LITTLE_ENDIAN 1
-# endif
-# if defined (__ia64__)
- /* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */
-# if defined (__BIG_ENDIAN__)
-# define _STLP_BIG_ENDIAN 1
-# else
-# define _STLP_LITTLE_ENDIAN 1
-# endif
-# endif
-#endif /* _STLP_BIG_ENDIAN */
-
-#if !defined (_STLP_WINDOWS_H_INCLUDED)
-# define _STLP_WINDOWS_H_INCLUDED
-# if defined (__BUILDING_STLPORT)
-# include <stl/config/_native_headers.h>
-/* Here we define _STLP_OUTERMOST_HEADER_ID to avoid indirect inclusion
- * of STLport stuffs from C/C++ Standard headers exposed by STLport
- * as configuration is not yet completed. */
-# if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x100
-# endif
-# if !defined (WIN32_LEAN_AND_MEAN)
-# define WIN32_LEAN_AND_MEAN
-# endif
-# if !defined (VC_EXTRALEAN)
-# define VC_EXTRALEAN
-# endif
-/* Don't let windows.h define its min and max macros. */
-# if !defined (NOMINMAX)
-# define NOMINMAX
-# endif
-# if !defined (STRICT)
-# define STRICT
-# endif
-# if defined (_STLP_USE_MFC)
-# include <afx.h>
-# else
-# include <windows.h>
-# endif
-# if (_STLP_OUTERMOST_HEADER_ID == 0x100)
-# undef _STLP_OUTERMOST_HEADER_ID
-# endif
-# else
-/* This section serves as a replacement for windows.h header. */
-# if defined (__cplusplus)
-extern "C" {
-# endif
-# if (defined (_M_AMD64) || defined (_M_IA64) || (!defined (_STLP_WCE) && defined (_M_MRX000)) || defined (_M_ALPHA) || \
- (defined (_M_PPC) && (_STLP_MSVC_LIB >= 1000))) && !defined (RC_INVOKED)
-# define InterlockedIncrement _InterlockedIncrement
-# define InterlockedDecrement _InterlockedDecrement
-# define InterlockedExchange _InterlockedExchange
-# define _STLP_STDCALL
-# else
-# if defined (_MAC)
-# define _STLP_STDCALL _cdecl
-# else
-# define _STLP_STDCALL __stdcall
-# endif
-# endif
-
-# if defined (_STLP_NEW_PLATFORM_SDK)
-_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long volatile *);
-_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long volatile *);
-_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long volatile *, long);
-# if defined (_WIN64)
-_STLP_IMPORT_DECLSPEC void* _STLP_STDCALL _InterlockedExchangePointer(void* volatile *, void*);
-# endif
-# elif !defined (_STLP_WCE)
-/* boris : for the latest SDK, you may actually need the other version of the declaration (above)
- * even for earlier VC++ versions. There is no way to tell SDK versions apart, sorry ...
- */
-_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long*);
-_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long*);
-_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long*, long);
-# else
-/* start of eMbedded Visual C++ specific section */
-# include <stl/config/_native_headers.h>
-
-/* Don't let windef.h define its min and max macros. */
-# if !defined (NOMINMAX)
-# define NOMINMAX
-# endif
-# include <windef.h> /* needed for basic windows types */
-
- /** in SDKs generated with PB5, windef.h somehow includes headers which then
- define setjmp. */
-# if (_WIN32_WCE >= 0x500)
-# define _STLP_NATIVE_SETJMP_H_INCLUDED
-# endif
-
-# ifndef _WINBASE_ /* winbase.h already included? */
-long WINAPI InterlockedIncrement(long*);
-long WINAPI InterlockedDecrement(long*);
-long WINAPI InterlockedExchange(long*, long);
-# endif
-
-# ifndef __WINDOWS__ /* windows.h already included? */
-
-# if defined (x86)
-# include <winbase.h> /* needed for inline versions of Interlocked* functions */
-# endif
-
-# ifndef _MFC_VER
-
-# define MessageBox MessageBoxW
-int WINAPI MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
-
-# define wvsprintf wvsprintfW
-int WINAPI wvsprintfW(LPWSTR, LPCWSTR, va_list ArgList);
-
-void WINAPI ExitThread(DWORD dwExitCode);
-
-# if !defined (COREDLL)
-# define _STLP_WCE_WINBASEAPI DECLSPEC_IMPORT
-# else
-# define _STLP_WCE_WINBASEAPI
-# endif
-
-_STLP_WCE_WINBASEAPI int WINAPI
-MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr,
- int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);
-
-_STLP_WCE_WINBASEAPI UINT WINAPI GetACP();
-
-_STLP_WCE_WINBASEAPI BOOL WINAPI TerminateProcess(HANDLE hProcess, DWORD uExitCode);
-
-# define OutputDebugString OutputDebugStringW
-void WINAPI OutputDebugStringW(LPCWSTR);
-
-_STLP_WCE_WINBASEAPI void WINAPI Sleep(DWORD);
-
-# undef _STLP_WCE_WINBASEAPI
-
-# endif /* !_MFC_VER */
-
-# endif /* !__WINDOWS__ */
-
-/* end of eMbedded Visual C++ specific section */
-# endif
-
-# if !defined (_STLP_WCE)
-_STLP_IMPORT_DECLSPEC void _STLP_STDCALL Sleep(unsigned long);
-_STLP_IMPORT_DECLSPEC void _STLP_STDCALL OutputDebugStringA(const char* lpOutputString);
-# endif
-
-# if defined (InterlockedIncrement)
-# pragma intrinsic(_InterlockedIncrement)
-# pragma intrinsic(_InterlockedDecrement)
-# pragma intrinsic(_InterlockedExchange)
-# if defined (_WIN64)
-# pragma intrinsic(_InterlockedExchangePointer)
-# endif
-# endif
-# if defined (__cplusplus)
-} /* extern "C" */
-# endif
-
-# endif
-
-/* Here we use a macro different than the InterlockedExchangePointer SDK one
- * to avoid macro definition conflict. */
-# if !defined (_WIN64)
-/* Under 32 bits platform we rely on a simple InterlockedExchange call. */
-# if defined (__cplusplus)
-/* We do not define this function if we are not in a C++ translation unit just
- * because of the 'inline' keyword portability issue it would introduce. We will
- * have to fix it the day we need this function for a C translation unit.
- */
-inline
-void* _STLP_CALL STLPInterlockedExchangePointer(void* volatile* __a, void* __b) {
-# if defined (_STLP_MSVC)
-/* Here MSVC produces warning if 64 bits portability issue is activated.
- * MSVC do not see that _STLP_ATOMIC_EXCHANGE_PTR is a macro which content
- * is based on the platform, Win32 or Win64
- */
-# pragma warning (push)
-# pragma warning (disable : 4311) // pointer truncation from void* to long
-# pragma warning (disable : 4312) // conversion from long to void* of greater size
-# endif
-# if !defined (_STLP_NO_NEW_STYLE_CASTS)
- return reinterpret_cast<void*>(InterlockedExchange(reinterpret_cast<long*>(const_cast<void**>(__a)),
- reinterpret_cast<long>(__b)));
-# else
- return (void*)InterlockedExchange((long*)__a, (long)__b);
-# endif
-# if defined (_STLP_MSVC)
-# pragma warning (pop)
-# endif
-}
-# endif
-# else
-# define STLPInterlockedExchangePointer _InterlockedExchangePointer
-# endif
-
-#endif /* _STLP_WINDOWS_H_INCLUDED */
-
-/* _STLP_WIN95_LIKE signal the Windows 95 OS or assimilated Windows OS version that
- * has Interlockeded[Increment, Decrement] Win32 API functions not returning modified
- * value.
- */
-#if (defined (WINVER) && (WINVER < 0x0410) && (!defined (_WIN32_WINNT) || (_WIN32_WINNT < 0x400))) || \
- (!defined (WINVER) && (defined (_WIN32_WINDOWS) && (_WIN32_WINDOWS < 0x0410) || \
- (defined (_WIN32_WINNT) && (_WIN32_WINNT < 0x400))))
-# define _STLP_WIN95_LIKE
-#endif
-
-/* Between Windows 95 (0x400) and later Windows OSes an API enhancement forces us
- * to change _Refcount_Base internal struct. As _Refcount_base member methods might
- * be partially inlined we need to check that STLport build/use are coherent. To do
- * so we try to generate a link time error thanks to the following macro.
- * This additional check is limited to old compilers that might still be used with
- * Windows 95. */
-#if (defined (_DEBUG) || defined (_STLP_DEBUG)) && \
- (defined (_STLP_MSVC) && (_STLP_MSVC < 1310) || \
- defined (__GNUC__) && (__GNUC__ < 3))
-/* We invert symbol names based on macro detection, when building for Windows
- * 95 we expose a
- * building_for_windows95_or_previous_but_library_built_for_windows98_or_later
- * function in order to have a more obvious link error message signaling how
- * the lib has been built and how it is used. */
-# if defined (__BUILDING_STLPORT)
-# if defined (_STLP_WIN95_LIKE)
-# define _STLP_SIGNAL_RUNTIME_COMPATIBILITY building_for_windows95_but_library_built_for_at_least_windows98
-# else
-# define _STLP_SIGNAL_RUNTIME_COMPATIBILITY building_for_at_least_windows98_but_library_built_for_windows95
-# endif
-# else
-# if defined (_STLP_WIN95_LIKE)
-# define _STLP_CHECK_RUNTIME_COMPATIBILITY building_for_windows95_but_library_built_for_at_least_windows98
-# else
-# define _STLP_CHECK_RUNTIME_COMPATIBILITY building_for_at_least_windows98_but_library_built_for_windows95
-# endif
-# endif
-#endif
-
-#if defined (__WIN16) || defined (WIN16) || defined (_WIN16)
-# define _STLP_WIN16
-#else
-# define _STLP_WIN32
-#endif
-
-#if defined(_STLP_WIN32)
-# define _STLP_USE_WIN32_IO /* CreateFile/ReadFile/WriteFile */
-#endif
-
-#if defined(__MINGW32__) && !defined(_STLP_USE_STDIO_IO)
-# define _STLP_USE_WIN32_IO /* CreateFile/ReadFile/WriteFile */
-#endif /* __MINGW32__ */
-
-#ifdef _STLP_WIN16
-# define _STLP_USE_UNIX_EMULATION_IO /* _open/_read/_write */
-# define _STLP_LDOUBLE_80
-#endif
-
-#endif /* _STLP_INTERNAL_WINDOWS_H */
diff --git a/stlport/stlport/stl/config/compat.h b/stlport/stlport/stl/config/compat.h
deleted file mode 100644
index 434f314..0000000
--- a/stlport/stlport/stl/config/compat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-
-/*
- * Compatibility section
- * This section sets new-style macros based on old-style ones, for compatibility
- */
-
-#if defined (__STL_DEBUG) && !defined (_STLP_DEBUG)
-# define _STLP_DEBUG __STL_DEBUG
-#endif
-#if defined (__STL_NO_ANACHRONISMS) && !defined (_STLP_NO_ANACHRONISMS)
-# define _STLP_NO_ANACHRONISMS __STL_NO_ANACHRONISMS
-#endif
-#if defined (__STL_NO_EXTENSIONS) && !defined (_STLP_NO_EXTENSIONS)
-# define _STLP_NO_EXTENSIONS __STL_NO_EXTENSIONS
-#endif
-#if defined (__STL_NO_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTIONS)
-# define _STLP_NO_EXCEPTIONS __STL_NO_EXCEPTIONS
-#endif
-#if defined (__STL_NO_NAMESPACES) && !defined (_STLP_NO_NAMESPACES)
-# define _STLP_NO_NAMESPACES __STL_NO_NAMESPACES
-#endif
-#if defined (__STL_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS)
-# define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS __STL_MINIMUM_DEFAULT_TEMPLATE_PARAMS
-#endif
-#if defined (__STL_NO_OWN_NAMESPACE) && !defined (_STLP_NO_OWN_NAMESPACE)
-# define _STLP_NO_OWN_NAMESPACE __STL_NO_OWN_NAMESPACE
-#endif
-
-#if defined (__STL_NO_RELOPS_NAMESPACE) && !defined (_STLP_NO_RELOPS_NAMESPACE)
-# define _STLP_NO_RELOPS_NAMESPACE __STL_NO_RELOPS_NAMESPACE
-#endif
-
-#if defined (__STL_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_UNINITIALIZED)
-# define _STLP_DEBUG_UNINITIALIZED __STL_DEBUG_UNINITIALIZED
-#endif
-#if defined (__STL_SHRED_BYTE) && !defined (_STLP_SHRED_BYTE)
-# define _STLP_SHRED_BYTE __STL_SHRED_BYTE
-#endif
-#if defined (__STL_USE_MFC) && !defined (_STLP_USE_MFC)
-# define _STLP_USE_MFC __STL_USE_MFC
-#endif
-
-#if defined (__STL_USE_NEWALLOC) && !defined (_STLP_USE_NEWALLOC)
-# define _STLP_USE_NEWALLOC __STL_USE_NEWALLOC
-#endif
-#if defined (__STL_USE_MALLOC) && !defined (_STLP_USE_MALLOC)
-# define _STLP_USE_MALLOC __STL_USE_MALLOC
-#endif
-
-#if defined (__STL_DEBUG_ALLOC) && !defined (_STLP_DEBUG_ALLOC)
-# define _STLP_DEBUG_ALLOC __STL_DEBUG_ALLOC
-#endif
-
-#if defined (__STL_DEBUG_MESSAGE) && !defined (_STLP_DEBUG_MESSAGE)
-# define _STLP_DEBUG_MESSAGE __STL_DEBUG_MESSAGE
-#endif
-
-#if defined (__STL_DEBUG_TERMINATE) && !defined (_STLP_DEBUG_TERMINATE)
-# define _STLP_DEBUG_TERMINATE __STL_DEBUG_TERMINATE
-#endif
-
-#if defined (__STL_USE_ABBREVS) && !defined (_STLP_USE_ABBREVS)
-# define _STLP_USE_ABBREVS __STL_USE_ABBREVS
-#endif
-
-#if defined (__STL_NO_MSVC50_COMPATIBILITY) && !defined (_STLP_NO_MSVC50_COMPATIBILITY)
-# define _STLP_NO_MSVC50_COMPATIBILITY __STL_NO_MSVC50_COMPATIBILITY
-#endif
-
-/* STLport do not support anymore the iostream wrapper mode so this macro should
- * always been define for other libraries that was using it:
- */
-#if !defined (_STLP_OWN_IOSTREAMS)
-# define _STLP_OWN_IOSTREAMS
-#endif
-
-#if defined (_STLP_NO_OWN_IOSTREAMS)
-# error STLport do not support anymore the wrapper mode. If you want to use STLport \
-use its iostreams implementation or no iostreams at all.
-#endif
diff --git a/stlport/stlport/stl/config/features.h b/stlport/stlport/stl/config/features.h
deleted file mode 100644
index b5b4e3a..0000000
--- a/stlport/stlport/stl/config/features.h
+++ /dev/null
@@ -1,1079 +0,0 @@
- /*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_FEATURES_H
-#define _STLP_FEATURES_H
-
-/*
- * Purpose of this file:
- *
- * Defines all STLport settings.
- * This file is actually a wrapper : it includes compiler-specific
- * settings from <config/stlcomp.h>
- * and user-defined settings from <config/user_config.h>.
- * See <config/stl_mycomp.h> and <config/user_config.h> for the description
- * of those macros
- *
- */
-
-/* Definition of the STLport version informations */
-#include <stl/_stlport_version.h>
-
-/* Other macros defined by this file:
-
- * bool, true, and false, if _STLP_NO_BOOL is defined.
- * typename, as a null macro if it's not already a keyword.
- * explicit, as a null macro if it's not already a keyword.
- * namespace-related macros (_STLP_STD, _STLP_BEGIN_NAMESPACE, etc.)
- * exception-related macros (_STLP_TRY, _STLP_UNWIND, etc.)
- * _STLP_ASSERT, either as a test or as a null macro, depending on
- whether or not _STLP_ASSERTIONS is defined.
-*/
-
-/* Definition of the 2 STLport debug levels */
-#define _STLP_STLPORT_DBG_LEVEL 1
-#define _STLP_STANDARD_DBG_LEVEL 2
-
-/* Placeholder for user to override settings.
- * It could be also used to mask settings from
- * different directories.
- */
-#include <stl/config/user_config.h>
-
-#if defined (_STLP_DEBUG) && !defined (_STLP_DEBUG_LEVEL)
-# define _STLP_DEBUG_LEVEL _STLP_STLPORT_DBG_LEVEL
-#endif
-
-#if defined (__BUILDING_STLPORT)
-/* For the STLport implementation we can use everything:
- */
-# if defined (_STLP_NO_ANACHRONISMS)
-# undef _STLP_NO_ANACHRONISMS
-# endif
-# if defined (_STLP_NO_EXTENSIONS)
-# undef _STLP_NO_EXTENSIONS
-# endif
-/* Moreover there are things that have no sens:
- */
-# if defined (_STLP_NO_IOSTREAMS)
-# error If you do not use iostreams you do not need to build the STLport library.
-# endif
-#endif
-
-/* ========================================================= */
-/* This file is used for compatibility; it accepts old-style config
- switches */
-#include <stl/config/compat.h>
-
-/* Common configuration file for this particular installation. */
-#include <stl/config/host.h>
-
-/* Operational Environment specific */
-#include <stl/config/_system.h>
-
-/* ========================================================= */
-
-/* some fixes to configuration. This also includes modifications
- * of STLport switches depending on compiler flags,
- * or settings applicable to a group of compilers, such as
- * to all who use EDG front-end.
- */
-#include <stl/config/stl_confix.h>
-
-#if !defined (_STLP_NO_MEMBER_TEMPLATES) && !defined (_STLP_MEMBER_TEMPLATES)
-# define _STLP_MEMBER_TEMPLATES 1
-#endif
-
-#if !defined (_STLP_NO_MEMBER_TEMPLATE_CLASSES) && !defined (_STLP_MEMBER_TEMPLATE_CLASSES)
-# define _STLP_MEMBER_TEMPLATE_CLASSES 1
-#endif
-
-#if defined (_STLP_NO_MEMBER_TEMPLATE_CLASSES) && !defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
-# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
-#endif
-
-#if !defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# define _STLP_CLASS_PARTIAL_SPECIALIZATION 1
-#endif
-
-#if !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) && !defined (_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER)
-# define _STLP_FUNCTION_TMPL_PARTIAL_ORDER 1
-#endif
-
-#if !defined (_STLP_DONT_USE_SHORT_STRING_OPTIM) && !defined (_STLP_USE_SHORT_STRING_OPTIM)
-# define _STLP_USE_SHORT_STRING_OPTIM 1
-#endif
-
-#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_EXTENSIONS) && \
- !defined (_STLP_NO_CONTAINERS_EXTENSION) && !defined (_STLP_USE_CONTAINERS_EXTENSION)
-# define _STLP_USE_CONTAINERS_EXTENSION
-#endif
-
-#if defined (_STLP_USE_CONTAINERS_EXTENSION)
-# define _STLP_TEMPLATE_FOR_CONT_EXT template <class _KT>
-#else
-# define _STLP_TEMPLATE_FOR_CONT_EXT
-#endif
-
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS) && \
- (defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS))
-# error Sorry but according the STLport settings your compiler can not support the pointer specialization feature.
-#endif
-
-#if defined (_STLP_WHOLE_NATIVE_STD) && defined (_STLP_NO_OWN_NAMESPACE)
-# error Sorry but asking for both STLport to be in the real std namespace and also having STLport import all native std stuff \
- is invalid, chose one or none.
-#endif
-
-#if defined (_STLP_VERBOSE) && !defined (_STLP_VERBOSE_MODE_SUPPORTED)
-# error Sorry but the verbose mode is not implemented for your compiler.
-#endif
-
-#if defined (_STLP_NO_IOSTREAMS) && \
- !defined (_STLP_USE_NEWALLOC) && !defined (_STLP_USE_MALLOC)
-# define _STLP_USE_NEWALLOC
-#endif
-
-#if !defined (_STLP_BIG_ENDIAN) && !defined (_STLP_LITTLE_ENDIAN)
-# if defined (_MIPSEB) || defined (__sparc) || defined (_AIX) || \
- defined (__hpux) || defined (macintosh) || defined (_MAC)
-# define _STLP_BIG_ENDIAN 1
-# elif defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \
- defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \
- defined (__alpha__)
-# define _STLP_LITTLE_ENDIAN 1
-# elif defined (__ia64__)
- /* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */
-# if defined (__BIG_ENDIAN__)
-# define _STLP_BIG_ENDIAN 1
-# else
-# define _STLP_LITTLE_ENDIAN 1
-# endif
-# else
-# error "can't determine endianess"
-# endif
-#endif /* _STLP_BIG_ENDIAN */
-
-/* ==========================================================
- * final workaround tuning based on given flags
- * ========================================================== */
-
-#ifndef _STLP_UINT32_T
-# define _STLP_UINT32_T unsigned long
-#endif
-#ifndef _STLP_ABORT
-# define _STLP_ABORT() abort()
-#endif
-
-#if !defined (_STLP_HAS_NO_NAMESPACES)
-# if defined _STLP_NO_NAMESPACES
-# undef _STLP_USE_NAMESPACES
-# else
-/* assume it as the default, turn it off later if NO_NAMESPACES selected */
-# undef _STLP_USE_NAMESPACES
-# define _STLP_USE_NAMESPACES 1
-# endif
-#endif
-
-#if defined (_STLP_NO_IOSTREAMS)
-# define _STLP_USE_NO_IOSTREAMS
-#endif
-
-/* Operating system recognition (basic) */
-#if (defined(__unix) || defined(__linux__) || defined(__QNX__) || defined(_AIX) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__Lynx__) || defined(__hpux) || defined(__sgi)) && \
- !defined (_STLP_UNIX)
-# define _STLP_UNIX 1
-#endif /* __unix */
-
-#if !defined (_STLP_NO_LONG_DOUBLE)
-# define _STLP_LONGEST_FLOAT_TYPE long double
-#else
-# define _STLP_LONGEST_FLOAT_TYPE double
-#endif
-
-/* Native headers access macros */
-#if !defined (_STLP_HAS_INCLUDE_NEXT)
-# include <stl/config/_native_headers.h>
-#endif
-
-/* shared library tune-up */
-
-#if defined (__BUILDING_STLPORT)
-/* if we are rebuilding right now, place everything here */
-# undef _STLP_DESIGNATED_DLL
-# define _STLP_DESIGNATED_DLL 1
-#endif
-
-/* Use own namespace always if possible and not explicitly instructed otherwise */
-#if defined (_STLP_USE_NAMESPACES) && !defined (_STLP_BROKEN_USING_DIRECTIVE) && \
- !defined (_STLP_NO_OWN_NAMESPACE)
-# undef _STLP_USE_OWN_NAMESPACE
-# define _STLP_USE_OWN_NAMESPACE 1
-#else
-# undef _STLP_WHOLE_NATIVE_STD
-#endif
-
-#if !defined (_NOTHREADS) && !defined (_STLP_THREADS_DEFINED)
-
-# if defined (_PTHREADS)
-# define _STLP_PTHREADS
-# define _STLP_THREADS
-# endif
-# if defined (_UITHREADS)
-# define _STLP_UITHREADS
-# define _STLP_THREADS
-# endif
-
-# if defined (_STLP_WIN32) && !defined (_STLP_PTHREADS)
-# define _STLP_WIN32THREADS 1
-# elif ((defined (__sun) && !defined (__linux__)) || defined (_UITHREADS) ) && \
- !defined(_STLP_PTHREADS)
-# define _STLP_UITHREADS
-# else
-# define _STLP_PTHREADS
-# endif /* __sgi */
-# define _STLP_THREADS_DEFINED
-#endif
-
-#if (defined (_REENTRANT) || defined (_THREAD_SAFE)) && !defined (_STLP_THREADS)
-# define _STLP_THREADS
-#endif
-
-#ifndef _STLP_STATIC_MUTEX
-# define _STLP_STATIC_MUTEX _STLP_mutex_base
-#endif
-
-#if (defined (_MFC_VER) || defined (_AFXDLL)) && !defined (_STLP_USE_MFC)
-# define _STLP_USE_MFC 1
-#endif
-
-#if defined (_STLP_THREADS)
-# define _STLP_VOLATILE volatile
-#else
-# define _STLP_VOLATILE
-#endif
-
-#if !defined (_STLP_USE_NEW_C_HEADERS) && !defined (_STLP_HAS_NO_NEW_C_HEADERS)
-# define _STLP_USE_NEW_C_HEADERS
-#endif
-/* disable new-style headers if requested */
-#if defined (_STLP_NO_NEW_C_HEADERS)
-# undef _STLP_USE_NEW_C_HEADERS
-#endif
-
-#if defined (_STLP_BASE_TYPEDEF_BUG)
-# undef _STLP_BASE_TYPEDEF_OUTSIDE_BUG
-# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
-#endif
-
-#if defined (_STLP_NESTED_TYPE_PARAM_BUG)
-# define _STLP_GLOBAL_NESTED_RETURN_TYPE_PARAM_BUG
-#endif
-
-/* SUNpro 4.2 inline string literal bug */
-#ifdef _STLP_INLINE_STRING_LITERAL_BUG
-# define _STLP_FIX_LITERAL_BUG(__x) __x = __x;
-#else
-# define _STLP_FIX_LITERAL_BUG(__x)
-#endif
-
-#if defined (_STLP_NON_TYPE_TMPL_PARAM_BUG)
-# undef _STLP_NO_DEFAULT_NON_TYPE_PARAM
-# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
-#endif
-
-#if !defined (_STLP_STATIC_ASSERT)
-/* Some compiler support 0 size array so we use negative size array to generate
- * a compilation time error.
- */
-# define _STLP_STATIC_ASSERT(expr) typedef char __static_assert[expr ? 1 : -1];
-#endif
-
-/* apple mpw exception handling bug */
-#ifndef _STLP_MPWFIX_TRY
-# define _STLP_MPWFIX_TRY
-#endif
-#ifndef _STLP_MPWFIX_CATCH
-# define _STLP_MPWFIX_CATCH
-#endif
-#ifndef _STLP_MPWFIX_CATCH_ACTION
-# define _STLP_MPWFIX_CATCH_ACTION(action)
-#endif
-
-#if !defined (_STLP_WEAK)
-# define _STLP_WEAK
-#endif
-
-/* default parameters as template types derived from arguments ( not always supported ) */
-#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
-# define _STLP_DFL_TMPL_PARAM( classname, defval ) class classname
-#else
-# if !defined (_STLP_DEFAULT_TYPE_PARAM)
-# define _STLP_DEFAULT_TYPE_PARAM 1
-# endif
-# define _STLP_DFL_TMPL_PARAM( classname, defval ) class classname = defval
-#endif
-
-#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES)
-# define _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_Key, _Tp ) class _Alloc
-#else
-# define _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_Key, _Tp ) \
- class _Alloc = allocator< pair < _Key, _Tp > >
-#endif
-
-/* default parameters as complete types */
-#if defined (_STLP_DEFAULT_TYPE_PARAM)
-# define _STLP_DFL_TYPE_PARAM( classname, defval ) class classname = defval
-# define _STLP_DFL_NON_TYPE_PARAM(type,name,val) type name = val
-#else
-# define _STLP_DFL_TYPE_PARAM( classname, defval ) class classname
-# define _STLP_DFL_NON_TYPE_PARAM(type,name,val) type name
-#endif
-
-/* SGI compatibility */
-
-#ifdef _STLP_NO_WCHAR_T
-# ifndef _STLP_NO_NATIVE_WIDE_STREAMS
-# define _STLP_NO_NATIVE_WIDE_STREAMS 1
-# endif
-#else
-# define _STLP_HAS_WCHAR_T 1
-#endif
-
-#if !defined (_STLP_NO_AT_MEMBER_FUNCTION)
-# define _STLP_CAN_THROW_RANGE_ERRORS 1
-#endif
-
-/* debug mode tool */
-#if defined (_STLP_DEBUG)
-# define _STLP_NON_DBG_NAME(X) _NonDbg_##X
-#endif
-
-/* pointer specialization tool */
-#if defined (_STLP_USE_PTR_SPECIALIZATIONS)
-# define _STLP_PTR_IMPL_NAME(X) _Impl_##X
-#endif
-
-#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) || \
- defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY) || defined (_STLP_CHECK_RUNTIME_COMPATIBILITY)
-# define _STLP_NO_MEM_T_NAME(X) _NoMemT_##X
-#endif
-
-/* this always mean the C library is in global namespace */
-#if defined (_STLP_HAS_NO_NEW_C_HEADERS) && !defined (_STLP_VENDOR_GLOBAL_CSTD)
-# define _STLP_VENDOR_GLOBAL_CSTD 1
-#endif
-
-/* Depending of whether compiler supports namespaces,
- * tune the parameters for vendor-supplied libraries.
- * This section is guarded by _STLP_HAS_NO_NAMESPACES, not by _STLP_USE_NAMESPACES,
- * since it depends only on the native features, not on user's preference whether
- * to use namespace for STLport or not.
- */
-#if !defined (_STLP_HAS_NO_NAMESPACES)
-/* Import some vendor's headers into corresponding STLport ones if they might be needed
- * (if we wrap native iostreams and use namepace other than std::) */
-# if defined (_STLP_WHOLE_NATIVE_STD)
-# define _STLP_IMPORT_VENDOR_STD 1
-# endif
-
-/* if using stlport:: namespace or if C library stuff is not in vendor's std::,
- * try importing 'em.
- * MSVC has ambiguity problem when we try to import C-style std:: stuff back into global namespace */
-# if defined (_STLP_USE_NAMESPACES) && (defined(_STLP_USE_OWN_NAMESPACE) || defined (_STLP_VENDOR_GLOBAL_CSTD))
-# define _STLP_IMPORT_VENDOR_CSTD 1
-# endif
-
-# if defined (_STLP_NO_USING_FOR_GLOBAL_FUNCTIONS) && !defined (_STLP_DO_IMPORT_CSTD_FUNCTIONS)
-# define _STLP_NO_CSTD_FUNCTION_IMPORTS
-# endif
-
-# define _STLP_USING_NAMESPACE(x) using namespace x ;
-
-namespace std { }
-namespace __std_alias = std;
-
-/* assume std:: namespace for C++ std library if not being told otherwise */
-# if defined (_STLP_VENDOR_GLOBAL_STD)
-# define _STLP_VENDOR_STD
-# else
-# define _STLP_VENDOR_STD std
-# endif
-
-/* tune things that come from C library */
-# if defined (_STLP_VENDOR_GLOBAL_CSTD) || !defined(_STLP_USE_NEW_C_HEADERS)
-/* in old-style headers, C functions go to global scope. */
-# define _STLP_VENDOR_CSTD
-# define _STLP_USING_VENDOR_CSTD
-# else
-# define _STLP_VENDOR_CSTD _STLP_VENDOR_STD
-# define _STLP_USING_VENDOR_CSTD _STLP_USING_NAMESPACE(_STLP_VENDOR_CSTD)
-# endif /* _STLP_VENDOR_CSTD */
-/* exception, typeinfo, new - always come from the vendor */
-# if !defined (_STLP_VENDOR_EXCEPT_STD)
-# if defined (_STLP_VENDOR_GLOBAL_EXCEPT_STD)
-# define _STLP_VENDOR_EXCEPT_STD
-# else
-# define _STLP_VENDOR_EXCEPT_STD _STLP_VENDOR_STD
-# endif
-# endif
-# define _STLP_OLD_IO_NAMESPACE
-# if !defined (_STLP_VENDOR_MB_NAMESPACE)
-# define _STLP_VENDOR_MB_NAMESPACE _STLP_VENDOR_CSTD
-# endif
-#else
-/* compiler has no namespace support */
-# define _STLP_VENDOR_STD
-# define _STLP_VENDOR_CSTD
-# define _STLP_USING_NAMESPACE(x)
-# define _STLP_USING_VENDOR_CSTD
-# define _STLP_VENDOR_EXCEPT_STD
-#endif
-
-#if defined (_STLP_USE_NAMESPACES)
-
-# if defined (_STLP_USE_OWN_NAMESPACE)
-# if !defined (_STLP_STD_NAME)
-# if !defined (_STLP_DEBUG)
-# if !defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
-# ifndef _STLP_THREADS
-# define _STLP_STD_NAME stlpmtx_std
-# else
-# define _STLP_STD_NAME stlp_std
-# endif
-# else
-# ifndef _STLP_THREADS
-# define _STLP_STD_NAME stlpxmtx_std
-# else
-# define _STLP_STD_NAME stlpx_std
-# endif
-# endif
-# else
-/*
- * The STLport debug mode is binary incompatible with the other modes,
- * lets make it clear on the STLport namespace to generate link errors rather
- * than runtime ones.
- */
-# if !defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
-# ifndef _STLP_THREADS
-# define _STLP_STD_NAME stlpdmtx_std
-# else
-# define _STLP_STD_NAME stlpd_std
-# endif
-# else
-# ifndef _STLP_THREADS
-# define _STLP_STD_NAME stlpdxmtx_std
-# else
-# define _STLP_STD_NAME stlpdx_std
-# endif
-# endif
-# endif
-# endif
-namespace _STLP_STD_NAME { }
-# else
-# define _STLP_STD_NAME std
-# endif /* _STLP_USE_OWN_NAMESPACE */
-
-# define _STLP_BEGIN_NAMESPACE namespace _STLP_STD_NAME {
-# define _STLP_BEGIN_TR1_NAMESPACE namespace tr1 {
-# define _STLP_END_NAMESPACE }
-
-/* decide whether or not we use separate namespace for rel ops */
-# if defined (_STLP_NO_RELOPS_NAMESPACE)
-# define _STLP_BEGIN_RELOPS_NAMESPACE _STLP_BEGIN_NAMESPACE namespace rel_ops {}
-# define _STLP_END_RELOPS_NAMESPACE }
-# else
-/* Use std::rel_ops namespace */
-# define _STLP_BEGIN_RELOPS_NAMESPACE _STLP_BEGIN_NAMESPACE namespace rel_ops {
-# define _STLP_END_RELOPS_NAMESPACE } }
-# define _STLP_USE_SEPARATE_RELOPS_NAMESPACE
-# endif /* Use std::rel_ops namespace */
-
-# define _STLP_STD ::_STLP_STD_NAME
-# if !defined (_STLP_TR1)
-# define _STLP_TR1 _STLP_STD::tr1::
-# endif
-
-# if !defined (_STLP_DONT_USE_PRIV_NAMESPACE)
-# define _STLP_PRIV_NAME priv
-# define _STLP_PRIV _STLP_STD::_STLP_PRIV_NAME::
-# define _STLP_MOVE_TO_PRIV_NAMESPACE namespace _STLP_PRIV_NAME {
-# define _STLP_MOVE_TO_STD_NAMESPACE }
-# else
-# if !defined (_STLP_PRIV)
-# define _STLP_PRIV _STLP_STD::
-# endif
-# define _STLP_MOVE_TO_PRIV_NAMESPACE
-# define _STLP_MOVE_TO_STD_NAMESPACE
-# endif
-
-/* Official STLport namespace when std is not redefined.
- * Here we don't use a macro because we do not need it and because
- * stlport is used as file name by boost and folder name under beos:
- */
-namespace stlport = _STLP_STD_NAME;
-
-/* Backward compatibility:
- */
-namespace _STL = _STLP_STD_NAME;
-#undef __STLPORT_NAMESPACE
-#define __STLPORT_NAMESPACE _STLP_STD_NAME
-
-#else /* _STLP_USE_NAMESPACES */
-/* STLport is being put into global namespace */
-# define _STLP_STD
-# define _STLP_PRIV
-# define _STLP_TR1
-# define _STLP_BEGIN_NAMESPACE
-# define _STLP_BEGIN_TR1_NAMESPACE
-# define _STLP_END_NAMESPACE
-# define _STLP_MOVE_TO_PRIV_NAMESPACE
-# define _STLP_MOVE_TO_STD_NAMESPACE
-
-/* boris : it was found out that _STLP_USE_SEPARATE_RELOPS_NAMESPACE
- causes less problems than having relational operator templates in global namespace
- Please define _STLP_NO_RELOPS_NAMESPACE in config/user_config.h if your code rely on them. */
-# if !defined (_STLP_NO_RELOPS_NAMESPACE)
-# define _STLP_USE_SEPARATE_RELOPS_NAMESPACE
-# endif
-# define _STLP_BEGIN_RELOPS_NAMESPACE
-# define _STLP_END_RELOPS_NAMESPACE
-# undef _STLP_USE_OWN_NAMESPACE
-#endif /* _STLP_USE_NAMESPACES */
-
-#define STLPORT_CSTD _STLP_VENDOR_CSTD
-#define STLPORT _STLP_STD_NAME
-
-#if defined(_STLP_BOGUS_TEMPLATE_TYPE_MATCHING_BUG)
-# define _STLP_SIMPLE_TYPE(T) _stl_trivial_proxy<T>
-#else
-# define _STLP_SIMPLE_TYPE(T) T
-#endif
-
-#ifndef _STLP_RAND48
-# define _STLP_NO_DRAND48
-#endif
-
-/* advanced keywords usage */
-#define __C_CAST(__x, __y) ((__x)(__y))
-#ifndef _STLP_NO_NEW_STYLE_CASTS
-# define __CONST_CAST(__x,__y) const_cast<__x>(__y)
-# define __STATIC_CAST(__x,__y) static_cast<__x>(__y)
-# define __REINTERPRET_CAST(__x,__y) reinterpret_cast<__x>(__y)
-#else
-# define __STATIC_CAST(__x,__y) __C_CAST(__x, __y)
-# define __CONST_CAST(__x,__y) __C_CAST(__x, __y)
-# define __REINTERPRET_CAST(__x,__y) __C_CAST(__x, __y)
-#endif
-
-#if defined (_STLP_NEED_TYPENAME) && ! defined (typename)
-# define typename
-#endif
-
-#if defined (_STLP_NEED_TYPENAME) || defined (_STLP_NO_TYPENAME_ON_RETURN_TYPE )
-# define _STLP_TYPENAME_ON_RETURN_TYPE
-#else
-# define _STLP_TYPENAME_ON_RETURN_TYPE typename
-#endif
-
-#ifdef _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
-# define _STLP_HEADER_TYPENAME
-#else
-# define _STLP_HEADER_TYPENAME typename
-#endif
-
-#ifdef _STLP_NO_TYPENAME_BEFORE_NAMESPACE
-# define _STLP_TYPENAME
-#else
-# define _STLP_TYPENAME typename
-#endif
-
-#ifndef _STLP_NO_MEMBER_TEMPLATE_KEYWORD
-# define _STLP_TEMPLATE template
-#else
-# define _STLP_TEMPLATE
-#endif
-
-#if defined (_STLP_USE_CONTAINERS_EXTENSION)
-# define _STLP_KEY_TYPE_FOR_CONT_EXT(type)
-# define _STLP_TEMPLATE_FOR_CONT_EXT template <class _KT>
-#else
-# define _STLP_KEY_TYPE_FOR_CONT_EXT(type) typedef type _KT;
-# define _STLP_TEMPLATE_FOR_CONT_EXT
-#endif
-
-#if defined (_STLP_NEED_EXPLICIT) && !defined (explicit)
-# define explicit
-#endif
-
-#if !defined (_STLP_NEED_MUTABLE)
-# define _STLP_MUTABLE(type, x) x
-#else
-# define _STLP_MUTABLE(type, x) __CONST_CAST(type*, this)->x
-# define mutable
-#endif
-
-#if defined (_STLP_NO_SIGNED_BUILTINS)
-/* old HP-UX doesn't understand "signed" keyword */
-# define signed
-#endif
-
-#if defined (_STLP_LOOP_INLINE_PROBLEMS)
-# define _STLP_INLINE_LOOP
-#else
-# define _STLP_INLINE_LOOP inline
-#endif
-
-#ifndef _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
-# define _STLP_TEMPLATE_NULL template<>
-#else
-# define _STLP_TEMPLATE_NULL
-#endif
-
-#ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER
-# define _STLP_OPERATOR_TEMPLATE
-#else
-# define _STLP_OPERATOR_TEMPLATE _STLP_TEMPLATE_NULL
-#endif
-
-#ifndef _STLP_CLASS_PARTIAL_SPECIALIZATION
-/* unless we have other compiler problem, try simulating partial spec here */
-# if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS)
-# define _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
-# endif
-/* For your own iterators, please use inheritance from iterator<> instead of these obsolete queries. */
-# if (defined (_STLP_NESTED_TYPE_PARAM_BUG) || !defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS))
-# if ! defined ( _STLP_USE_OLD_HP_ITERATOR_QUERIES )
-# define _STLP_USE_OLD_HP_ITERATOR_QUERIES
-# endif
-# elif defined ( _STLP_NO_ANACHRONISMS )
-# undef _STLP_USE_OLD_HP_ITERATOR_QUERIES
-# endif
-#endif
-
-#ifndef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
-# define _STLP_NULL_TMPL_ARGS <>
-# else
-# define _STLP_NULL_TMPL_ARGS
-#endif
-
-#if !defined (_STLP_ALLOCATOR_TYPE_DFL)
-# if defined (_STLP_DONT_SUP_DFLT_PARAM)
-# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
-# endif
-# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
-# define _STLP_ALLOCATOR_TYPE_DFL
-# else
-# define _STLP_ALLOCATOR_TYPE_DFL = allocator_type()
-# endif
-#endif
-
-/* When the compiler do not correctly initialized the basic types value in default parameters we prefer
- * to avoid them to be able to correct this bug.
- */
-#if defined (_STLP_DEF_CONST_DEF_PARAM_BUG)
-# define _STLP_DONT_SUP_DFLT_PARAM 1
-#endif
-
-#if defined (__SGI_STL_NO_ARROW_OPERATOR) && ! defined (_STLP_NO_ARROW_OPERATOR)
-# define _STLP_NO_ARROW_OPERATOR
-#endif
-
-#if !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if !(defined (_STLP_NO_ARROW_OPERATOR)) && \
- !defined (_STLP_NO_MSVC50_COMPATIBILITY) && !defined (_STLP_MSVC50_COMPATIBILITY)
-/* this one is needed for proper reverse_iterator<> operator ->() handling */
-# define _STLP_MSVC50_COMPATIBILITY 1
-# endif
-#endif
-
-#if defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION )
-# if (defined(__IBMCPP__) && (500 <= __IBMCPP__) && (__IBMCPP__ < 600) )
-# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \
- typedef typename _STLP_STD :: reverse_iterator<const_iterator> const_reverse_iterator; \
- typedef typename _STLP_STD :: reverse_iterator<iterator> reverse_iterator
-# elif (defined (__sgi) && ! defined (__GNUC__)) || defined (__SUNPRO_CC) || defined (__xlC__)
-# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \
- typedef _STLP_STD:: _STLP_TEMPLATE reverse_iterator<const_iterator> const_reverse_iterator; \
- typedef _STLP_STD:: _STLP_TEMPLATE reverse_iterator<iterator> reverse_iterator
-# else
-# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \
- typedef _STLP_STD::reverse_iterator<const_iterator> const_reverse_iterator; \
- typedef _STLP_STD::reverse_iterator<iterator> reverse_iterator
-# endif
-#else /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-# if defined (_STLP_MSVC50_COMPATIBILITY)
-# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \
- typedef _STLP_STD::__reverse_iterator<const_iterator, value_type, const_reference, \
- const_pointer, difference_type> const_reverse_iterator; \
- typedef _STLP_STD::__reverse_iterator<iterator, value_type, reference, pointer, difference_type> \
- reverse_iterator
-# else
-# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \
- typedef _STLP_STD::__reverse_iterator<const_iterator, value_type, const_reference, \
- difference_type> const_reverse_iterator; \
- typedef _STLP_STD::__reverse_iterator<iterator, value_type, \
- reference, difference_type> \
- reverse_iterator
-# endif
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-#define _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS \
- _STLP_DECLARE_REVERSE_ITERATORS(reverse_bidirectional_iterator)
-#define _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS \
- _STLP_DECLARE_REVERSE_ITERATORS(reverse_iterator)
-
-#define __IMPORT_CONTAINER_TYPEDEFS(_Super) \
- typedef typename _Super::value_type value_type; \
- typedef typename _Super::size_type size_type; \
- typedef typename _Super::difference_type difference_type; \
- typedef typename _Super::reference reference; \
- typedef typename _Super::const_reference const_reference; \
- typedef typename _Super::pointer pointer; \
- typedef typename _Super::const_pointer const_pointer; \
- typedef typename _Super::allocator_type allocator_type;
-
-
-#define __IMPORT_ITERATORS(_Super) \
- typedef typename _Super::iterator iterator; \
- typedef typename _Super::const_iterator const_iterator;
-
-#define __IMPORT_REVERSE_ITERATORS(_Super) \
- typedef typename _Super::const_reverse_iterator const_reverse_iterator; \
- typedef typename _Super::reverse_iterator reverse_iterator;
-
-#define __IMPORT_SUPER_COPY_ASSIGNMENT(__derived_name, _Self, _SUPER) \
- __derived_name(const _Super& __x) : _SUPER(__x) {} \
- _Self& operator=(const _Super& __x) { \
- *(_Super*)this = __x; \
- return *this; \
- } \
- __derived_name(const _Self& __x) : _SUPER(__x) {} \
- _Self& operator=(const _Self& __x) { \
- *(_Super*)this = __x; \
- return *this; \
- }
-
-#define __IMPORT_WITH_ITERATORS(_Super) \
- __IMPORT_CONTAINER_TYPEDEFS(_Super) __IMPORT_ITERATORS(_Super)
-
-#define __IMPORT_WITH_REVERSE_ITERATORS(_Super) \
- __IMPORT_WITH_ITERATORS(_Super) __IMPORT_REVERSE_ITERATORS(_Super)
-
-#if defined (_STLP_TRIVIAL_CONSTRUCTOR_BUG)
-# define __TRIVIAL_CONSTRUCTOR(__type) __type() {}
-#else
-# define __TRIVIAL_CONSTRUCTOR(__type)
-#endif
-
-#if defined (_STLP_TRIVIAL_DESTRUCTOR_BUG)
-# define __TRIVIAL_DESTRUCTOR(__type) ~__type() {}
-#else
-# define __TRIVIAL_DESTRUCTOR(__type)
-#endif
-
-#define __TRIVIAL_STUFF(__type) \
- __TRIVIAL_CONSTRUCTOR(__type) __TRIVIAL_DESTRUCTOR(__type)
-
-#if defined (_STLP_STATIC_CONST_INIT_BUG)
-# define _STLP_STATIC_CONSTANT(__type, __assignment) enum { __assignment }
-#else
-# define _STLP_STATIC_CONSTANT(__type, __assignment) static const __type __assignment
-#endif
-
-#if defined (_STLP_HAS_NO_EXCEPTIONS)
-# define _STLP_NO_EXCEPTIONS
-#endif
-
-#if !defined (_STLP_DONT_USE_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTIONS) && !defined (_STLP_USE_EXCEPTIONS)
-# define _STLP_USE_EXCEPTIONS
-#endif
-
-#if defined (_STLP_USE_EXCEPTIONS)
-# define _STLP_TRY try
-# define _STLP_CATCH_ALL catch(...)
-# ifndef _STLP_THROW
-# define _STLP_THROW(x) throw x
-# endif
-# define _STLP_RETHROW throw
-
-# define _STLP_UNWIND(action) catch(...) { action; throw; }
-
-# ifdef _STLP_THROW_RETURN_BUG
-# define _STLP_RET_AFTER_THROW(data) return data;
-# else
-# define _STLP_RET_AFTER_THROW(data)
-# endif
-
-# if !defined (_STLP_THROWS)
-# define _STLP_THROWS(x) throw(x)
-# endif
-# if !defined (_STLP_NOTHROW)
-# define _STLP_NOTHROW throw()
-# endif
-#else
-# define _STLP_TRY
-# define _STLP_CATCH_ALL if (false)
-# ifndef _STLP_THROW
-# define _STLP_THROW(x)
-# endif
-# define _STLP_RETHROW {}
-# define _STLP_UNWIND(action)
-# define _STLP_THROWS(x)
-# define _STLP_NOTHROW
-# define _STLP_RET_AFTER_THROW(data)
-#endif
-
-/*
- * Here we check _STLP_NO_EXCEPTIONS which means that the compiler has no
- * exception support but not the _STLP_USE_EXCEPTIONS which simply means
- * that the user do not want to use them.
- */
-#if !defined (_STLP_NO_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTION_SPEC)
-# define _STLP_THROWS_INHERENTLY(x) throw x
-# define _STLP_NOTHROW_INHERENTLY throw()
-#else
-# define _STLP_THROWS_INHERENTLY(x)
-# define _STLP_NOTHROW_INHERENTLY
-#endif
-
-/* STLport function not returning are functions that throw so we translate
- * the noreturn functions in throwing functions taking also into account
- * exception support activation.
- */
-#if defined (_STLP_NORETURN_FUNCTION) && !defined (_STLP_NO_EXCEPTIONS) && \
- !defined (_STLP_FUNCTION_THROWS)
-# define _STLP_FUNCTION_THROWS _STLP_NORETURN_FUNCTION
-#else
-# define _STLP_FUNCTION_THROWS
-#endif
-
-#if defined(_STLP_NO_BOOL)
-# if (defined (__IBMCPP__) && (__IBMCPP__ < 400)) && ! defined (_AIX)
-# include <isynonym.hpp>
-# if defined (__OS400__)
-typedef int bool;
-# elif !( defined (__xlC__) || defined (_AIX))
-typedef Boolean bool;
-# endif
-# else
-# if defined(_STLP_YVALS_H)
-# include <yvals.h>
-# else
-# if defined (_STLP_DONT_USE_BOOL_TYPEDEF)
-# define bool int
-# else
-typedef int bool;
-# endif
-# define true 1
-# define false 0
-# endif
-# endif /* __IBMCPP__ */
-#else
-# define _STLP_BOOL_KEYWORD 1
-#endif /* _STLP_NO_BOOL */
-
-/* uninitialized value filler */
-#ifndef _STLP_SHRED_BYTE
-/* This value is designed to cause problems if an error occurs */
-# define _STLP_SHRED_BYTE 0xA3
-#endif /* _STLP_SHRED_BYTE */
-
-/* shared library tune-up */
-#ifndef _STLP_IMPORT_DECLSPEC
-# define _STLP_IMPORT_DECLSPEC
-#endif
-
-/* a keyword used to instantiate export template */
-#ifndef _STLP_EXPORT_TEMPLATE_KEYWORD
-# define _STLP_EXPORT_TEMPLATE_KEYWORD
-#endif
-#ifndef _STLP_IMPORT_TEMPLATE_KEYWORD
-# define _STLP_IMPORT_TEMPLATE_KEYWORD
-#endif
-
-#if !defined (_STLP_NO_CONST_IN_PAIR)
-# define _STLP_CONST const
-#else
-# define _STLP_CONST
-#endif
-
-#ifdef _STLP_USE_NO_IOSTREAMS
-/*
- * If we do not use iostreams we do not use the export/import
- * techniques to avoid build of the STLport library.
- */
-# undef _STLP_USE_DECLSPEC
-/* We also undef USE_DYNAMIC_LIB macro as this macro add some code
- * to use the dynamic (shared) STLport library for some platform/compiler
- * configuration leading to problem when not linking to the STLport lib.
- */
-# undef _STLP_USE_DYNAMIC_LIB
-#endif
-
-#if defined (_STLP_DLLEXPORT_NEEDS_PREDECLARATION) && defined (_STLP_USE_DECLSPEC)
-# if ! defined (_STLP_USE_TEMPLATE_EXPORT)
-/* this setting turns on "extern template" extension use */
-# define _STLP_USE_TEMPLATE_EXPORT
-# endif
-# if defined (_STLP_DESIGNATED_DLL) && ! defined (_STLP_NO_FORCE_INSTANTIATE)
-# define _STLP_NO_FORCE_INSTANTIATE
-# endif
-#endif
-
-#if defined (_STLP_DESIGNATED_DLL) /* This is a lib which will contain STLport exports */
-# define _STLP_EXPORT _STLP_EXPORT_TEMPLATE_KEYWORD
-#else
-# define _STLP_EXPORT _STLP_IMPORT_TEMPLATE_KEYWORD
-#endif
-
-#ifndef _STLP_EXPORT_TEMPLATE
-# define _STLP_EXPORT_TEMPLATE _STLP_EXPORT template
-#endif
-
-#if defined (_STLP_USE_DECLSPEC) /* using export/import technique */
-
-# ifndef _STLP_EXPORT_DECLSPEC
-# define _STLP_EXPORT_DECLSPEC
-# endif
-# ifndef _STLP_IMPORT_DECLSPEC
-# define _STLP_IMPORT_DECLSPEC
-# endif
-# ifndef _STLP_CLASS_EXPORT_DECLSPEC
-# define _STLP_CLASS_EXPORT_DECLSPEC
-# endif
-# ifndef _STLP_CLASS_IMPORT_DECLSPEC
-# define _STLP_CLASS_IMPORT_DECLSPEC
-# endif
-# if defined (_STLP_DESIGNATED_DLL) /* This is a lib which will contain STLport exports */
-# define _STLP_DECLSPEC _STLP_EXPORT_DECLSPEC
-# define _STLP_CLASS_DECLSPEC _STLP_CLASS_EXPORT_DECLSPEC
-# else
-# define _STLP_DECLSPEC _STLP_IMPORT_DECLSPEC /* Other modules, importing STLport exports */
-# define _STLP_CLASS_DECLSPEC _STLP_CLASS_IMPORT_DECLSPEC
-# endif
-
-#else /* Not using DLL export/import specifications */
-
-# define _STLP_DECLSPEC
-# define _STLP_CLASS_DECLSPEC
-
-#endif
-
-#define _STLP_EXPORT_TEMPLATE_CLASS _STLP_EXPORT template class _STLP_CLASS_DECLSPEC
-
-#if defined (_STLP_NEED_ADDITIONAL_STATIC_DECLSPEC)
-# define _STLP_STATIC_DECLSPEC _STLP_DECLSPEC
-#else
-# define _STLP_STATIC_DECLSPEC
-#endif
-
-#if !defined (_STLP_CALL)
-# define _STLP_CALL
-#endif
-
-#ifndef _STLP_USE_NO_IOSTREAMS
-
-# if defined (__DECCXX) && ! defined (__USE_STD_IOSTREAM)
-# define __USE_STD_IOSTREAM
-# endif
-
-/* We only need to expose details of streams implementation
- if we use non-standard i/o or are building STLport*/
-# if defined (__BUILDING_STLPORT) || defined (_STLP_NO_FORCE_INSTANTIATE) || !defined(_STLP_NO_CUSTOM_IO)
-# define _STLP_EXPOSE_STREAM_IMPLEMENTATION 1
-# endif
-
-/* We only need to expose details of global implementation if we are building STLport
- or have not instantiated everything in the lib */
-# if defined (__BUILDING_STLPORT) || defined (_STLP_NO_FORCE_INSTANTIATE)
-# undef _STLP_EXPOSE_GLOBALS_IMPLEMENTATION
-# define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION 1
-# endif
-
-#else /* _STLP_USE_NO_IOSTREAMS */
-/* when we are not using SGI iostreams, we must expose globals, but not streams implementation */
-# define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION
-#endif /* _STLP_USE_NO_IOSTREAMS */
-
-#ifdef _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
-# define _STLP_PSPEC2(t1,t2) < t1,t2 >
-# define _STLP_PSPEC3(t1,t2,t3) < t1,t2,t3 >
-#else
-# define _STLP_PSPEC2(t1,t2) /* nothing */
-# define _STLP_PSPEC3(t1,t2,t3) /* nothing */
-#endif
-
-/* Activation of the partial template workaround:
- */
-#if !defined(_STLP_DONT_USE_PARTIAL_SPEC_WRKD) &&\
- (!defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || !defined(_STLP_FUNCTION_TMPL_PARTIAL_ORDER))
-# define _STLP_USE_PARTIAL_SPEC_WORKAROUND
-#endif
-
-#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE
-# define _STLP_RELOPS_OPERATORS(_TMPL, _TP) \
-_TMPL inline bool _STLP_CALL operator!=(const _TP& __x, const _TP& __y) {return !(__x == __y);}\
-_TMPL inline bool _STLP_CALL operator>(const _TP& __x, const _TP& __y) {return __y < __x;}\
-_TMPL inline bool _STLP_CALL operator<=(const _TP& __x, const _TP& __y) { return !(__y < __x);}\
-_TMPL inline bool _STLP_CALL operator>=(const _TP& __x, const _TP& __y) { return !(__x < __y);}
-#else
-# define _STLP_RELOPS_OPERATORS(_TMPL, _TP)
-#endif
-
-#if defined ( _STLP_USE_ABBREVS )
-# include <stl/_abbrevs.h>
-#endif
-
-/* Some really useful macro */
-#define _STLP_ARRAY_SIZE(A) sizeof(A) / sizeof(A[0])
-#define _STLP_ARRAY_AND_SIZE(A) A, sizeof(A) / sizeof(A[0])
-
-#if !defined (_STLP_MARK_PARAMETER_AS_UNUSED)
-# define _STLP_MARK_PARAMETER_AS_UNUSED(X) (void*)X;
-#endif
-
-#if defined (_STLP_CHECK_RUNTIME_COMPATIBILITY)
-# if defined (_STLP_USE_NO_IOSTREAMS)
-# undef _STLP_CHECK_RUNTIME_COMPATIBILITY
-# else
-/* The extern "C" simply makes the symbol simpler. */
-#if defined (__cplusplus)
-extern "C"
-#endif
-void _STLP_DECLSPEC _STLP_CALL _STLP_CHECK_RUNTIME_COMPATIBILITY();
-# endif
-#endif
-
-/* some cleanup */
-#undef _STLP_DONT_USE_BOOL_TYPEDEF
-#undef _STLP_YVALS_H
-#undef _STLP_LOOP_INLINE_PROBLEMS
-#undef _STLP_NEED_EXPLICIT
-#undef _STLP_NEED_TYPENAME
-#undef _STLP_NO_NEW_STYLE_CASTS
-#undef __AUTO_CONFIGURED
-
-#endif /* _STLP_FEATURES_H */
diff --git a/stlport/stlport/stl/config/host.h b/stlport/stlport/stl/config/host.h
deleted file mode 100644
index b4b6089..0000000
--- a/stlport/stlport/stl/config/host.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * This file defines site configuration.
- */
-
-/*
- * _STLP_NO_THREADS: if defined, STLport don't use any
- * multithreading support. Synonym is _NOTHREADS
- */
-/*
-#define _NOTHREADS
-#define _STLP_NO_THREADS
-*/
-
-/* _PTHREADS: if defined, use POSIX threads for multithreading support. */
-/*
-#define _PTHREADS
-*/
-
-/* compatibility section
- */
-
-#if (defined (_STLP_NOTHREADS) || defined (_STLP_NO_THREADS) || defined (NOTHREADS))
-# if !defined (_NOTHREADS)
-# define _NOTHREADS
-# endif
-# if !defined (_STLP_NO_THREADS)
-# define _STLP_NO_THREADS
-# endif
-#endif
-
-#if !defined(_STLP_USE_DYNAMIC_LIB) && !defined(_STLP_USE_STATIC_LIB)
-/*
- * Turn _STLP_USE_DYNAMIC_LIB to enforce use of .dll version of STLport library.
- * NOTE: please do that only if you know what you are doing!
- * Changing default will require you to change makefiles in "build" accordingly
- * and to rebuild STLPort library!
- * On UNIX, this has no effect, see build/lib/README for make tags.
- * See STLport configuration file (build/lib/configure.bat) for help in building
- * the require library versions.
- */
-/*
-#define _STLP_USE_DYNAMIC_LIB
-*/
-
-/*
- * Turn _STLP_USE_STATIC_LIB to enforce use of static version of STLport library.
- * NOTE: please do that only if you know what you are doing!
- * Changing default will require you to change makefile in "build" accordingly
- * and to rebuild STLPort library!
- * On UNIX, this has no effect, see build/lib/README for make tags.
- * See STLport configuration file (build/lib/configure.bat) for help in building
- * the require library versions.
- */
-/*
-#define _STLP_USE_STATIC_LIB
-*/
-#endif
-
-/*
- * Edit relative path below (or put full path) to get native
- * compiler vendor's headers included. Default is "../include"
- * for _STLP_NATIVE_INCLUDE_PATH, default for other macros is
- * _STLP_NATIVE_INCLUDE_PATH.
- * Hint: never install STLport in the directory that ends with "include"
- */
-/*
-#undef _STLP_NATIVE_INCLUDE_PATH
-#define _STLP_NATIVE_INCLUDE_PATH ../include
-*/
-/* same for C library headers like <cstring> */
-/*
-#undef _STLP_NATIVE_CPP_C_INCLUDE_PATH
-#define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
-*/
-/* same for C headers like <string.h> */
-/*
-#undef _STLP_NATIVE_C_INCLUDE_PATH
-#define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
-*/
-/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */
-/*
-#undef _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH
-#define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
-*/
-
-/*
- * If namespases available, STLport use own namespace (and masquerade
- * it as std). Disable own namespace may cause undefined behaviour.
- */
-/*
-#define _STLP_NO_OWN_NAMESPACE 1
-*/
-
-/*
- * Uncomment _STLP_LEAKS_PEDANTIC to force deallocation of ALL allocated
- * memory chunks. Normally not required. But if you worry about quazi-leaks
- * (may be reported by some leaks detection tools), use
- * _STLP_LEAKS_PEDANTIC. It should be used with _STLP_USE_NEWALLOC or
- * _STLP_USE_MALLOC (see below), the default node_alloc allocator also clean
- * its internal memory pool but only if STLport is used as a dynamic library
- * under Win32 (using MSVC like compilers).
- */
-/*
-#define _STLP_LEAKS_PEDANTIC 1
-*/
-
-/*
- * Uncomment _STLP_USE_NEWALLOC to force allocator<T> to use plain "new"
- * instead of STLport optimized node allocator engine.
- */
-/*
-#define _STLP_USE_NEWALLOC 1
-*/
-
-/*
- * Uncomment _STLP_USE_MALLOC to force allocator<T> to use plain "malloc"
- * instead of STLport optimized node allocator engine.
- *
- * This is default allocator for glibc 2.3.x and later, if not mentioned other
- */
-/*
-#define _STLP_USE_MALLOC 1
-*/
-
-/*
- * Uncomment _STLP_USE_PERTHREAD_ALLOC to force allocator<T> to use
- * a specific implementation targetting the massively multi-threaded
- * environment. The implementation is based on the POSIX pthread
- * interface.
- */
-/*
-#define _STLP_USE_PERTHREAD_ALLOC 1
-*/
-
-/*
- * Uncomment _STLP_USE_NODE_ALLOC if you want to force allocator<T> to use
- * "node_alloc" allocator (this is default allocator for STLport, if not
- * used other above, except glibc 2.3.x and later, where default is
- * "malloc", due to better results)
- */
-/*
-#define _STLP_USE_NODE_ALLOC 1
-*/
-
-/*
- * Set _STLP_DEBUG_ALLOC to use allocators that perform memory debugging,
- * such as padding/checking for memory consistency
- */
-/*
-#define _STLP_DEBUG_ALLOC 1
-*/
-
-/*
- * For compiler not supporting partial template specialization or ordering of
- * template functions STLport implement a workaround based on inheritance
- * detection. This inheritance can introduce trouble in client code when
- * a user class derived a STL container (which is not advised as STL containers
- * do not have virtual destructors). To disable this workaround turn this macro on:
- */
-/*
-#define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1
-*/
-
-/*
- * Uncomment this to force all debug diagnostic to be directed through a
- * user-defined global function:
- * void __stl_debug_message(const char * format_str, ...)
- * instead of predefined STLport routine.
- * This allows you to take control of debug message output.
- * Default routine calls fprintf(stderr,...)
- * Note : If you set this macro, you must supply __stl_debug_message
- * function definition somewhere.
- */
-/*
-#define _STLP_DEBUG_MESSAGE 1
-*/
-
-/*
- * Uncomment this to force all failed assertions to be executed through
- * user-defined global function:
- * void __stl_debug_terminate(void). This allows
- * you to take control of assertion behaviour for debugging purposes.
- * Default routine calls _STLP_ABORT().
- * Note : If you set this macro, you must supply __stl_debug_terminate
- * function definition somewhere.
- */
-/*
-#define _STLP_DEBUG_TERMINATE 1
-*/
-
-/*
- * Uncomment that to disable exception handling code
- */
-/*
-#define _STLP_DONT_USE_EXCEPTIONS 1
-*/
-
-/*
- * _STLP_NO_NAMESPACES: if defined, don't put the library in namespace
- * stlport:: or std::, even if the compiler supports namespaces
- */
-/*
-#define _STLP_NO_NAMESPACES 1
-*/
-
-/*==========================================================
- * Compatibility section
- *==========================================================*/
-
-/*
- * Use abbreviated class names for linker benefit (don't affect interface).
- * This option is obsolete, but should work in this release.
- *
- */
-/*
-#define _STLP_USE_ABBREVS
-*/
-
-/*
- * This definition precludes STLport reverse_iterator to be compatible with
- * other parts of MSVC library. (With partial specialization, it just
- * has no effect).
- * Use it _ONLY_ if you use SGI-style reverse_iterator<> template explicitly
- */
-/*
-#define _STLP_NO_MSVC50_COMPATIBILITY 1
-*/
-
-/*
- * Use obsolete overloaded template functions iterator_category(), value_type(), distance_type()
- * for querying iterator properties. Please note those names are non-standard and are not guaranteed
- * to be used by every implementation. However, this setting is on by default when partial specialization
- * is not implemented in the compiler and cannot be simulated (only if _STLP_NO_ANACHRONISMS is not set).
- * Use of those interfaces for user-defined iterators is strongly discouraged:
- * please use public inheritance from iterator<> template to achieve desired effect.
- * Second form is to disable old-style queries in any case.
- */
-/*
-#define _STLP_USE_OLD_HP_ITERATOR_QUERIES
-#define _STLP_NO_OLD_HP_ITERATOR_QUERIES
-*/
-
-
-/*
- * On systems with support of large files (_LARGEFILE_SOURCE,
- * _LARGEFILE64_SOURCE defined) we will use 64-bit file offset, even if
- * __USE_FILE_OFFSET64 or _FILE_OFFSET_BITS not defined or _FILE_OFFSET_BITS
- * less than 64. In the last case sizeof(std::streamoff) may not be equal to
- * sizeof(off_t); if you want to force equal size of off_t and streamoff,
- * uncomment macro below. But pay attention, this has influence on libstlport
- * and in future usage it may cause conflict with defined _FILE_OFFSET_BITS macro.
- */
-
-/*
-#define _STLP_USE_DEFAULT_FILE_OFFSET
-*/
-
-/*
- * _STLP_USE_STDIO_IO, _STLP_USE_UNIX_IO: force selection of stdio calls
- * (fopen/flose/fread/fwrite) under fstream buffers or unistd calls
- * (open/close/read/write + mmap). On systems that have both (i.e. most Unixes)
- * _STLP_USE_UNIX_IO is used.
- *
- * There is a third variant for Windows: _STLP_USE_WIN32_IO, that based
- * on Windows calls (CreateFile/CloseHandle/ReadFile/WriteFile + CreateFileMapping,
- * MapViewOfFile)
- *
- * Uncomment only one define here!
- */
-/*
-#define _STLP_USE_UNIX_IO
-*/
-/*
-#define _STLP_USE_STDIO_IO
-*/
-/*
-#define _STLP_USE_WIN32_IO
- */
-
-/*==========================================================================*/
-
-/* This section contains swithes which should be off by default,
- * but so few compilers would have it undefined, so that we set them here,
- * with the option to be turned off later in compiler-specific file
- */
-
-#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
-#define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
-
-/*==========================================================================*/
-
-#if defined(__sun) && defined(__GNUC__)
-/* __SunOS_5_x is not defined in headers, and there is no way to derive it from headers only;
- * nevertheless this macro defined automagically by SunPro compilers family;
- *
- * gcc know nothing about it, but defining it with -D on compiler command line
- * is a bad idea from one side, and this info still useful when we want to use
- * (or don't use) some Solaris version-specific features from other side.
- * Of course, the best way is to define it in spec file, but this is beyond our scope.
- *
- * Uncomment ONE of the following, depends on what Solaris version you use.
- */
-
-/*
-#define __SunOS_5_5_1
- */
-/*
-#define __SunOS_5_6
- */
-/*
-#define __SunOS_5_7
- */
-/*
-#define __SunOS_5_8
- */
-/*
-#define __SunOS_5_9
- */
-/*
-#define __SunOS_5_10
- */
-#endif
-
-#if defined(__sun)
-/* With following patches Solaris 8 and 9 will have *l and *f (long double and float)
- * variants of math functions:
- * SunOS 5.8 patch 111721-04 (May/08/2003)
- * <http://sunsolve.sun.com/search/document.do?assetkey=1-21-111721-04-1>
- * SunOS 5.9 patch 111722-04 (May/08/2003)
- * <http://sunsolve.sun.com/search/document.do?assetkey=1-21-111722-04-1>
- * Solaris 10 has this functions from box.
- */
-/*
-#define _STLP_SOLARIS_MATH_PATCH
- */
-#endif
-
-/*
- Local Variables:
- mode:C++
- End:
-*/
diff --git a/stlport/stlport/stl/config/stl_confix.h b/stlport/stlport/stl/config/stl_confix.h
deleted file mode 100644
index ddcdf1d..0000000
--- a/stlport/stlport/stl/config/stl_confix.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/*
- * STLport configuration file
- * It is internal STLport header - DO NOT include it directly
- * Purpose of this file : to define STLport settings that depend on
- * compiler flags or can be otherwise missed
- *
- */
-
-#ifndef _STLP_CONFIX_H
-#define _STLP_CONFIX_H
-
-/* If, by any chance, C compiler gets there, try to help it to pass smoothly */
-#if ! defined (__cplusplus) && ! defined (_STLP_HAS_NO_NAMESPACES)
-# define _STLP_HAS_NO_NAMESPACES
-#endif
-
-#if defined (__MINGW32__)
-# define _STLP_NO_DRAND48
-#endif
-
-/* Modena C++ library */
-#if defined (__MWERKS__) && __MWERKS__ <= 0x2303 || (defined (__KCC) && __KCC_VERSION < 3400)
-# include <mcompile.h>
-# define _STLP_USE_MSIPL 1
-# if defined (__KCC) || (defined(__MSL_CPP__) && \
- ( (__MSL_CPP__ >= 0x5000 && defined( _MSL_NO_MESSAGE_FACET )) || \
- (__MSL_CPP__ < 0x5000 && defined( MSIPL_NL_TYPES ))))
-# define _STLP_NO_NATIVE_MESSAGE_FACET 1
-# endif
-#endif
-
-/* common switches for EDG front-end */
-/* __EDG_SWITCHES do not seem to be an official EDG macro.
- * We keep it for historical reason. */
-#if defined (__EDG_SWITCHES)
-# if !(defined(_TYPENAME) || defined (_TYPENAME_IS_KEYWORD))
-# undef _STLP_NEED_TYPENAME
-# define _STLP_NEED_TYPENAME 1
-# endif
-# ifndef _WCHAR_T_IS_KEYWORD
-# undef _STLP_NO_WCHAR_T
-# define _STLP_NO_WCHAR_T 1
-# endif
-# ifndef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES
-# undef _STLP_NO_CLASS_PARTIAL_SPECIALIZATION
-# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
-# endif
-# ifndef _MEMBER_TEMPLATES
-# undef _STLP_NO_MEMBER_TEMPLATES
-# define _STLP_NO_MEMBER_TEMPLATES 1
-# undef _STLP_NO_MEMBER_TEMPLATE_CLASSES
-# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
-# endif
-# ifndef _MEMBER_TEMPLATE_KEYWORD
-# undef _STLP_NO_MEMBER_TEMPLATE_KEYWORD
-# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
-# endif
-# if !defined (__EXCEPTIONS) && ! defined (_EXCEPTIONS)
-# undef _STLP_HAS_NO_EXCEPTIONS
-# define _STLP_HAS_NO_EXCEPTIONS
-# endif
-# undef __EDG_SWITCHES
-#endif /* EDG */
-
-/* __EDG_VERSION__ is an official EDG macro, compilers based
- * on EDG have to define it. */
-#if defined (__EDG_VERSION__)
-# if (__EDG_VERSION__ >= 244) && !defined (_STLP_HAS_INCLUDE_NEXT)
-# define _STLP_HAS_INCLUDE_NEXT
-# endif
-# if (__EDG_VERSION__ <= 240) && !defined (_STLP_DONT_RETURN_VOID)
-# define _STLP_DONT_RETURN_VOID
-# endif
-# if !defined (__EXCEPTIONS) && !defined (_STLP_HAS_NO_EXCEPTIONS)
-# define _STLP_HAS_NO_EXCEPTIONS
-# endif
-# if !defined (__NO_LONG_LONG) && !defined (_STLP_LONG_LONG)
-# define _STLP_LONG_LONG long long
-# endif
-#endif
-
-#endif
diff --git a/stlport/stlport/stl/config/user_config.h b/stlport/stlport/stl/config/user_config.h
deleted file mode 100755
index 9539a29..0000000
--- a/stlport/stlport/stl/config/user_config.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Copyright (c) 2010, The Linux Foundation. All rights reserved.
- */
-
-/*
- * Purpose of this file :
- *
- * To hold user-definable portion of STLport settings which may be overridden
- * on per-project basis.
- * Please note that if you use STLport iostreams (compiled library) then you have
- * to use consistent settings when you compile STLport library and your project.
- * Those settings are defined in host.h and have to be the same for a given
- * STLport installation.
- */
-
-/*==========================================================
- * User-settable macros that control compilation:
- * Features selection
- *==========================================================*/
-
-/*
- * Use this switch for embedded systems where no iostreams are available
- * at all. STLport own iostreams will also get disabled automatically then.
- * You can either use STLport iostreams, or no iostreams.
- * If you want iostreams, you have to compile library in ../build/lib
- * and supply resulting library at link time.
- */
-#define _STLP_NO_IOSTREAMS 1
-
-/*
- * Set _STLP_DEBUG to turn the "Debug Mode" on.
- * That gets you checked iterators/ranges in the manner
- * of "Safe STL". Very useful for debugging. Thread-safe.
- * Please do not forget to link proper STLport library flavor
- * (e.g libstlportstlg.so or libstlportstlg.a) when you set this flag
- * in STLport iostreams mode, namespace customization guaranty that you
- * link to the right library.
- */
-/*
-#define _STLP_DEBUG 1
-*/
-/*
- * You can also choose the debug level:
- * STLport debug level: Default value
- * Check only what the STLport implementation consider as invalid.
- * It also change the iterator invalidation schema.
- * Standard debug level: Check for all operations the standard consider as "undefined behavior"
- * even if STlport implement it correctly. It also invalidates iterators
- * more often.
- */
-/*
-#define _STLP_DEBUG_LEVEL _STLP_STLPORT_DBG_LEVEL
-#define _STLP_DEBUG_LEVEL _STLP_STANDARD_DBG_LEVEL
-*/
-/* When an inconsistency is detected by the 'safe STL' the program will abort.
- * If you prefer an exception define the following macro. The thrown exception
- * will be the Standard runtime_error exception.
- */
-/*
-#define _STLP_DEBUG_MODE_THROWS
- */
-
-/*
- * _STLP_NO_CUSTOM_IO : define this if you do not instantiate basic_xxx iostream
- * classes with custom types (which is most likely the case). Custom means types
- * other than char, wchar_t, char_traits<> and allocator<> like
- * basic_ostream<my_char_type, my_traits<my_char_type> > or
- * basic_string<char, char_traits<char>, my_allocator >
- * When this option is on, most non-inline template functions definitions for iostreams
- * are not seen by the client which saves a lot of compile time for most compilers,
- * also object and executable size for some.
- * Default is off, just not to break compilation for those who do use those types.
- * That also guarantees that you still use optimized standard i/o when you compile
- * your program without optimization. Option does not affect STLport library build; you
- * may use the same binary library with and without this option, on per-project basis.
- */
-/*
-#define _STLP_NO_CUSTOM_IO
-*/
-
-/*
- * _STLP_NO_RELOPS_NAMESPACE: if defined, don't put the relational
- * operator templates (>, <=, >=, !=) in namespace std::rel_ops, even
- * if the compiler supports namespaces.
- * Note : if the compiler do not support namespaces, those operators are not be provided by default,
- * to simulate hiding them into rel_ops. This was proved to resolve many compiler bugs with ambiguity.
- */
-/*
-#define _STLP_NO_RELOPS_NAMESPACE 1
-*/
-
-/*
- * If STLport use its own namespace, see _STLP_NO_OWN_NAMESPACE in host.h, it will try
- * by default to rename std:: for the user to stlport::. If you do not want this feature,
- * please define the following switch and then use stlport::
- */
-/*
-#define _STLP_DONT_REDEFINE_STD 1
-*/
-
-/*
- * _STLP_WHOLE_NATIVE_STD : only meaningful if STLport uses its own namespace.
- * Normally, STLport only imports necessary components from native std:: namespace.
- * You might want everything from std:: being available in std:: namespace when you
- * include corresponding STLport header (like STLport <map> provides std::map as well, etc.),
- * if you are going to use both stlport:: and std:: components in your code.
- * Otherwise this option is not recommended as it increases the size of your object files
- * and slows down compilation.
- * Beware, if you do not use STLport iostream (_STLP_NO_IOSTREAMS above), ask STLport to
- * not rename std:: in stlport:: and try to have access to whole native Standard stuff then
- * STLport will only throw exceptions from the std namespace and not from stlport.
- * For instance a problem in stlport::vector::at will throw a std::out_of_range exception
- * and not a stlport::out_of_range.
- * Notice that STLport exceptions inherits from std::exception.
- */
-/*
-#define _STLP_WHOLE_NATIVE_STD
-*/
-
-/*
- * Use this option to catch uninitialized members in your classes.
- * When it is set, construct() and destroy() fill the class storage
- * with _STLP_SHRED_BYTE (see below).
- * Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically.
- */
-/*
-#define _STLP_DEBUG_UNINITIALIZED 1
-#define _STLP_DEBUG_ALLOC 1
-*/
-
-/*
- * Uncomment and provide a definition for the byte with which raw memory
- * will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED is defined.
- * Choose a value which is likely to cause a noticeable problem if dereferenced
- * or otherwise abused. A good value may already be defined for your platform.
- */
-/*
-#define _STLP_SHRED_BYTE 0xA3
-*/
-
-/*
- * This option is for gcc users only and only affects systems where native linker
- * does not let gcc to implement automatic instantiation of static template data members/
- * It is being put in this file as there is no way to check if we are using GNU ld automatically,
- * so it becomes user's responsibility.
- */
-/*
-#define _STLP_GCC_USES_GNU_LD
-*/
-
-/*==========================================================
- * Compatibility section
- *==========================================================*/
-
-/*
- * Define this macro to disable anachronistic constructs (like the ones used in HP STL and
- * not included in final standard, etc.
- */
-/*
-#define _STLP_NO_ANACHRONISMS 1
-*/
-
-/*
- * Define this macro to disable STLport extensions (for example, to make sure your code will
- * compile with some other implementation )
- */
-/*
-#define _STLP_NO_EXTENSIONS 1
-*/
-
-/*
- * You should define this macro if compiling with MFC - STLport <stl/config/_windows.h>
- * then include <afx.h> instead of <windows.h> to get synchronisation primitives
- */
-/*
-#define _STLP_USE_MFC 1
-*/
-
-/*
- * boris : this setting is here as we cannot detect precense of new Platform SDK automatically
- * If you are using new PSDK with VC++ 6.0 or lower,
- * please define this to get correct prototypes for InterlockedXXX functions
- */
-/*
-#define _STLP_NEW_PLATFORM_SDK 1
-*/
-
-/*
- * For the same reason as the one above we are not able to detect easily use
- * of the compiler coming with the Platform SDK instead of the one coming with
- * a Microsoft Visual Studio release. This change native C/C++ library location
- * and implementation, please define this to get correct STLport configuration.
- */
-/*
-#define _STLP_USING_PLATFORM_SDK_COMPILER 1
-*/
-
-/*
- * Some compilers support the automatic linking feature.
- * Uncomment the following if you prefer to specify the STLport library
- * to link with yourself.
- * For the moment, this feature is only supported and implemented within STLport
- * by the Microsoft compilers.
- */
-#define _STLP_DONT_USE_AUTO_LINK 1
-
-/*
- * If you customize the STLport generated library names don't forget to give
- * the motif you used during configuration here if you still want the auto link
- * to work. (Do not remove double quotes in the macro value)
- */
-/*
-#define _STLP_LIB_NAME_MOTIF "???"
- */
-
-/*
- * Uncomment to get feedback at compilation time about result of build environment
- * introspection.
- */
-/*
-#define _STLP_VERBOSE 1
-*/
-
-/*
- * Use minimum set of default arguments on template classes that have more
- * than one - for example map<>, set<>.
- * This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on.
- * If _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is set, you'll be able to compile
- * set<T> with those compilers, but you'll have to use __set__<T, less<T>>
- *
- * Affects : map<>, multimap<>, set<>, multiset<>, hash_*<>,
- * queue<>, priority_queue<>, stack<>, istream_iterator<>
- */
-/*
-#define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS 1
-*/
-
-/*
- * The agregation of strings using the + operator is an expensive operation
- * as it requires construction of temporary objects that need memory allocation
- * and deallocation. The problem can be even more important if you are adding
- * several strings together in a single expression. To avoid this problem STLport
- * implement expression template. With this technique addition of 2 strings is not
- * a string anymore but a temporary object having a reference to each of the
- * original strings involved in the expression. This object carry information
- * directly to the destination string to set its size correctly and only make
- * a single call to the allocator. This technique also works for the addition of
- * N elements where elements are basic_string, C string or a single character.
- * The drawback can be longer compilation time and bigger executable size.
- * Another problem is that some compilers (gcc) fail to use string proxy object
- * if do with class derived from string (see unit tests for details).
- * STLport rebuild: Yes
- */
-/*
-#define _STLP_USE_TEMPLATE_EXPRESSION 1
-*/
-
-
-/*
- * By default the STLport basic_string implementation use a little static buffer
- * (of 16 chars when writing this doc) to avoid systematically memory allocation
- * in case of little basic_string. The drawback of such a method is bigger
- * basic_string size and some performance penalty for method like swap. If you
- * prefer systematical dynamic allocation turn on this macro.
- * STLport rebuild: Yes
- */
-/*
-#define _STLP_DONT_USE_SHORT_STRING_OPTIM 1
-*/
-
-/*
- * To reduce the famous code bloat trouble due to the use of templates STLport grant
- * a specialization of some containers for pointer types. So all instanciations
- * of those containers with a pointer type will use the same implementation based on
- * a container of void*. This feature has shown very good result on object files size
- * but after link phase and optimization you will only experiment benefit if you use
- * many container with pointer types.
- * There are however a number of limitation to use this option:
- * - with compilers not supporting partial template specialization feature, you won't
- * be able to access some nested container types like iterator as long as the
- * definition of the type used to instanciate the container will be incomplete
- * (see IncompleteClass definition in test/unit/vector_test.cpp).
- * - you won't be able to use complex Standard allocator implementations which are
- * allocators having pointer nested type not being a real C pointer.
- */
-/*
-#define _STLP_USE_PTR_SPECIALIZATIONS 1
-*/
-
-/*
- * To achieve many different optimizations within the template implementations STLport
- * uses some type traits technique. With this macro you can ask STLport to use the famous
- * boost type traits rather than the internal one. The advantages are more compiler
- * integration and a better support. If you only define this macro once the STLport has been
- * built you just have to add the boost install path within your include path. If you want
- * to use this feature at STLport built time you will have to define the
- * STLP_BUILD_BOOST_PATH enrironment variable with the value of the boost library path.
- */
-
-/*
-#define _STLP_USE_BOOST_SUPPORT 1
-*/
-
-
-/*==========================================================*/
-
-/*
- Local Variables:
- mode: C++
- End:
-*/
diff --git a/stlport/stlport/stl/debug/_debug.h b/stlport/stlport/stl/debug/_debug.h
deleted file mode 100644
index 6a2a8ce..0000000
--- a/stlport/stlport/stl/debug/_debug.h
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_DEBUG_H
-#define _STLP_DEBUG_H
-
-#if (defined (_STLP_DEBUG) || defined (_STLP_DEBUG_ALLOC)) && \
- !defined (_STLP_ASSERTIONS)
-# define _STLP_ASSERTIONS 1
-#endif
-
-#if defined (_STLP_ASSERTIONS)
-
-# if !defined (_STLP_FILE__)
-# define _STLP_FILE__ __FILE__
-# endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-enum {
- //General errors
- _StlFormat_ERROR_RETURN,
- _StlFormat_ASSERTION_FAILURE,
- _StlFormat_VERBOSE_ASSERTION_FAILURE,
- _StlMsg_INVALID_ARGUMENT,
- //Container/Iterator related errors
- _StlMsg_INVALID_CONTAINER,
- _StlMsg_EMPTY_CONTAINER,
- _StlMsg_ERASE_PAST_THE_END,
- _StlMsg_OUT_OF_BOUNDS,
- _StlMsg_NOT_OWNER,
- _StlMsg_SHOULD_NOT_OWNER,
- _StlMsg_INVALID_ITERATOR,
- _StlMsg_INVALID_LEFTHAND_ITERATOR,
- _StlMsg_INVALID_RIGHTHAND_ITERATOR,
- _StlMsg_DIFFERENT_OWNERS ,
- _StlMsg_NOT_DEREFERENCEABLE ,
- _StlMsg_INVALID_RANGE ,
- _StlMsg_NOT_IN_RANGE_1 ,
- _StlMsg_NOT_IN_RANGE_2 ,
- _StlMsg_INVALID_ADVANCE ,
- _StlMsg_SINGULAR_ITERATOR ,
- //Bad predicate for sorting
- _StlMsg_INVALID_STRICT_WEAK_PREDICATE,
- _StlMsg_INVALID_EQUIVALENT_PREDICATE,
- // debug alloc messages
- _StlMsg_DBA_DELETED_TWICE ,
- _StlMsg_DBA_NEVER_ALLOCATED ,
- _StlMsg_DBA_TYPE_MISMATCH ,
- _StlMsg_DBA_SIZE_MISMATCH ,
- _StlMsg_DBA_UNDERRUN ,
- _StlMsg_DBA_OVERRUN ,
- // auto_ptr messages
- _StlMsg_AUTO_PTR_NULL ,
- //Memory alignent message
- _StlMsg_WRONG_MEMORY_ALIGNMENT,
- _StlMsg_UNKNOWN
- /* _StlMsg_MAX */
-};
-
-/* have to hardcode that ;() */
-# define _StlMsg_MAX 31
-
-class __owned_link;
-class __owned_list;
-
-# if defined (_STLP_DEBUG_MODE_THROWS)
-# define _STLP_MESSAGE_NORETURN _STLP_FUNCTION_THROWS
-# else
-# define _STLP_MESSAGE_NORETURN
-# endif
-
-template <class _Dummy>
-class __stl_debug_engine {
-public:
- // Basic routine to report any debug message
- // Use _STLP_DEBUG_MESSAGE to override
- static void _STLP_MESSAGE_NORETURN _STLP_CALL _Message(const char * format_str, ...);
-
- // Micsellanous function to report indexed error message
- static void _STLP_CALL _IndexedError(int __ind, const char* __f, int __l);
-
- // Basic assertion report mechanism.
- // Reports failed assertion via __stl_debug_message and calls _Terminate
- // if _STLP_DEBUG_TERMINATE is specified, calls __stl_debug_terminate instead
- static void _STLP_CALL _Assert(const char* __expr, const char* __f, int __l);
-
- // The same, with additional diagnostics
- static void _STLP_CALL _VerboseAssert(const char* __expr, int __error_ind, const char* __f, int __l);
-
- // If exceptions are present, sends unique exception
- // If not, calls _STLP_ABORT() to terminate
- // Use _STLP_DEBUG_TERMINATE to override
- static void _STLP_CALL _Terminate();
-
-# if defined (_STLP_DEBUG)
- // owned_list/link delegate non-inline functions here
-
- static bool _STLP_CALL _Check_same_owner( const __owned_link& __i1,
- const __owned_link& __i2);
- static bool _STLP_CALL _Check_same_or_null_owner( const __owned_link& __i1,
- const __owned_link& __i2);
- static bool _STLP_CALL _Check_if_owner( const __owned_list*, const __owned_link&);
-
- static bool _STLP_CALL _Check_if_not_owner( const __owned_list*, const __owned_link&);
-
- static void _STLP_CALL _Verify(const __owned_list*);
-
- static void _STLP_CALL _Swap_owners(__owned_list&, __owned_list&);
-
- static void _STLP_CALL _Invalidate_all(__owned_list*);
-
- static void _STLP_CALL _Set_owner(__owned_list& /*src*/, __owned_list& /*dst*/);
-
- static void _STLP_CALL _Stamp_all(__owned_list*, __owned_list*);
-
- static void _STLP_CALL _M_detach(__owned_list*, __owned_link*);
-
- static void _STLP_CALL _M_attach(__owned_list*, __owned_link*);
-
- // accessor : check and get pointer to the container
- static void* _STLP_CALL _Get_container_ptr(const __owned_link*);
-# endif
-
- // debug messages and formats
- static const char* _Message_table[_StlMsg_MAX];
-};
-
-# undef _STLP_MESSAGE_NORETURN
-
-# if defined (_STLP_USE_TEMPLATE_EXPORT)
-_STLP_EXPORT_TEMPLATE_CLASS __stl_debug_engine<bool>;
-# endif
-
-typedef __stl_debug_engine<bool> __stl_debugger;
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-# if !defined (_STLP_ASSERT)
-# define _STLP_ASSERT(expr) \
- if (!(expr)) { _STLP_PRIV __stl_debugger::_Assert( # expr, _STLP_FILE__, __LINE__); }
-# endif
-
-#else
-# define _STLP_ASSERT(expr)
-#endif
-
-// this section is for _STLP_DEBUG only
-#if defined (_STLP_DEBUG)
-
-# if !defined (_STLP_VERBOSE_ASSERT)
-// fbp : new form not requiring ";"
-# define _STLP_VERBOSE_ASSERT(expr, __diag_num) \
- if (!(expr)) { _STLP_PRIV __stl_debugger::_VerboseAssert\
- ( # expr, _STLP_PRIV __diag_num, _STLP_FILE__, __LINE__ ); \
- }
-# endif
-
-# define _STLP_DEBUG_CHECK(expr) _STLP_ASSERT(expr)
-
-# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
-# define _STLP_STD_DEBUG_CHECK(expr) _STLP_DEBUG_CHECK(expr)
-# else
-# define _STLP_STD_DEBUG_CHECK(expr)
-# endif
-
-# if !defined (_STLP_VERBOSE_RETURN)
-# define _STLP_VERBOSE_RETURN(__expr,__diag_num) if (!(__expr)) { \
- _STLP_PRIV __stl_debugger::_IndexedError(__diag_num, _STLP_FILE__ , __LINE__); \
- return false; }
-# endif
-
-# if !defined (_STLP_VERBOSE_RETURN_0)
-# define _STLP_VERBOSE_RETURN_0(__expr,__diag_num) if (!(__expr)) { \
- _STLP_PRIV __stl_debugger::_IndexedError(__diag_num, _STLP_FILE__, __LINE__); \
- return 0; }
-# endif
-
-# ifndef _STLP_INTERNAL_THREADS_H
-# include <stl/_threads.h>
-# endif
-
-# ifndef _STLP_INTERNAL_ITERATOR_BASE_H
-# include <stl/_iterator_base.h>
-# endif
-
-# ifndef _STLP_TYPE_TRAITS_H
-# include <stl/type_traits.h>
-# endif
-
-_STLP_BEGIN_NAMESPACE
-
-_STLP_MOVE_TO_PRIV_NAMESPACE
-
-/*
- * Special debug iterator traits having an additionnal static member
- * method _Check. It is used by the slist debug implementation to check
- * the special before_begin iterator.
- */
-template <class _Traits>
-struct _DbgTraits : _Traits {
- typedef _DbgTraits<typename _Traits::_ConstTraits> _ConstTraits;
- typedef _DbgTraits<typename _Traits::_NonConstTraits> _NonConstTraits;
-
- template <class _Iterator>
- static bool _Check(const _Iterator&) {return true;}
-};
-
-//=============================================================
-template <class _Iterator>
-inline bool _STLP_CALL __valid_range(const _Iterator& __i1 ,const _Iterator& __i2,
- const random_access_iterator_tag&)
-{ return (__i1 < __i2) || (__i1 == __i2); }
-
-template <class _Iterator>
-inline bool _STLP_CALL __valid_range(const _Iterator& __i1 ,const _Iterator& __i2,
- const bidirectional_iterator_tag&) {
- // check if comparable
- bool __dummy(__i1==__i2);
- return (__dummy==__dummy);
-}
-
-template <class _Iterator>
-inline bool _STLP_CALL __valid_range(const _Iterator& __i1 ,const _Iterator& __i2,
- const forward_iterator_tag&) {
- // check if comparable
- bool __dummy(__i1==__i2);
- return (__dummy==__dummy);
-}
-
-template <class _Iterator>
-inline bool _STLP_CALL __valid_range(const _Iterator&,const _Iterator&,
- const input_iterator_tag&)
-{ return true; }
-
-template <class _Iterator>
-inline bool _STLP_CALL __valid_range(const _Iterator&,const _Iterator&,
- const output_iterator_tag&)
-{ return true; }
-
-template <class _Iterator>
-inline bool _STLP_CALL __valid_range(const _Iterator& __i1, const _Iterator& __i2)
-{ return __valid_range(__i1,__i2,_STLP_ITERATOR_CATEGORY(__i1, _Iterator)); }
-
-// Note : that means in range [i1, i2].
-template <class _Iterator>
-inline bool _STLP_CALL stlp_in_range(const _Iterator& _It,
- const _Iterator& __i1, const _Iterator& __i2)
-{ return __valid_range(__i1,_It) && __valid_range(_It,__i2); }
-
-template <class _Iterator>
-inline bool _STLP_CALL stlp_in_range(const _Iterator& __first, const _Iterator& __last,
- const _Iterator& __start, const _Iterator& __finish)
-{ return __valid_range(__first,__last) && __valid_range(__start,__first) && __valid_range(__last,__finish); }
-
-//==========================================================
-class _STLP_CLASS_DECLSPEC __owned_link {
-public:
- // Note: This and the following special defines for compiling under Windows CE under ARM
- // is needed for correctly using _STLP_DEBUG mode. This comes from a bug in the ARM
- // compiler where checked iterators that are passed by value call _M_attach with the wrong
- // this pointer and calling _M_detach can't find the correct pointer to the __owned_link.
- // This is circumvented by managing a _M_self pointer that points to the correct value.
- // Ugly but works.
-#if defined(_STLP_WCE) && defined(_ARM_)
- __owned_link() : _M_self(this), _M_owner(0) {}
- __owned_link(const __owned_list* __c) : _M_self(this), _M_owner(0), _M_next(0)
- { __stl_debugger::_M_attach(__CONST_CAST(__owned_list*,__c), this); }
- __owned_link(const __owned_link& __rhs): _M_self(this), _M_owner(0)
- { __stl_debugger::_M_attach(__CONST_CAST(__owned_list*,__rhs._M_owner), this); }
-#else
- __owned_link() : _M_owner(0) {}
- __owned_link(const __owned_list* __c) : _M_owner(0), _M_next(0)
- { __stl_debugger::_M_attach(__CONST_CAST(__owned_list*,__c), this); }
- __owned_link(const __owned_link& __rhs): _M_owner(0)
- { __stl_debugger::_M_attach(__CONST_CAST(__owned_list*,__rhs._M_owner), this); }
-#endif
- __owned_link& operator=(const __owned_link& __rhs) {
- __owned_list* __new_owner = __CONST_CAST(__owned_list*,__rhs._M_owner);
- __owned_list* __old_owner = _M_owner;
- if ( __old_owner != __new_owner ) {
- __stl_debugger::_M_detach(__old_owner, this);
- __stl_debugger::_M_attach(__new_owner, this);
- }
- return *this;
- }
-#if defined(_STLP_WCE) && defined(_ARM_)
- ~__owned_link() {
- __stl_debugger::_M_detach(_M_owner, _M_self);
- _Invalidate();
- }
-#else
- ~__owned_link() {
- __stl_debugger::_M_detach(_M_owner, this);
- _Invalidate();
- }
-#endif
-
- const __owned_list* _Owner() const { return _M_owner; }
- __owned_list* _Owner() { return _M_owner; }
- void _Set_owner(const __owned_list* __o) { _M_owner= __CONST_CAST(__owned_list*,__o); }
- bool _Valid() const { return _M_owner != 0; }
- void _Invalidate() { _M_owner = 0; _M_next = 0; }
- void _Link_to_self() { _M_next = 0; }
-
- __owned_link* _Next() { return _M_next; }
- const __owned_link* _Next() const { return _M_next; }
-
-public:
-#if defined(_STLP_WCE) && defined(_ARM_)
- __owned_link* _M_self;
-#endif
-
- __owned_list* _M_owner;
- __owned_link* _M_next;
-};
-
-
-class _STLP_CLASS_DECLSPEC __owned_list {
-public:
- __owned_list(void* __o) {
- // fprintf(stderr, "__owned_list(): %p\n",(void*)this);
- _M_node._M_owner = __REINTERPRET_CAST(__owned_list*,__o);
- _M_node._M_next = 0;
- }
- ~__owned_list() {
- // fprintf(stderr, "~__owned_list(): %p\n",(void*)this);
- _Invalidate_all();
- // that prevents detach
- _M_node._Invalidate();
- }
- const void* _Owner() const { return (const void*)_M_node._M_owner; }
- void* _Owner() { return (void*)_M_node._M_owner; }
- bool _Valid() const { return _M_node._M_owner != 0; }
- void _Invalidate() { _M_node._M_owner = 0; }
-
- __owned_link* _First() { return _M_node._Next(); }
- __owned_link* _Last() { return 0 ; }
-
- const __owned_link* _First() const { return (__owned_link*)_M_node._M_next; }
- const __owned_link* _Last() const { return 0 ;}
-
- void _Verify() const { __stl_debugger::_Verify(this); }
- void _Swap_owners(__owned_list& __y) { __stl_debugger::_Swap_owners(*this, __y); }
- void _Invalidate_all() { __stl_debugger::_Invalidate_all(this); }
- void _Set_owner(__owned_list& __y) { __stl_debugger::_Set_owner(*this, __y); }
-
- mutable __owned_link _M_node;
- mutable _STLP_mutex _M_lock;
-
-private:
- // should never be called, should be left not implemented,
- // but some compilers complain about it ;(
- __owned_list(const __owned_list&){}
- __owned_list& operator = (const __owned_list&) { return *this; }
-
- friend class __owned_link;
- friend class __stl_debug_engine<bool>;
-};
-
-
-//==========================================================
-
-// forward declaratioins
-
-template <class _Iterator>
-bool _STLP_CALL __check_range(const _Iterator&, const _Iterator&);
-template <class _Iterator>
-bool _STLP_CALL __check_range(const _Iterator&,
- const _Iterator&, const _Iterator&);
-template <class _Iterator>
-bool _STLP_CALL __check_range(const _Iterator&, const _Iterator& ,
- const _Iterator&, const _Iterator& );
-template <class _Tp>
-bool _STLP_CALL __check_ptr_range(const _Tp*, const _Tp*);
-
-template <class _Iterator>
-void _STLP_CALL __invalidate_range(const __owned_list* __base,
- const _Iterator& __first,
- const _Iterator& __last);
-
-template <class _Iterator>
-void _STLP_CALL __invalidate_iterator(const __owned_list* __base,
- const _Iterator& __it);
-
-template <class _Iterator>
-void _STLP_CALL __change_range_owner(const _Iterator& __first,
- const _Iterator& __last,
- const __owned_list* __dst);
-
-template <class _Iterator>
-void _STLP_CALL __change_ite_owner(const _Iterator& __it,
- const __owned_list* __dst);
-
-//============================================================
-inline bool _STLP_CALL
-__check_same_owner(const __owned_link& __i1, const __owned_link& __i2)
-{ return __stl_debugger::_Check_same_owner(__i1,__i2); }
-
-inline bool _STLP_CALL
-__check_same_or_null_owner(const __owned_link& __i1, const __owned_link& __i2)
-{ return __stl_debugger::_Check_same_or_null_owner(__i1,__i2); }
-
-template <class _Iterator>
-inline bool _STLP_CALL __check_if_owner( const __owned_list* __owner,
- const _Iterator& __it)
-{ return __stl_debugger::_Check_if_owner(__owner, (const __owned_link&)__it); }
-
-template <class _Iterator>
-inline bool _STLP_CALL __check_if_not_owner( const __owned_list* __owner,
- const _Iterator& __it)
-{ return __stl_debugger::_Check_if_not_owner(__owner, (const __owned_link&)__it); }
-
-_STLP_MOVE_TO_STD_NAMESPACE
-
-_STLP_END_NAMESPACE
-
-#else
-# define _STLP_VERBOSE_ASSERT(expr, diagnostic)
-# define _STLP_DEBUG_CHECK(expr)
-#endif /* _STLP_DEBUG */
-
-#if defined (_STLP_ASSERTIONS)
-
-# if !defined (_STLP_ASSERT_MSG_TRAILER)
-# define _STLP_ASSERT_MSG_TRAILER
-# endif
-
-// dwa 12/30/98 - if _STLP_DEBUG_MESSAGE is defined, the user can supply own definition.
-# if !defined (_STLP_DEBUG_MESSAGE)
-# define __stl_debug_message __stl_debugger::_Message
-# else
-extern void __stl_debug_message(const char * format_str, ...);
-# endif
-
-// fbp: if _STLP_DEBUG_TERMINATE is defined, the user can supply own definition.
-# if !defined (_STLP_DEBUG_TERMINATE)
-# define __stl_debug_terminate __stl_debugger::_Terminate
-# else
-extern void __stl_debug_terminate();
-# endif
-
-#endif
-
-#if defined (_STLP_ASSERTIONS) && !defined (_STLP_LINK_TIME_INSTANTIATION)
-# include <stl/debug/_debug.c>
-#endif
-
-#endif /* DEBUG_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/stl/type_manips.h b/stlport/stlport/stl/type_manips.h
deleted file mode 100644
index 410b59d..0000000
--- a/stlport/stlport/stl/type_manips.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * Francois Dumont
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-
-#ifndef _STLP_TYPE_MANIPS_H
-#define _STLP_TYPE_MANIPS_H
-
-_STLP_BEGIN_NAMESPACE
-
-struct __true_type {};
-struct __false_type {};
-
-#if defined (_STLP_USE_NAMESPACES) && !defined (_STLP_DONT_USE_PRIV_NAMESPACE)
-_STLP_MOVE_TO_PRIV_NAMESPACE
-using _STLP_STD::__true_type;
-using _STLP_STD::__false_type;
-_STLP_MOVE_TO_STD_NAMESPACE
-#endif
-
-//bool to type
-template <int _Is>
-struct __bool2type
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct __bool2type<1> { typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct __bool2type<0> { typedef __false_type _Ret; };
-
-//type to bool
-template <class __bool_type>
-struct __type2bool { enum {_Ret = 1}; };
-
-_STLP_TEMPLATE_NULL
-struct __type2bool<__true_type> { enum {_Ret = 1}; };
-
-_STLP_TEMPLATE_NULL
-struct __type2bool<__false_type> { enum {_Ret = 0}; };
-
-//Negation
-template <class _BoolType>
-struct _Not { typedef __false_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct _Not<__false_type> { typedef __true_type _Ret; };
-
-// logical and of 2 predicated
-template <class _P1, class _P2>
-struct _Land2 { typedef __false_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct _Land2<__true_type, __true_type> { typedef __true_type _Ret; };
-
-// logical and of 3 predicated
-template <class _P1, class _P2, class _P3>
-struct _Land3 { typedef __false_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct _Land3<__true_type, __true_type, __true_type> { typedef __true_type _Ret; };
-
-//logical or of 2 predicated
-template <class _P1, class _P2>
-struct _Lor2 { typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct _Lor2<__false_type, __false_type> { typedef __false_type _Ret; };
-
-// logical or of 3 predicated
-template <class _P1, class _P2, class _P3>
-struct _Lor3 { typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL
-struct _Lor3<__false_type, __false_type, __false_type> { typedef __false_type _Ret; };
-
-////////////////////////////////////////////////////////////////////////////////
-// class template __select
-// Selects one of two types based upon a boolean constant
-// Invocation: __select<_Cond, T, U>::Result
-// where:
-// flag is a compile-time boolean constant
-// T and U are types
-// Result evaluates to T if flag is true, and to U otherwise.
-////////////////////////////////////////////////////////////////////////////////
-// BEWARE: If the compiler do not support partial template specialization or nested template
-//classes the default behavior of the __select is to consider the condition as false and so return
-//the second template type!!
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-# if defined (__BORLANDC__)
-template <class _CondT, class _Tp1, class _Tp2>
-struct __selectT { typedef _Tp1 _Ret; };
-
-template <class _Tp1, class _Tp2>
-struct __selectT<__false_type, _Tp1, _Tp2> { typedef _Tp2 _Ret; };
-# endif
-
-# if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x590)
-template <bool _Cond, class _Tp1, class _Tp2>
-struct __select { typedef _Tp1 _Ret; };
-
-template <class _Tp1, class _Tp2>
-struct __select<false, _Tp1, _Tp2> { typedef _Tp2 _Ret; };
-# else
-template <bool _Cond, class _Tp1, class _Tp2>
-struct __select
-{ typedef __selectT<typename __bool2type<_Cond>::_Ret, _Tp1, _Tp2>::_Ret _Ret; };
-# endif
-
-#else
-
-# if defined (_STLP_MEMBER_TEMPLATE_CLASSES)
-template <int _Cond>
-struct __select_aux {
- template <class _Tp1, class _Tp2>
- struct _In {
- typedef _Tp1 _Ret;
- };
-};
-
-_STLP_TEMPLATE_NULL
-struct __select_aux<0> {
- template <class _Tp1, class _Tp2>
- struct _In {
- typedef _Tp2 _Ret;
- };
-};
-
-template <int _Cond, class _Tp1, class _Tp2>
-struct __select {
- typedef typename __select_aux<_Cond>::_STLP_TEMPLATE _In<_Tp1, _Tp2>::_Ret _Ret;
-};
-# else /* _STLP_MEMBER_TEMPLATE_CLASSES */
-//default behavior
-template <int _Cond, class _Tp1, class _Tp2>
-struct __select {
- typedef _Tp2 _Ret;
-};
-# endif /* _STLP_MEMBER_TEMPLATE_CLASSES */
-
-#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-/* Rather than introducing a new macro for the following constrution we use
- * an existing one (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) that
- * is used for a similar feature.
- */
-#if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) && \
- (!defined (__GNUC__) || (__GNUC__ > 2))
-// Helper struct that will forbid volatile qualified types:
-# if !defined (__BORLANDC__)
-struct _NoVolatilePointerShim { _NoVolatilePointerShim(const void*); };
-template <class _Tp>
-char _STLP_CALL _IsCopyableFun(bool, _NoVolatilePointerShim, _Tp const*, _Tp*); // no implementation is required
-char* _STLP_CALL _IsCopyableFun(bool, ...); // no implementation is required
-
-template <class _Src, class _Dst>
-struct _Copyable {
- static _Src* __null_src();
- static _Dst* __null_dst();
- enum { _Ret = (sizeof(_IsCopyableFun(false, __null_src(), __null_src(), __null_dst())) == sizeof(char)) };
- typedef typename __bool2type<_Ret>::_Ret _RetT;
-};
-# else
-template <class _Tp1, class _Tp2> struct _AreSameTypes;
-template <class _Tp> struct _IsUnQual;
-template <class _Src, class _Dst>
-struct _Copyable {
- typedef typename _AreSameTypes<_Src, _Dst>::_Ret _Tr1;
- typedef typename _IsUnQual<_Dst>::_Ret _Tr2;
- typedef typename _Land2<_Tr1, _Tr2>::_Ret _RetT;
- enum { _Ret = __type2bool<_RetT>::_Ret };
-};
-# endif
-#else
-template <class _Src, class _Dst>
-struct _Copyable {
- enum { _Ret = 0 };
- typedef __false_type _RetT;
-};
-#endif
-
-/*
- * The following struct will tell you if 2 types are the same and if copying memory
- * from the _Src type to the _Dst type is right considering qualifiers. If _Src and
- * _Dst types are the same unqualified types _Ret will be false if:
- * - any of the type has the volatile qualifier
- * - _Dst is const qualified
- */
-template <class _Src, class _Dst>
-struct _AreCopyable {
- enum { _Same = _Copyable<_Src, _Dst>::_Ret };
- typedef typename _Copyable<_Src, _Dst>::_RetT _Ret;
-};
-
-template <class _Tp1, class _Tp2>
-struct _AreSameTypes {
- enum { _Same = 0 };
- typedef __false_type _Ret;
-};
-
-#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _Tp>
-struct _AreSameTypes<_Tp, _Tp> {
- enum { _Same = 1 };
- typedef __true_type _Ret;
-};
-#endif
-
-#if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS)
-template <class _Src, class _Dst>
-struct _ConversionHelper {
- static char _Test(bool, _Dst);
- static char* _Test(bool, ...);
- static _Src _MakeSource();
-};
-
-template <class _Src, class _Dst>
-struct _IsConvertible {
- typedef _ConversionHelper<_Src*, const volatile _Dst*> _H;
- enum { value = (sizeof(char) == sizeof(_H::_Test(false, _H::_MakeSource()))) };
- typedef typename __bool2type<value>::_Ret _Ret;
-};
-
-# if defined (__BORLANDC__)
-# if (__BORLANDC__ < 0x590)
-template<class _Tp>
-struct _UnConstPtr { typedef _Tp _Type; };
-
-template<class _Tp>
-struct _UnConstPtr<_Tp*> { typedef _Tp _Type; };
-
-template<class _Tp>
-struct _UnConstPtr<const _Tp*> { typedef _Tp _Type; };
-# endif
-
-# if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG)
-template <class _Tp>
-struct _IsConst { typedef __false_type _Ret; };
-# else
-template <class _Tp>
-struct _IsConst { typedef _AreSameTypes<_Tp, const _Tp>::_Ret _Ret; };
-# endif
-
-# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG)
-template <class _Tp>
-struct _IsConst <const _Tp> { typedef __true_type _Ret; };
-# endif
-
-# if (__BORLANDC__ < 0x590)
-template<class _Tp>
-struct _IsConst<_Tp*> { typedef _AreSameTypes<_Tp*, const _Tp*>::_Ret _Ret; };
-# endif
-template <class _Tp>
-struct _IsVolatile { typedef _AreSameTypes<_Tp, volatile _Tp>::_Ret _Ret; };
-
-template<class _Tp>
-struct _IsUnQual {
- typedef _IsConst<_Tp>::_Ret _Tr1;
- typedef _IsVolatile<_Tp>::_Ret _Tr2;
- typedef _Not<_Tr1>::_Ret _NotCon;
- typedef _Not<_Tr2>::_Ret _NotVol;
- typedef _Land2<_NotCon, _NotVol>::_Ret _Ret;
-};
-
-# if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG)
-template <class _Tp> struct _UnQual { typedef _Tp _Type; };
-template <class _Tp> struct _UnQual<const _Tp> { typedef _Tp _Type; };
-template <class _Tp> struct _UnQual<volatile _Tp> { typedef _Tp _Type; };
-template <class _Tp> struct _UnQual<const volatile _Tp> { typedef _Tp _Type; };
-# endif
-# endif
-
-/* This struct is intended to say if a pointer can be convertible to an other
- * taking into account cv qualifications. It shouldn't be instanciated with
- * something else than pointer type as it uses pass by value parameter that
- * results in compilation error when parameter type has a special memory
- * alignment
- */
-template <class _Src, class _Dst>
-struct _IsCVConvertible {
-# if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x590)
- typedef _ConversionHelper<_Src, _Dst> _H;
- enum { value = (sizeof(char) == sizeof(_H::_Test(false, _H::_MakeSource()))) };
-# else
- enum { _Is1 = __type2bool<_IsConst<_Src>::_Ret>::_Ret };
- enum { _Is2 = _IsConvertible<_UnConstPtr<_Src>::_Type, _UnConstPtr<_Dst>::_Type>::value };
- enum { value = _Is1 ? 0 : _Is2 };
-# endif
- typedef typename __bool2type<value>::_Ret _Ret;
-};
-
-#else
-template <class _Src, class _Dst>
-struct _IsConvertible {
- enum { value = 0 };
- typedef __false_type _Ret;
-};
-
-template <class _Src, class _Dst>
-struct _IsCVConvertible {
- enum { value = 0 };
- typedef __false_type _Ret;
-};
-#endif
-
-_STLP_END_NAMESPACE
-
-#endif /* _STLP_TYPE_MANIPS_H */
diff --git a/stlport/stlport/stl/type_traits.h b/stlport/stlport/stl/type_traits.h
deleted file mode 100755
index bdeaab0..0000000
--- a/stlport/stlport/stl/type_traits.h
+++ /dev/null
@@ -1,588 +0,0 @@
-/*
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- * Copyright (c) 2010, The Linux Foundation. All rights reserved.
- */
-
-#ifndef _STLP_TYPE_TRAITS_H
-#define _STLP_TYPE_TRAITS_H
-
-/*
-This header file provides a framework for allowing compile time dispatch
-based on type attributes. This is useful when writing template code.
-For example, when making a copy of an array of an unknown type, it helps
-to know if the type has a trivial copy constructor or not, to help decide
-if a memcpy can be used.
-
-The class template __type_traits provides a series of typedefs each of
-which is either __true_type or __false_type. The argument to
-__type_traits can be any type. The typedefs within this template will
-attain their correct values by one of these means:
- 1. The general instantiation contain conservative values which work
- for all types.
- 2. Specializations may be declared to make distinctions between types.
- 3. Some compilers (such as the Silicon Graphics N32 and N64 compilers)
- will automatically provide the appropriate specializations for all
- types.
-
-EXAMPLE:
-
-//Copy an array of elements which have non-trivial copy constructors
-template <class T> void copy(T* source, T* destination, int n, __false_type);
-//Copy an array of elements which have trivial copy constructors. Use memcpy.
-template <class T> void copy(T* source, T* destination, int n, __true_type);
-
-//Copy an array of any type by using the most efficient copy mechanism
-template <class T> inline void copy(T* source,T* destination,int n) {
- copy(source, destination, n,
- typename __type_traits<T>::has_trivial_copy_constructor());
-}
-*/
-
-#ifdef __WATCOMC__
-# include <stl/_cwchar.h>
-#endif
-
-#ifndef _STLP_TYPE_MANIPS_H
-# include <stl/type_manips.h>
-#endif
-
-#ifdef _STLP_USE_BOOST_SUPPORT
-# include <stl/boost_type_traits.h>
-# include <boost/type_traits/add_reference.hpp>
-# include <boost/type_traits/add_const.hpp>
-#endif /* _STLP_USE_BOOST_SUPPORT */
-
-_STLP_BEGIN_NAMESPACE
-
-#if !defined (_STLP_USE_BOOST_SUPPORT)
-
-// The following could be written in terms of numeric_limits.
-// We're doing it separately to reduce the number of dependencies.
-
-template <class _Tp> struct _IsIntegral
-{ typedef __false_type _Ret; };
-
-# ifndef _STLP_NO_BOOL
-_STLP_TEMPLATE_NULL struct _IsIntegral<bool>
-{ typedef __true_type _Ret; };
-# endif /* _STLP_NO_BOOL */
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<char>
-{ typedef __true_type _Ret; };
-
-# ifndef _STLP_NO_SIGNED_BUILTINS
-_STLP_TEMPLATE_NULL struct _IsIntegral<signed char>
-{ typedef __true_type _Ret; };
-# endif
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned char>
-{ typedef __true_type _Ret; };
-
-# if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT)
-_STLP_TEMPLATE_NULL struct _IsIntegral<wchar_t>
-{ typedef __true_type _Ret; };
-# endif /* _STLP_HAS_WCHAR_T */
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<short>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned short>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<int>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned int>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<long>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned long>
-{ typedef __true_type _Ret; };
-
-# ifdef _STLP_LONG_LONG
-_STLP_TEMPLATE_NULL struct _IsIntegral<_STLP_LONG_LONG>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned _STLP_LONG_LONG>
-{ typedef __true_type _Ret; };
-# endif /* _STLP_LONG_LONG */
-
-template <class _Tp> struct _IsRational
-{ typedef __false_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsRational<float>
-{ typedef __true_type _Ret; };
-
-_STLP_TEMPLATE_NULL struct _IsRational<double>
-{ typedef __true_type _Ret; };
-
-# if !defined ( _STLP_NO_LONG_DOUBLE )
-_STLP_TEMPLATE_NULL struct _IsRational<long double>
-{ typedef __true_type _Ret; };
-# endif
-
-// Forward declarations.
-template <class _Tp> struct __type_traits;
-template <class _IsPOD> struct __type_traits_aux {
- typedef __false_type has_trivial_default_constructor;
- typedef __false_type has_trivial_copy_constructor;
- typedef __false_type has_trivial_assignment_operator;
- typedef __false_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-
-_STLP_TEMPLATE_NULL
-struct __type_traits_aux<__false_type> {
- typedef __false_type has_trivial_default_constructor;
- typedef __false_type has_trivial_copy_constructor;
- typedef __false_type has_trivial_assignment_operator;
- typedef __false_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-};
-
-_STLP_TEMPLATE_NULL
-struct __type_traits_aux<__true_type> {
- typedef __true_type has_trivial_default_constructor;
- typedef __true_type has_trivial_copy_constructor;
- typedef __true_type has_trivial_assignment_operator;
- typedef __true_type has_trivial_destructor;
- typedef __true_type is_POD_type;
-};
-
-template <class _Tp>
-struct _IsRef {
- typedef __false_type _Ret;
-};
-
-# if defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS)
-#error "_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS not supported"
-# else /* _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS */
-
-template <class _Tp> struct _IsPtr {
- typedef __false_type _Ret;
-};
-
-template <class _Tp>
-struct __type_traits {
- typedef __true_type this_dummy_member_must_be_first;
- /* Do not remove this member. It informs a compiler which
- automatically specializes __type_traits that this
- __type_traits template is special. It just makes sure that
- things work if an implementation is using a template
- called __type_traits for something unrelated. */
-
- /* The following restrictions should be observed for the sake of
- compilers which automatically produce type specific specializations
- of this class:
- - You may reorder the members below if you wish
- - You may remove any of the members below if you wish
- - You must not rename members without making the corresponding
- name change in the compiler
- - Members you add will be treated like regular members unless
-
- you add the appropriate support in the compiler. */
-# if !defined (_STLP_HAS_TYPE_TRAITS_INTRINSICS)
- typedef __false_type has_trivial_default_constructor;
- typedef __false_type has_trivial_copy_constructor;
- typedef __false_type has_trivial_assignment_operator;
- typedef __false_type has_trivial_destructor;
- typedef __false_type is_POD_type;
-# else
- typedef typename __bool2type<_STLP_HAS_TRIVIAL_CONSTRUCTOR(_Tp)>::_Ret has_trivial_default_constructor;
- typedef typename __bool2type<_STLP_HAS_TRIVIAL_COPY(_Tp)>::_Ret has_trivial_copy_constructor;
- typedef typename __bool2type<_STLP_HAS_TRIVIAL_ASSIGN(_Tp)>::_Ret has_trivial_assignment_operator;
- typedef typename __bool2type<_STLP_HAS_TRIVIAL_DESTRUCTOR(_Tp)>::_Ret has_trivial_destructor;
- typedef typename __bool2type<_STLP_IS_POD(_Tp)>::_Ret is_POD_type;
-# endif
-};
-
-# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _Tp> struct _IsPtr<_Tp*>
-{ typedef __true_type _Ret; };
-template <class _Tp> struct _IsRef<_Tp&>
-{ typedef __true_type _Ret; };
-
-template <class _Tp> struct __type_traits<_Tp*> : __type_traits_aux<__true_type>
-{};
-# endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */
-
-# endif /* _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS */
-
-// Provide some specializations. This is harmless for compilers that
-// have built-in __types_traits support, and essential for compilers
-// that don't.
-# if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG)
-# define _STLP_DEFINE_TYPE_TRAITS_FOR(Type) \
-_STLP_TEMPLATE_NULL struct __type_traits< Type > : __type_traits_aux<__true_type> {}; \
-_STLP_TEMPLATE_NULL struct __type_traits< const Type > : __type_traits_aux<__true_type> {}; \
-_STLP_TEMPLATE_NULL struct __type_traits< volatile Type > : __type_traits_aux<__true_type> {}; \
-_STLP_TEMPLATE_NULL struct __type_traits< const volatile Type > : __type_traits_aux<__true_type> {}
-# else
-# define _STLP_DEFINE_TYPE_TRAITS_FOR(Type) \
-_STLP_TEMPLATE_NULL struct __type_traits< Type > : __type_traits_aux<__true_type> {};
-# endif
-
-# ifndef _STLP_NO_BOOL
-_STLP_DEFINE_TYPE_TRAITS_FOR(bool);
-# endif /* _STLP_NO_BOOL */
-_STLP_DEFINE_TYPE_TRAITS_FOR(char);
-# ifndef _STLP_NO_SIGNED_BUILTINS
-_STLP_DEFINE_TYPE_TRAITS_FOR(signed char);
-# endif
-_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned char);
-# if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT)
-_STLP_DEFINE_TYPE_TRAITS_FOR(wchar_t);
-# endif /* _STLP_HAS_WCHAR_T */
-
-_STLP_DEFINE_TYPE_TRAITS_FOR(short);
-_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned short);
-_STLP_DEFINE_TYPE_TRAITS_FOR(int);
-_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned int);
-_STLP_DEFINE_TYPE_TRAITS_FOR(long);
-_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned long);
-
-# ifdef _STLP_LONG_LONG
-_STLP_DEFINE_TYPE_TRAITS_FOR(_STLP_LONG_LONG);
-_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned _STLP_LONG_LONG);
-# endif /* _STLP_LONG_LONG */
-
-_STLP_DEFINE_TYPE_TRAITS_FOR(float);
-_STLP_DEFINE_TYPE_TRAITS_FOR(double);
-
-# if !defined ( _STLP_NO_LONG_DOUBLE )
-_STLP_DEFINE_TYPE_TRAITS_FOR(long double);
-# endif
-
-# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _ArePtrs, class _Src, class _Dst>
-struct _IsCVConvertibleIf
-{ typedef typename _IsCVConvertible<_Src, _Dst>::_Ret _Ret; };
-
-template <class _Src, class _Dst>
-struct _IsCVConvertibleIf<__false_type, _Src, _Dst>
-{ typedef __false_type _Ret; };
-# else
-# if defined (_STLP_MEMBER_TEMPLATE_CLASSES)
-template <class _ArePtrs>
-struct _IsCVConvertibleIfAux {
- template <class _Src, class _Dst>
- struct _In
- { typedef typename _IsCVConvertible<_Src, _Dst>::_Ret _Ret; };
-};
-
-_STLP_TEMPLATE_NULL
-struct _IsCVConvertibleIfAux<__false_type> {
- template <class _Src, class _Dst>
- struct _In
- { typedef __false_type _Ret; };
-};
-
-template <class _ArePtrs, class _Src, class _Dst>
-struct _IsCVConvertibleIf {
- typedef typename _IsCVConvertibleIfAux<_ArePtrs>::_STLP_TEMPLATE _In<_Src, _Dst>::_Ret _Ret;
-};
-# else
-/* default behavior: we prefer to miss an optimization rather than taking the risk of
- * a compilation error if playing with types with exotic memory alignment.
- */
-template <class _ArePtrs, class _Src, class _Dst>
-struct _IsCVConvertibleIf
-{ typedef __false_type _Ret; };
-# endif
-# endif
-
-template <class _Src, class _Dst>
-struct _TrivialNativeTypeCopy {
- typedef typename _IsPtr<_Src>::_Ret _Ptr1;
- typedef typename _IsPtr<_Dst>::_Ret _Ptr2;
- typedef typename _Land2<_Ptr1, _Ptr2>::_Ret _BothPtrs;
- typedef typename _IsCVConvertibleIf<_BothPtrs, _Src, _Dst>::_Ret _Convertible;
- typedef typename _Land2<_BothPtrs, _Convertible>::_Ret _Trivial1;
-
- typedef typename __bool2type<(sizeof(_Src) == sizeof(_Dst))>::_Ret _SameSize;
-
-#if !defined (__BORLANDC__) || (__BORLANDC__ < 0x564)
- typedef typename _IsIntegral<_Src>::_Ret _Int1;
-#else
- typedef typename _UnQual<_Src>::_Type _UnQuSrc;
- typedef typename _IsIntegral<_UnQuSrc>::_Ret _Int1;
-#endif
- typedef typename _IsIntegral<_Dst>::_Ret _Int2;
- typedef typename _Land2<_Int1, _Int2>::_Ret _BothInts;
-
- typedef typename _IsRational<_Src>::_Ret _Rat1;
- typedef typename _IsRational<_Dst>::_Ret _Rat2;
- typedef typename _Land2<_Rat1, _Rat2>::_Ret _BothRats;
-
- typedef typename _Lor2<_BothInts, _BothRats>::_Ret _BothNatives;
-#if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x564)
- typedef typename _Land2<_BothNatives, _SameSize>::_Ret _Trivial2;
-#else
- typedef typename _IsUnQual<_Dst>::_Ret _UnQualDst;
- typedef typename _Land3<_BothNatives, _SameSize, _UnQualDst>::_Ret _Trivial2;
-#endif
- typedef typename _Lor2<_Trivial1, _Trivial2>::_Ret _Ret;
-};
-
-template <class _Src, class _Dst>
-struct _TrivialCopy {
- typedef typename _TrivialNativeTypeCopy<_Src, _Dst>::_Ret _NativeRet;
-# if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560)
- typedef typename __type_traits<_Src>::has_trivial_assignment_operator _Tr1;
-# else
- typedef typename _UnConstPtr<_Src*>::_Type _UnConstSrc;
- typedef typename __type_traits<_UnConstSrc>::has_trivial_assignment_operator _Tr1;
-# endif
- typedef typename _AreCopyable<_Src, _Dst>::_Ret _Tr2;
- typedef typename _Land2<_Tr1, _Tr2>::_Ret _UserRet;
- typedef typename _Lor2<_NativeRet, _UserRet>::_Ret _Ret;
- static _Ret _Answer() { return _Ret(); }
-};
-
-template <class _Src, class _Dst>
-struct _TrivialUCopy {
- typedef typename _TrivialNativeTypeCopy<_Src, _Dst>::_Ret _NativeRet;
-# if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560)
- typedef typename __type_traits<_Src>::has_trivial_copy_constructor _Tr1;
-# else
- typedef typename _UnConstPtr<_Src*>::_Type _UnConstSrc;
- typedef typename __type_traits<_UnConstSrc>::has_trivial_copy_constructor _Tr1;
-# endif
- typedef typename _AreCopyable<_Src, _Dst>::_Ret _Tr2;
- typedef typename _Land2<_Tr1, _Tr2>::_Ret _UserRet;
- typedef typename _Lor2<_NativeRet, _UserRet>::_Ret _Ret;
- static _Ret _Answer() { return _Ret(); }
-};
-
-template <class _Tp>
-struct _DefaultZeroValue {
- typedef typename _IsIntegral<_Tp>::_Ret _Tr1;
- typedef typename _IsRational<_Tp>::_Ret _Tr2;
- typedef typename _IsPtr<_Tp>::_Ret _Tr3;
- typedef typename _Lor3<_Tr1, _Tr2, _Tr3>::_Ret _Ret;
-};
-
-template <class _Tp>
-struct _TrivialInit {
-# if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560)
- typedef typename __type_traits<_Tp>::has_trivial_default_constructor _Tr1;
-# else
- typedef typename _UnConstPtr<_Tp*>::_Type _Tp1;
- typedef typename __type_traits<_Tp1>::has_trivial_copy_constructor _Tr1;
-# endif
- typedef typename _DefaultZeroValue<_Tp>::_Ret _Tr2;
- typedef typename _Not<_Tr2>::_Ret _Tr3;
- typedef typename _Land2<_Tr1, _Tr3>::_Ret _Ret;
- static _Ret _Answer() { return _Ret(); }
-};
-
-#endif /* !_STLP_USE_BOOST_SUPPORT */
-
-template <class _Tp>
-struct _IsPtrType {
- typedef typename _IsPtr<_Tp>::_Ret _Type;
- static _Type _Ret() { return _Type(); }
-};
-
-template <class _Tp>
-struct _IsRefType {
- typedef typename _IsRef<_Tp>::_Ret _Type;
- static _Type _Ret() { return _Type();}
-};
-
-template <class _Tp>
-struct __call_traits {
-#if defined (_STLP_USE_BOOST_SUPPORT) && !defined (_STLP_NO_EXTENSIONS)
- typedef typename __select< ::boost::is_reference<_Tp>::value,
- typename ::boost::add_const<_Tp>::type,
- typename ::boost::add_reference< typename ::boost::add_const<_Tp>::type >::type>::_Ret const_param_type;
- typedef typename __select< ::boost::is_reference<_Tp>::value,
- typename ::boost::remove_const<_Tp>::type,
- typename ::boost::add_reference<_Tp>::type>::_Ret param_type;
-#else
- typedef const _Tp& const_param_type;
- typedef _Tp& param_type;
-#endif
-};
-
-#if !defined (_STLP_USE_BOOST_SUPPORT) && !defined (_STLP_NO_EXTENSIONS) && defined (_STLP_CLASS_PARTIAL_SPECIALIZATION)
-template <class _Tp>
-struct __call_traits<_Tp&> {
- typedef _Tp& param_type;
- typedef const _Tp& const_param_type;
-};
-template <class _Tp>
-struct __call_traits<const _Tp&> {
- typedef _Tp& param_type;
- typedef const _Tp& const_param_type;
-};
-#endif
-
-template <class _Tp1, class _Tp2>
-struct _BothPtrType {
- typedef typename _IsPtr<_Tp1>::_Ret _IsPtr1;
- typedef typename _IsPtr<_Tp2>::_Ret _IsPtr2;
-
- typedef typename _Land2<_IsPtr1, _IsPtr2>::_Ret _Ret;
- static _Ret _Answer() { return _Ret(); }
-};
-
-template <class _Tp1, class _Tp2, class _IsRef1, class _IsRef2>
-struct _OKToSwap {
- typedef typename _AreSameTypes<_Tp1, _Tp2>::_Ret _Same;
- typedef typename _Land3<_Same, _IsRef1, _IsRef2>::_Ret _Type;
- static _Type _Answer() { return _Type(); }
-};
-
-template <class _Tp1, class _Tp2, class _IsRef1, class _IsRef2>
-inline _OKToSwap<_Tp1, _Tp2, _IsRef1, _IsRef2>
-_IsOKToSwap(_Tp1*, _Tp2*, const _IsRef1&, const _IsRef2&)
-{ return _OKToSwap<_Tp1, _Tp2, _IsRef1, _IsRef2>(); }
-
-template <class _Src, class _Dst>
-inline _TrivialCopy<_Src, _Dst> _UseTrivialCopy(_Src*, _Dst*)
-{ return _TrivialCopy<_Src, _Dst>(); }
-
-template <class _Src, class _Dst>
-inline _TrivialUCopy<_Src, _Dst> _UseTrivialUCopy(_Src*, _Dst*)
-{ return _TrivialUCopy<_Src, _Dst>(); }
-
-#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) || defined (__BORLANDC__) || \
- defined (__DMC__)
-struct _NegativeAnswer {
- typedef __false_type _Ret;
- static _Ret _Answer() { return _Ret(); }
-};
-
-template <class _Src, class _Dst>
-inline _NegativeAnswer _UseTrivialCopy(_Src*, const _Dst*)
-{ return _NegativeAnswer(); }
-
-template <class _Src, class _Dst>
-inline _NegativeAnswer _UseTrivialCopy(_Src*, volatile _Dst*)
-{ return _NegativeAnswer(); }
-
-template <class _Src, class _Dst>
-inline _NegativeAnswer _UseTrivialCopy(_Src*, const volatile _Dst*)
-{ return _NegativeAnswer(); }
-
-template <class _Src, class _Dst>
-inline _NegativeAnswer _UseTrivialUCopy(_Src*, const _Dst*)
-{ return _NegativeAnswer(); }
-
-template <class _Src, class _Dst>
-inline _NegativeAnswer _UseTrivialUCopy(_Src*, volatile _Dst*)
-{ return _NegativeAnswer(); }
-
-template <class _Src, class _Dst>
-inline _NegativeAnswer _UseTrivialUCopy(_Src*, const volatile _Dst*)
-{ return _NegativeAnswer(); }
-#endif
-
-template <class _Tp>
-inline _TrivialInit<_Tp> _UseTrivialInit(_Tp*)
-{ return _TrivialInit<_Tp>(); }
-
-template <class _Tp>
-struct _IsPOD {
- typedef typename __type_traits<_Tp>::is_POD_type _Type;
- static _Type _Answer() { return _Type(); }
-};
-
-template <class _Tp>
-inline _IsPOD<_Tp> _Is_POD(_Tp*)
-{ return _IsPOD<_Tp>(); }
-
-template <class _Tp>
-struct _DefaultZeroValueQuestion {
- typedef typename _DefaultZeroValue<_Tp>::_Ret _Ret;
- static _Ret _Answer() { return _Ret(); }
-};
-
-template <class _Tp>
-inline _DefaultZeroValueQuestion<_Tp> _HasDefaultZeroValue(_Tp*)
-{ return _DefaultZeroValueQuestion<_Tp>(); }
-
-/*
- * Base class used:
- * - to simulate partial template specialization
- * - to simulate partial function ordering
- * - to recognize STLport class from user specialized one
- */
-template <class _Tp>
-struct __stlport_class
-{ typedef _Tp _Type; };
-
-template <class _Tp>
-struct _IsSTLportClass {
- typedef typename _IsConvertible<_Tp, __stlport_class<_Tp> >::_Ret _Ret;
-#if defined (__BORLANDC__)
- enum { _Is = _IsConvertible<_Tp, __stlport_class<_Tp> >::value };
-#endif
-};
-
-#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
-template <class _Tp>
-struct _SwapImplemented {
- typedef typename _IsSTLportClass<_Tp>::_Ret _Ret;
-# if defined (__BORLANDC__)
- enum { _Is = _IsSTLportClass<_Tp>::_Is };
-# endif
-};
-#endif
-
-template <class _Tp>
-class _TpWithState : private _Tp {
- _TpWithState();
- int _state;
-};
-
-/* This is an internal helper struct used to guess if we are working
- * on a stateless class. It can only be instanciated with a class type. */
-template <class _Tp>
-struct _IsStateless {
- enum { _Is = sizeof(_TpWithState<_Tp>) == sizeof(int) };
- typedef typename __bool2type<_Is>::_Ret _Ret;
-};
-
-_STLP_END_NAMESPACE
-
-#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION
-# if defined (__BORLANDC__) || \
- defined (__SUNPRO_CC) || \
- (defined (__MWERKS__) && (__MWERKS__ <= 0x2303)) || \
- (defined (__sgi) && defined (_COMPILER_VERSION)) || \
- defined (__DMC__)
-# define _STLP_IS_POD_ITER(_It, _Tp) __type_traits< typename iterator_traits< _Tp >::value_type >::is_POD_type()
-# else
-# define _STLP_IS_POD_ITER(_It, _Tp) typename __type_traits< typename iterator_traits< _Tp >::value_type >::is_POD_type()
-# endif
-#else
-# define _STLP_IS_POD_ITER(_It, _Tp) _Is_POD( _STLP_VALUE_TYPE( _It, _Tp ) )._Answer()
-#endif
-
-#endif /* _STLP_TYPE_TRAITS_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/string b/stlport/stlport/string
deleted file mode 100644
index 74d4589..0000000
--- a/stlport/stlport/string
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 1997-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_STRING
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x68
-# include <stl/_prolog.h>
-# define _STLP_STRING
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x68)
-# ifndef _STLP_INTERNAL_STRING_H
-# include <stl/_string.h>
-# endif
-
-# ifndef _STLP_STRING_HASH_H
-# include <stl/_string_hash.h>
-# endif
-
-# if !defined (_STLP_USE_NO_IOSTREAMS) && !defined (_STLP_STRING_IO_H)
-# include <stl/_string_io.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x68) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <string>
-# else
-# include _STLP_NATIVE_HEADER(string)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x68)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_STRING */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/string.h b/stlport/stlport/string.h
deleted file mode 100644
index 52013cf..0000000
--- a/stlport/stlport/string.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-/* Workaround for a "misbehaviour" when compiling resource scripts using
- * eMbedded Visual C++. The standard .rc file includes windows header files,
- * which in turn include string.h, which results in warnings and errors
- */
-#ifndef _STLP_STRING_H
-
-#if !defined (RC_INVOKED)
-
-# ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x269
-# include <stl/_cprolog.h>
-# elif (_STLP_OUTERMOST_HEADER_ID == 0x269) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-# define _STLP_STRING_H
-# endif
-
-# if defined(_STLP_WCE_EVC3)
-struct _exception;
-# endif
-# if (_STLP_OUTERMOST_HEADER_ID != 0x269) || defined (_STLP_DONT_POP_HEADER_ID)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <string.h>
-# else
-# include _STLP_NATIVE_C_HEADER(string.h)
-# endif
-# else
-# if defined (__BORLANDC__) && !defined (__linux__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <_str.h>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(_str.h)
-# endif
-# else
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <string.h>
-# else
-# include _STLP_NATIVE_C_HEADER(string.h)
-# endif
-# endif
-# endif
-
-# if (_STLP_OUTERMOST_HEADER_ID == 0x269)
-# if !defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-# endif
-#endif /* RC_INVOKED */
-#endif /* _STLP_STRING_H */
diff --git a/stlport/stlport/time.h b/stlport/stlport/time.h
deleted file mode 100644
index e73aa85..0000000
--- a/stlport/stlport/time.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x272
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x272) && ! defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#ifdef _STLP_WCE_EVC3
-/* only show message when directly including this file in a non-library build */
-# if !defined(__BUILDING_STLPORT) && (_STLP_OUTERMOST_HEADER_ID == 0x272)
-# pragma message("eMbedded Visual C++ 3 doesn't have a time.h header; STLport won't include native time.h here")
-# endif
-#else
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <time.h>
-# else
-# include _STLP_NATIVE_C_HEADER(time.h)
-# endif
-#endif
-
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x272)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
diff --git a/stlport/stlport/using/cstring b/stlport/stlport/using/cstring
deleted file mode 100644
index 42c5660..0000000
--- a/stlport/stlport/using/cstring
+++ /dev/null
@@ -1,60 +0,0 @@
-using _STLP_VENDOR_CSTD::size_t;
-
-#if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
-# if defined (__MSL__) && __MC68K__ && !_No_BlockMove && __dest_os == __mac_os
-# undef memcpy
-# undef memmove
-inline void* memcpy(void* dst, const void* src, size_t len)
-{ return _STLP_VENDOR_CSTD::__memcpy(dst, src, len); }
-inline void* memmove(void* dst, const void* src, size_t len)
-{ return _STLP_VENDOR_CSTD::__memmove(dst, src, len); }
-# else
-using _STLP_VENDOR_CSTD::memmove;
-using _STLP_VENDOR_CSTD::memcpy;
-# endif
-
-# if !defined (_STLP_WCE)
-// these functions just don't exist on Windows CE
-using _STLP_VENDOR_CSTD::strcoll;
-using _STLP_VENDOR_CSTD::strerror;
-using _STLP_VENDOR_CSTD::strxfrm;
-# endif
-
-# if defined (__BORLANDC__)
-extern "C++" {
-# endif
-using _STLP_VENDOR_CSTD::memchr;
-using _STLP_VENDOR_CSTD::strchr;
-using _STLP_VENDOR_CSTD::strpbrk;
-using _STLP_VENDOR_CSTD::strrchr;
-using _STLP_VENDOR_CSTD::strstr;
-# if defined (__BORLANDC__)
-}
-# endif
-
-using _STLP_VENDOR_CSTD::memcmp;
-using _STLP_VENDOR_CSTD::memset;
-
-using _STLP_VENDOR_CSTD::strcat;
-
-# if !defined (strcmp) || !defined (__BORLANDC__)
-using _STLP_VENDOR_CSTD::strcmp;
-# else
-using ::strcmp;
-# endif
-
-# if !defined (strcpy) || !defined (__BORLANDC__)
-using _STLP_VENDOR_CSTD::strcpy;
-# else
-using ::strcpy;
-# endif
-using _STLP_VENDOR_CSTD::strcspn;
-using _STLP_VENDOR_CSTD::strlen;
-using _STLP_VENDOR_CSTD::strncat;
-using _STLP_VENDOR_CSTD::strncmp;
-
-using _STLP_VENDOR_CSTD::strncpy;
-using _STLP_VENDOR_CSTD::strspn;
-
-using _STLP_VENDOR_CSTD::strtok;
-#endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */
diff --git a/stlport/stlport/utility b/stlport/stlport/utility
deleted file mode 100644
index 4aaaa59..0000000
--- a/stlport/stlport/utility
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_UTILITY
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x75
-# include <stl/_prolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x75) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-# define _STLP_UTILITY
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x75) && !defined (_STLP_DONT_POP_HEADER_ID)
-# ifndef _STLP_INTERNAL_PAIR_H
-# include <stl/_pair.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x75) || defined (_STLP_DONT_POP_HEADER_ID) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <utility>
-# else
-# include _STLP_NATIVE_HEADER(utility)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x75)
-# if !defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
-
-#endif /* _STLP_UTILITY */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/stlport/stlport/vector b/stlport/stlport/vector
deleted file mode 100644
index 92c41b7..0000000
--- a/stlport/stlport/vector
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996,1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef _STLP_VECTOR
-
-#ifndef _STLP_OUTERMOST_HEADER_ID
-# define _STLP_OUTERMOST_HEADER_ID 0x77
-# include <stl/_prolog.h>
-# define _STLP_VECTOR
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x77)
-# ifndef _STLP_INTERNAL_ALGOBASE_H
-# include <stl/_algobase.h>
-# endif
-
-# ifndef _STLP_INTERNAL_VECTOR_H
-# include <stl/_vector.h>
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID != 0x77) || defined (_STLP_IMPORT_VENDOR_STD)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <vector>
-# else
-# include _STLP_NATIVE_HEADER(vector)
-# endif
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x77)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-#endif
-
-#endif /* _STLP_VECTOR */
-
-// Local Variables:
-// mode:C++
-// End:
-
diff --git a/stlport/stlport/wchar.h b/stlport/stlport/wchar.h
deleted file mode 100644
index 6d66799..0000000
--- a/stlport/stlport/wchar.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 1999
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#if !defined (_STLP_OUTERMOST_HEADER_ID)
-# define _STLP_OUTERMOST_HEADER_ID 0x278
-# include <stl/_cprolog.h>
-#elif (_STLP_OUTERMOST_HEADER_ID == 0x278) && !defined (_STLP_DONT_POP_HEADER_ID)
-# define _STLP_DONT_POP_HEADER_ID
-#endif
-
-#if !defined (_STLP_WCE_EVC3) && !defined (_STLP_NO_WCHAR_T)
-
-# if defined (__BORLANDC__) && !defined (__linux__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <_str.h>
-# else
-# include _STLP_NATIVE_CPP_C_HEADER(_str.h)
-# endif
-# ifdef __cplusplus
-using _STLP_VENDOR_CSTD::strlen;
-using _STLP_VENDOR_CSTD::strspn;
-# endif
-# endif
-
-# if (((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))) && defined (__APPLE__)) || defined (__OpenBSD__)
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <stddef.h>
-# else
-# include _STLP_NATIVE_C_HEADER(stddef.h)
-# endif
-# else
-# if defined (_STLP_HAS_INCLUDE_NEXT)
-# include_next <wchar.h>
-# else
-# include _STLP_NATIVE_C_HEADER(wchar.h)
-# endif
-# endif
-#endif /* !defined (_STLP_WCE_EVC3) && !defined (_STLP_NO_WCHAR_T) */
-
-#ifndef _STLP_INTERNAL_MBSTATE_T
-# include <stl/_mbstate_t.h>
-#endif
-
-#if (_STLP_OUTERMOST_HEADER_ID == 0x278)
-# if ! defined (_STLP_DONT_POP_HEADER_ID)
-# include <stl/_epilog.h>
-# undef _STLP_OUTERMOST_HEADER_ID
-# else
-# undef _STLP_DONT_POP_HEADER_ID
-# endif
-#endif
-