diff --git a/config.htm b/config.htm
new file mode 100644
index 00000000..fa757205
--- /dev/null
+++ b/config.htm
@@ -0,0 +1,1264 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+Boost Configuration Reference
+
+Contents
+
+Configuring Boost for Your Platform
+ Using the default boost configuration
+ Using the configure script
+ User settable options
+ Advanced configuration usage
+ Testing the boost configuration
+Boost Macro Reference
+ Macros that describe defects
+ Macros that describe optional features
+ Boost Helper Macros
+ Boost Informational Macros
+Guidelines for Boost Authors
+ Adding New Defect Macros
+ Adding New Feature Test Macros
+ Modifying the Boost Configuration Headers
+Rationale
+Acknowledgements
+
+Configuring Boost for Your Platform
+
+Boost library users are never required to #include <boost/config.hpp>,
+and are discouraged from including it on their own.
+
+Boost library users can request support for additional
+platforms to be added to config.hpp by emailing config@boost.org describing
+their request.
+
+Using the default boost
+configuration
+
+Boost is designed so that it is already correctly configured
+for most common compilers; you should be able to use boost "as
+is" without any configuration work. Since the compiler is
+configured separately from the standard library used, that should
+hold true even if you have replaced your compiler's standard
+library with one from a third party (like STLport).
+
+Using boost "as is" without trying to reconfigure it
+is the recommended method of using boost, however you can run a
+configure script if you want to, and there are regression tests
+provided that allow you to test the current boost configuration
+with your particular compiler setup.
+
+
+
+If you know that boost is incorrectly configured for your
+particular setup, and you are on a unix like platform, then you
+may want to try and improve things by running the boost configure
+script. From a shell command prompt you will need to cd into
+<boost-root>/libs/config/ and type:
+
+./configure
+
+you will see a list of the items being checked as the script
+works it way through the regression tests. Note that the
+configure script only really auto-detects your compiler if it's
+called g++, c++ or CC. If you are using some other compiler then
+you will need to set one or more of the following environment
+variables:
+
+
+
+ Variable
+ |
+ Description
+ |
+
+
+ CXX |
+ The name of the compiler,
+ for example "c++". |
+
+
+ CXXFLAGS |
+ The compiler flags to use,
+ for example "-O2". |
+
+
+ LDFLAGS |
+ The linker flags to use, for
+ example "-L/mypath". |
+
+
+ LIBS |
+ Any libraries to link in,
+ for example -lpthread. |
+
+
+
+For example to run the configure script with HP aCC, you might
+use something like:
+
+export CXX="aCC"
+export CXXFLAGS="-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE -DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"
+export LDFLAGS="-DAportable"
+export LIBS="-lpthread"
+./configure
+
+However you run the configure script, when it finishes you
+will find a new header - user.hpp - located in the <boost-root>/libs/config/ directory. Note
+that configure does not install this header into your boost
+include path by default. This header contains all the
+options generated by the configure script, plus a header-section
+that contains the user settable options from the default version
+of user.hpp (located
+under <boost-root>/boost/config/). There are two ways you
+can use this header:
+
+Option 1: copy the header into <boost-root>/boost/config/
+so that it replaces the default user.hpp provided by boost.
+This option allows only one configure-generated setup; boost
+developers should avoid this option, as it incurs the danger of
+accidentally committing a configure-modified user.hpp to the cvs
+repository (something you will not be thanked for!).
+
+Option 2: give the header a more memorable name, and place it
+somewhere convenient, then define the macro BOOST_USER_CONFIG to
+point to it. For example create a new sub-directory <boost-root>/boost/config/user/,
+and copy the header there; for example as "multithread-gcc-config.hpp".
+Then when compiling add the command line option: -DBOOST_USER_CONFIG="boost/config/user/multithread-gcc-config.hpp",
+and boost will use the new configuration header. This option
+allows you to generate more than one configuration header, and to
+keep them separate from the boost source - so that updates to the
+source do not interfere with your configuration.
+
+User settable options
+
+There are some configuration-options that represent user
+choices, rather than compiler defects or platform specific
+options. These are listed in <boost/config/user.hpp> and at
+the start of a configure-generated user.hpp header. You can
+define these on the command line, or by editing <boost/config/user.hpp>,
+they are listed in the following table:
+
+
+
+ Macro
+ |
+ Description
+ |
+
+
+ BOOST_USER_CONFIG |
+ When defined, it should
+ point to the name of the user configuration file to
+ include prior to any boost configuration files. When not
+ defined, defaults to <boost/config/user.hpp>. |
+
+
+ BOOST_COMPILER_CONFIG |
+ When defined, it should
+ point to the name of the compiler configuration file to
+ use. Defining this cuts out the compiler selection logic,
+ and eliminates the dependency on the header containing
+ that logic. For example if you are using gcc, then you
+ could define BOOST_COMPILER_CONFIG to "boost/config/compiler/gcc.hpp". |
+
+
+ BOOST_STDLIB_CONFIG |
+ When defined, it should
+ point to the name of the standard library configuration
+ file to use. Defining this cuts out the standard library
+ selection logic, and eliminates the dependency on the
+ header containing that logic. For example if you are
+ using STLport, then you could define BOOST_STDLIB_CONFIG
+ to "boost/config/stdlib/stlport.hpp". |
+
+
+ BOOST_PLATFORM_CONFIG |
+ When defined, it should
+ point to the name of the platform configuration file to
+ use. Defining this cuts out the platform selection logic,
+ and eliminates the dependency on the header containing
+ that logic. For example if you are compiling on linux,
+ then you could define BOOST_PLATFORM_CONFIG to "boost/config/platform/linux.hpp". |
+
+
+ BOOST_NO_COMPILER_CONFIG |
+ When defined, no compiler
+ configuration file is selected or included, define when
+ the compiler is fully conformant with the standard, or
+ where the user header (see BOOST_USER_CONFIG), has had
+ any options necessary added to it, for example by an
+ autoconf generated configure script. |
+
+
+ BOOST_NO_STDLIB_CONFIG |
+ When defined, no standard
+ library configuration file is selected or included,
+ define when the standard library is fully conformant with
+ the standard, or where the user header (see
+ BOOST_USER_CONFIG), has had any options necessary added
+ to it, for example by an autoconf generated configure
+ script. |
+
+
+ BOOST_NO_PLATFORM_CONFIG |
+ When defined, no platform
+ configuration file is selected or included, define when
+ the platform is fully conformant with the standard (and
+ has no useful extra features), or where the user header (see
+ BOOST_USER_CONFIG), has had any options necessary added
+ to it, for example by an autoconf generated configure
+ script. |
+
+
+ BOOST_NO_CONFIG |
+ Equivalent to defining all
+ of BOOST_NO_COMPILER_CONFIG, BOOST_NO_STDLIB_CONFIG and
+ BOOST_NO_PLATFORM_CONFIG. |
+
+
+ BOOST_STRICT_CONFIG |
+ The normal behavior for compiler versions that are
+ newer than the last known version, is to assume that they
+ have all the same defects as the last known version. By
+ setting this define, then compiler versions that are
+ newer than the last known version are assumed to be fully
+ conforming with the standard. This is probably most
+ useful for boost developers or testers, and for those who
+ want to use boost to test beta compiler versions. |
+
+
+ BOOST_ASSERT_CONFIG |
+ When this flag is set, if the config finds anything
+ unknown, then it will stop with a #error rather than
+ continue. Boost regression testers should set this
+ define, as should anyone who wants to quickly check
+ whether boost is supported on their platform. |
+
+
+ BOOST_DISABLE_THREADS |
+ When defined, disables
+ threading support, even if the compiler in its current
+ translation mode supports multiple threads. |
+
+
+
+Advanced configuration usage
+
+By setting various macros on the compiler command line or by
+editing <boost/config/user.hpp>,
+the boost configuration setup can be optimised in a variety of
+ways.
+
+Boost's configuration is structured so that the user-configuration
+is included first (defaulting to <boost/config/user.hpp>
+if BOOST_USER_CONFIG is not defined). This sets up any user-defined
+policies, and gives the user-configuration a chance to influence
+what happens next.
+
+Next the compiler, standard library, and platform
+configuration files are included. These are included via macros (BOOST_COMPILER_CONFIG
+etc, see user settable macros), and
+if the corresponding macro is undefined then a separate header
+that detects which compiler/standard library/platform is in use
+is included in order to set these. The config can be told to
+ignore these headers altogether if the corresponding BOOST_NO_XXX
+macro is set (for example BOOST_NO_COMPILER_CONFIG to disable
+including any compiler configuration file - see user settable macros).
+
+Finally the boost configuration header, includes <boost/config/suffix.hpp>;
+this header contains any boiler plate configuration code - for
+example where one boost macro being set implies that another must
+be set also.
+
+The following usage examples represent just a few of the
+possibilities:
+
+Example 1, creating our own frozen configuration.
+
+Lets suppose that we're building boost with Visual C++ 6, and
+STLport 4.0. Lets suppose also that we don't intend to update our
+compiler or standard library any time soon. In order to avoid
+breaking dependencies when we update boost, we may want to "freeze"
+our configuration headers, so that we only have to rebuild our
+project if the boost code itself has changed, and not because the
+boost config has been updated for more recent versions of Visual
+C++ or STLport. We'll start by realising that the configuration
+files in use are: <boost/config/compiler/visualc.hpp>
+for the compiler, <boost/config/stdlib/stlport.hpp>
+for the standard library, and <boost/config/platform/win32.hpp>
+for the platform. Next we'll create our own private configuration
+directory: boost/config/mysetup/, and copy the configuration
+files into there. Finally, open up <boost/config/user.hpp>
+and edit the following defines:
+
+#define BOOST_COMPILER_CONFIG "boost/config/mysetup/visualc.hpp"
+#define BOOST_STDLIB_CONFIG "boost/config/mysetup/stlport.hpp"
+#define BOOST_USER_CONFIG "boost/config/mysetup/win32.hpp"
+
+Now when you use boost, its configuration header will go
+straight to our "frozen" versions, and ignore the
+default versions, you will now be insulated from any
+configuration changes when you update boost. This technique is
+also useful if you want to modify some of the boost configuration
+files; for example if you are working with a beta compiler
+release not yet supported by boost.
+
+Example 2: skipping files that you don't need.
+
+Lets suppose that you're using boost with a compiler that is
+fully conformant with the standard; you're not interested in the
+fact that older versions of your compiler may have had bugs,
+because you know that your current version does not need any
+configuration macros setting. In a case like this, you can define
+BOOST_NO_COMPILER_CONFIG either on the command line, or in
+<boost/config/user.hpp>, and miss out the compiler
+configuration header altogether (actually you miss out two
+headers, one which works out what the compiler is, and one that
+configures boost for it). This has two consequences: the first is
+that less code has to be compiled, and the second that you have
+removed a dependency on two boost headers.
+
+Example 3: using configure script to freeze the boost
+configuration.
+
+If you are working on a unix-like platform then you can use
+the configure script to generate a "frozen"
+configuration based on your current compiler setup - see using the configure script for more
+details.
+
+Testing the boost configuration
+
+The boost configuration library provides a full set of
+regression test programs under the <boost-root>/libs/config/test/
+sub-directory:
+
+
+
+ File
+ |
+ Description
+ |
+
+
+ config_info.cpp |
+ Prints out a detailed
+ description of your compiler/standard library/platform
+ setup, plus your current boost configuration. The
+ information provided by this program useful in setting up
+ the boost configuration files. If you report that boost
+ is incorrectly configured for your compiler/library/platform
+ then please include the output from this program when
+ reporting the changes required. |
+
+
+ config_test.cpp |
+ A monolithic test program
+ that includes most of the individual test cases. This
+ provides a quick check to see if boost is correctly
+ configured for your compiler/library/platform. |
+
+
+ limits_test.cpp |
+ Tests your standard
+ library's std::numeric_limits implementation (or its
+ boost provided replacement if BOOST_NO_LIMITS is defined).
+ This test file fails with most versions of
+ numeric_limits, mainly due to the way that some compilers
+ treat NAN's and infinity. |
+
+
+ no_*pass.cpp |
+ Individual compiler defect
+ test files. Each of these should compile, if one does not
+ then the corresponding BOOST_NO_XXX macro needs to be
+ defined - see each test file for specific details. |
+
+
+ no_*fail.cpp |
+ Individual compiler defect
+ test files. Each of these should not compile, if
+ one does then the corresponding BOOST_NO_XXX macro is
+ defined when it need not be - see each test file for
+ specific details. |
+
+
+ has_*pass.cpp |
+ Individual feature test
+ files. If one of these does not compile then the
+ corresponding BOOST_HAS_XXX macro is defined when it
+ should not be - see each test file for specific details. |
+
+
+ has_*fail.cpp |
+ Individual feature test
+ files. If one of these does compile then the
+ corresponding BOOST_HAS_XXX macro can be safely defined -
+ see each test file for specific details. |
+
+
+
+Although you can run the configuration regression tests as
+individual test files, there are rather a lot of them, so there
+are a couple of shortcuts to help you out:
+
+If you have built the boost
+regression test driver, then you can use this to produce a
+nice html formatted report of the results using the supplied test
+file.
+
+Alternatively you can run the configure script like this:
+
+./configure --enable-test
+
+in which case the script will test the current configuration
+rather than creating a new one from scratch.
+
+If you are reporting the results of these tests for a new
+platform/library/compiler then please include a log of the full
+compiler output, the output from config_info.cpp, and the pass/fail
+test results.
+
+Boost Macro Reference
+
+Macros that describe defects:
+
+The following macros all describe features that are required
+by the C++ standard, if one of the following macros is defined,
+then it represents a defect in the compiler's conformance with
+the standard.
+
+
+
+ Macro
+ |
+ Section
+ |
+ Description
+ |
+
+
+ BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP |
+ Compiler |
+ Compiler does not implement
+ argument-dependent lookup (also named Koenig lookup); see
+ std::3.4.2 [basic.koenig.lookup] |
+
+
+ BOOST_NO_AUTO_PTR |
+ Standard library |
+ If the compiler / library
+ supplies non-standard or broken std::auto_ptr. |
+
+
+ BOOST_NO_CV_SPECIALIZATIONS |
+ Compiler |
+ If template specialisations
+ for cv-qualified types conflict with a specialisation for
+ a cv-unqualififed type. |
+
+
+ BOOST_NO_CV_VOID_SPECIALIZATIONS |
+ Compiler |
+ If template specialisations
+ for cv-void types conflict with a specialisation for void. |
+
+
+ BOOST_NO_CWCHAR |
+ Platform |
+ The Platform does not
+ provide <wchar.h> and <cwchar>. |
+
+
+ BOOST_NO_CWCTYPE |
+ Platform |
+ The Platform does not
+ provide <wctype.h> and <cwctype>. |
+
+
+ BOOST_NO_DEPENDENT_NESTED_DERIVATIONS |
+ Compiler |
+ The compiler fails to
+ compile a nested class that has a dependent base class:template<typename T>
+struct foo : {
+ template<typename U>
+ struct bar : public U {};
+};
+ |
+
+
+ BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS |
+ Compiler |
+ Template value parameters
+ cannot have a dependent type, for example:template<class T, typename T::type value>
+class X { ... };
+ |
+
+
+ BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS |
+ Compiler |
+ Can only use deduced
+ template arguments when calling function template
+ instantiations. |
+
+
+ BOOST_NO_INCLASS_MEMBER_INITIALIZATION |
+ Compiler |
+ Compiler violates std::9.4.2/4. |
+
+
+ BOOST_NO_INTRINSIC_WCHAR_T |
+ Compiler |
+ The C++ implementation does
+ not provide wchar_t, or it is really a synonym for
+ another integral type. Use this symbol to decide whether
+ it is appropriate to explicitly specialize a template on
+ wchar_t if there is already a specialization for other
+ integer types. |
+
+
+ BOOST_NO_LIMITS |
+ Standard library |
+ The C++ implementation does
+ not provide the <limits> header. |
+
+
+ BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS |
+ Standard library |
+ Constants such as
+ numeric_limits<T>::is_signed are not available for
+ use at compile-time. |
+
+
+ BOOST_NO_MEMBER_TEMPLATE_KEYWORD |
+ Compiler |
+ If the compiler supports
+ member templates, but not the template keyword when
+ accessing member template classes. |
+
+
+ BOOST_NO_MEMBER_TEMPLATE_FRIENDS |
+ Compiler |
+ Member template friend
+ syntax ("template<class P> friend class frd;")
+ described in the C++ Standard, 14.5.3, not supported. |
+
+
+ BOOST_NO_MEMBER_TEMPLATES |
+ Compiler |
+ Member template functions
+ not fully supported. |
+
+
+ BOOST_NO_OPERATORS_IN_NAMESPACE |
+ Compiler |
+ Compiler requires inherited
+ operator friend functions to be defined at namespace
+ scope, then using'ed to boost. Probably GCC specific. See
+ boost/operators.hpp
+ for example. |
+
+
+ BOOST_NO_POINTER_TO_MEMBER_CONST |
+ Compiler |
+ The compiler does not
+ correctly handle pointers to const member functions,
+ preventing use of these in overloaded function templates.
+ See boost/functional.hpp
+ for example. |
+
+
+ BOOST_NO_PRIVATE_IN_AGGREGATE |
+ Compiler |
+ The compiler misreads 8.5.1,
+ treating classes as non-aggregate if they contain private
+ or protected member functions. |
+
+
+ BOOST_NO_STD_ALLOCATOR |
+ Standard library |
+ The C++ standard library
+ does not provide a standards conforming std::allocator. |
+
+
+ BOOST_NO_STD_DISTANCE |
+ Standard library |
+ The platform does not have a
+ conforming version of std::distance. |
+
+
+ BOOST_NO_STD_ITERATOR |
+ Standard library |
+ The C++ implementation fails
+ to provide the std::iterator class. |
+
+
+ BOOST_NO_STD_ITERATOR_TRAITS |
+ Standard library |
+ The compiler does not
+ provide a standard compliant implementation of std::iterator_traits.
+ Note that the compiler may still have a non-standard
+ implementation. |
+
+
+ BOOST_NO_STD_LOCALE |
+ Standard library |
+ The standard library lacks
+ std::locale. |
+
+
+ BOOST_NO_STD_MESSAGES |
+ Standard library |
+ The standard library lacks a
+ conforming std::messages facet. |
+
+
+ BOOST_NO_STD_MIN_MAX |
+ Standard library |
+ The C++ standard library
+ does not provide the min() and max() template functions
+ that should be in <algorithm>. |
+
+
+ BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN |
+ Standard library |
+ Defined if the standard library's output
+ iterators are not assignable. |
+
+
+ BOOST_NO_STD_USE_FACET |
+ Standard library |
+ The standard library lacks a
+ conforming std::use_facet. |
+
+
+ BOOST_NO_STD_WSTRING |
+ Standard library |
+ The standard library lacks
+ std::wstring. |
+
+
+ BOOST_NO_STDC_NAMESPACE |
+ Compiler/Platform |
+ The contents of C++ standard
+ headers for C library functions (the <c...> headers)
+ have not been placed in namespace std. This test is
+ difficult - some libraries "fake" the std C
+ functions by adding using declarations to import them
+ into namespace std, unfortunately they don't necessarily
+ catch all of them... |
+
+
+ BOOST_NO_STRINGSTREAM |
+ Standard library |
+ The C++ implementation does
+ not provide the <sstream> header. |
+
+
+ BOOST_NO_SWPRINTF |
+ Platform |
+ The platform does not have a
+ conforming version of swprintf. |
+
+
+ BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION |
+ Compiler |
+ Class template partial
+ specialization (14.5.4 [temp.class.spec]) not supported. |
+
+
+ BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS |
+ Standard library |
+ The standard library does
+ not provide templated iterator constructors for its
+ containers. |
+
+
+ BOOST_NO_USING_TEMPLATE |
+ Compiler |
+ The compiler will not accept
+ a using declaration that imports a template from the
+ global namespace into a named namespace. Probably Borland
+ specific. |
+
+
+ BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING |
+ Compiler |
+ The compiler does not
+ perform function template ordering or its function
+ template ordering is incorrect. template<typename T> void f(T); // #1
+template<typename T, typename U> void f(T (*)(U)); // #2
+
+void bar(int);
+
+f(&bar); // should choose #2.
+ |
+
+
+
+Macros that describe optional features:
+
+The following macros describe features that are not required
+by the C++ standard. The macro is only defined if the feature is
+present.
+
+
+
+ Macro
+ |
+ Section
+ |
+ Description
+ |
+
+
+ BOOST_HAS_BETHREADS |
+ Platform |
+ The platform supports BeOS
+ style threads. |
+
+
+ BOOST_HAS_HASH |
+ Standard library |
+ The C++ implementation
+ provides the (SGI) hash_set or hash_map classes. |
+
+
+ BOOST_HAS_MACRO_USE_FACET |
+ Standard library |
+ The standard library lacks a
+ conforming std::use_facet, but has a macro _USE(loc, Type)
+ that does the job. This is primarily for the Dinkumware
+ std lib. |
+
+
+ BOOST_HAS_NL_TYPES_H |
+ Platform |
+ The platform has an
+ <nl_types.h>. |
+
+
+ BOOST_HAS_PTHREADS |
+ Platform |
+ The platform support POSIX
+ style threads. |
+
+
+ BOOST_HAS_SLIST |
+ Standard library |
+ The C++ implementation
+ provides the (SGI) slist class. |
+
+
+ BOOST_HAS_STLP_USE_FACET |
+ Standard library |
+ The standard library lacks a
+ conforming std::use_facet, but has a workaound class-version
+ that does the job. This is primarily for the STLport std
+ lib. |
+
+
+ BOOST_HAS_THREADS |
+ Platform/compiler |
+ Defined if the compiler, in
+ its current translation mode, supports multiple threads
+ of execution. |
+
+
+ BOOST_HAS_TWO_ARG_USE_FACET |
+ Standard library |
+ The standard library lacks a
+ conforming std::use_facet, but has a two argument version
+ that does the job. This is primarily for the Rogue Wave
+ std lib. |
+
+
+ BOOST_HAS_UNISTD_H |
+ Platform |
+ The Platform provides
+ <unistd.h>. |
+
+
+ BOOST_HAS_WINTHREADS |
+ Platform |
+ The platform supports MS
+ Windows style threads. |
+
+
+ BOOST_MSVC_STD_ITERATOR |
+ Standard library |
+ Microsoft's broken version
+ of std::iterator is being used. This implies that std::iterator
+ takes no more than two template parameters, and that std::reverse_iterator
+ takes at least two template parameters. |
+
+
+ BOOST_MSVC6_MEMBER_TEMPLATES |
+ Compiler |
+ Microsoft Visual C++ 6.0 has
+ enough member template idiosyncrasies (being polite) that
+ BOOST_NO_MEMBER_TEMPLATES is defined for this compiler.
+ BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow compiler
+ specific workarounds. This macro gets defined
+ automatically if BOOST_NO_MEMBER_TEMPLATES is not defined
+ - in other words this is treated as a strict subset of
+ the features required by the standard. |
+
+
+ BOOST_HAS_STDINT_H |
+ Platform |
+ There are no 1998 C++
+ Standard headers <stdint.h> or <cstdint>,
+ although the 1999 C Standard does include <stdint.h>.
+ If <stdint.h> is present, <boost/stdint.h>
+ can make good use of it, so a flag is supplied (signalling
+ presence; thus the default is not present, conforming to
+ the current C++ standard). |
+
+
+
+Boost Helper Macros
+
+The following macros are either simple helpers, or macros that
+provide workarounds for compiler/standard library defects.
+
+
+
+ Macro
+ |
+ Description
+ |
+
+
+ BOOST_STATIC_CONSTANT(Type,
+ assignment) |
+ On compilers which don't
+ allow in-class initialization of static integral constant
+ members, we must use enums as a workaround if we want the
+ constants to be available at compile-time. This macro
+ gives us a convenient way to declare such constants. For
+ example instead of:struct foo{
+ static const int value = 2;
+};
+ use:
+ struct foo{
+ BOOST_STATIC_CONSTANT(int, value = 2);
+};
+ |
+
+
+ BOOST_USE_FACET(Type, loc) |
+ When the standard library
+ does not have a comforming std::use_facet there are
+ various workarounds available, but they differ from
+ library to library. This macro provides a consistent way
+ to access a locale's facets. For example, replace:std::use_facet<Type>(loc);
+ with:
+ BOOST_USE_FACET(Type, loc);
+ Note do not add a std:: prefix to the front of
+ BOOST_USE_FACET.
+ |
+
+
+ BOOST_NESTED_TEMPLATE |
+ Member templates are
+ supported by some compilers even though they can't use
+ the A::template member<U> syntax, as a workaround
+ replace:typedef typename A::template rebind<U> binder;
+ with:
+ typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
+ |
+
+
+ BOOST_STRINGIZE(X) |
+ Converts the parameter X to
+ a string after macro replacement on X has been performed. |
+
+
+ BOOST_JOIN(X,Y) |
+ This piece of macro magic
+ joins the two arguments together, even when one of the
+ arguments is itself a macro (see 16.3.1 in C++ standard).
+ This is normally used to create a mangled name in
+ combination with a predefined macro such a __LINE__. |
+
+
+
+Boost Informational Macros
+
+The following macros describe boost features; these are the
+generally speaking the only boost macros that should be tested in
+user code.
+
+
+
+ Macro
+ |
+ Header
+ |
+ Description
+ |
+
+
+ BOOST_VERSION |
+ <boost/version.hpp> |
+ Describes the boost version
+ number in XXYYZZ format such that: (BOOST_VERSION % 100)
+ is the sub-minor version, ((BOOST_VERSION / 100) % 1000)
+ is the minor version, and (BOOST_VERSION / 100000) is the
+ major version. |
+
+
+ BOOST_NO_INT64_T |
+ <boost/cstdint.hpp> <boost/stdint.h>
+ |
+ Defined if there are no 64-bit
+ integral types: int64_t, uint64_t etc. |
+
+
+ BOOST_NO_INTEGRAL_INT64_T |
+ <boost/cstdint.hpp> <boost/stdint.h>
+ |
+ Defined if int64_t as
+ defined by <boost/cstdint.hpp> is not usable in
+ integral constant expressions. |
+
+
+ BOOST_NO_WREGEX |
+ <boost/regex.hpp> |
+ Defined if the regex library
+ does not support wide character regular expressions. |
+
+
+ BOOST_COMPILER |
+ <boost/config.hpp> |
+ Defined as a string
+ describing the name and version number of the compiler in
+ use. Mainly for debugging the configuration. |
+
+
+ BOOST_STDLIB |
+ <boost/config.hpp> |
+ Defined as a string
+ describing the name and version number of the standard
+ library in use. Mainly for debugging the configuration. |
+
+
+ BOOST_PLATFORM |
+ <boost/config.hpp> |
+ Defined as a string
+ describing the name of the platform. Mainly for debugging
+ the configuration. |
+
+
+
+
+
+Guidelines for Boost Authors
+
+The boost/config.hpp
+header is used to pass configuration information to other boost
+files, allowing them to cope with platform dependencies such as
+arithmetic byte ordering, compiler pragmas, or compiler
+shortcomings. Without such configuration information, many
+current compilers would not work with the Boost libraries.
+
+Centralizing configuration information in this header reduces
+the number of files that must be modified when porting libraries
+to new platforms, or when compilers are updated. Ideally, no
+other files would have to be modified when porting to a new
+platform.
+
+Configuration headers are controversial because some view them
+as condoning broken compilers and encouraging non-standard
+subsets. Adding settings for additional platforms and maintaining
+existing settings can also be a problem. In other words,
+configuration headers are a necessary evil rather than a
+desirable feature. The boost config.hpp policy is designed to
+minimize the problems and maximize the benefits of a
+configuration header.
+
+Note that:
+
+
+ - Boost library implementers are not required to #include
+ <boost/config.hpp>, and are not required in any way
+ to support compilers that do not comply with the C++
+ Standard (ISO/IEC 14882).
+ - If a library implementer wishes to support some non-conforming
+ compiler, or to support some platform specific feature,
+ #include <boost/config.hpp> is the preferred way to
+ obtain configuration information not available from the
+ standard headers such as <climits>, etc.
+ - If configuration information can be deduced from standard
+ headers such as <climits>, use those standard
+ headers rather than <boost/config.hpp>.
+ - Boost files that use macros defined in <boost/config.hpp>
+ should have sensible, standard conforming, default
+ behavior if the macro is not defined. This means that the
+ starting point for porting <boost/config.hpp> to a
+ new platform is simply to define nothing at all specific
+ to that platform. In the rare case where there is no
+ sensible default behavior, an #error message should
+ describe the problem.
+ - If a Boost library implementer wants something added to
+ config.hpp, post a request on the Boost mailing list.
+ There is no guarantee such a request will be honored; the
+ intent is to limit the complexity of config.hpp.
+ - The intent is to support only compilers which appear on
+ their way to becoming C++ Standard compliant, and only
+ recent releases of those compilers at that.
+ - The intent is not to disable mainstream features now well-supported
+ by the majority of compilers, such as namespaces,
+ exceptions, RTTI, or templates.
+
+
+Adding New Defect Macros
+
+When you need to add a new defect macro - either to fix a
+problem with an existing library, or when adding a new library -
+distil the issue down to a simple test case, often at this point
+other (possibly better) workarounds may become apparent. Secondly
+always post the test case code to the boost mailing list and
+invite comments; remember that C++ is complex and that sometimes
+what may appear a defect, may in fact turn out to be a problem
+with the authors understanding of the standard.
+
+When you name the macro, follow the BOOST_NO_SOMETHING naming
+convention, so that it's obvious that this is a macro reporting a
+defect.
+
+Finally, add the test program to the regression tests. You
+will need to place the test case in a .cxx file with the
+following comments near the top:
+
+// MACRO: BOOST_NO_FOO
+// TITLE: foo
+// DESCRIPTION: If the compiler fails to support foo
+
+These comments are processed by the autoconf script, so make
+sure the format follows the one given. The file should be named
+"boost_no_foo.cxx", where foo is the defect description
+- try and keep the file name under the Mac 30 character filename
+limit though. You will also need to provide a function prototype
+"int test()" that is declared in a namespace with the
+same name as the macro, but in all lower case, and which returns
+zero on success:
+
+namespace boost_no_foo{
+
+int test()
+{
+ // test code goes here:
+ //
+ return 0;
+}
+
+}
+
+Once the test code is in place, run the shell script "generate"
+that you will find in the boost-root/libs/config/tools/ directory.
+This generates two .cpp test files from the new test code, and
+adds the tests to the regression test script, and the config_test.cpp
+test program. If you can't run shell scripts on your platform
+then post a message on the boost mailing list, and someone will
+run it for you. Finally add a new entry to config_info.cpp so
+that the new macro gets printed out when that program is run.
+
+Adding New Feature Test
+Macros
+
+When you need to add a macro that describes a feature that the
+standard does not require, follow the convention for adding a new
+defect macro (above), but call the macro BOOST_HAS_FOO, and name
+the test file "boost_has_foo.cxx". Try not to add
+feature test macros unnecessarily, if there is a platform
+specific macro that can already be used (for example _WIN32,
+__BEOS__, or __linux) to identify the feature then use that. Try
+to keep the macro to a feature group, or header name, rather than
+one specific API (for example BOOST_HAS_NL_TYPES_H rather than
+BOOST_HAS_CATOPEN). If the macro describes a POSIX feature group,
+then add boilerplate code to boost/config/suffix.hpp
+to auto-detect the feature where possible (if you are wondering
+why we can't use POSIX feature test macro directly, remember that
+many of these features can be added by third party libraries, and
+are not therefore identified inside <unistd.h>).
+
+Modifying the Boost
+Configuration Headers
+
+The aim of boost's configuration setup is that the
+configuration headers should be relatively stable - a boost user
+should not have to recompile their code just because the
+configuration for some compiler that they're not interested in
+has changed. Separating the configuration into separate compiler/standard
+library/platform sections provides for part of this stability,
+but boost authors require some amount of restraint as well, in
+particular:
+
+<boost/config.hpp>
+should never change, don't alter this file.
+
+<boost/config/user.hpp>
+is included by default, don't add extra code to this file unless
+you have to. If you do, please remember to update libs/config/tools/configure.in as
+well.
+
+<boost/config/suffix.hpp>
+is always included so be careful about modifying this file as it
+breaks dependencies for everyone. This file should include only
+"boilerplate" configuration code, and generally should
+change only when new macros are added.
+
+<boost/config/select_compiler_config.hpp>,
+<boost/config/select_platform_config.hpp>
+and <boost/config/select_stdlib_config.hpp>
+are included by default and should change only if support for a
+new compiler/standard library/platform is added.
+
+The compiler/platform/standard library selection code is set
+up so that unknown platforms are ignored and assumed to be fully
+standards compliant - this gives unknown platforms a "sporting
+chance" of working "as is" even without running
+the configure script.
+
+When adding or modifying the individual mini-configs, assume
+that future, as yet unreleased versions of compilers, have all
+the defects of the current version. Although this is perhaps
+unnecessarily pessimistic, it cuts down on the maintenance of
+these files, and experience suggests that pessimism is better
+placed than optimism here!
+
+Rationale
+
+The problem with many traditional "textbook"
+implementations of configuration headers (where all the
+configuration options are in a single "monolithic"
+header) is that they violate certain fundamental software
+engineering principles which would have the effect of making
+boost more fragile, more difficult to maintain and more difficult
+to use safely. You can find a description of the principles from
+the following
+article.
+
+The problem
+
+Consider a situation in which you are concurrently developing
+on multiple platforms. Then consider adding a new platform or
+changing the platform definitions of an existing platform. What
+happens? Everything, and this does literally mean everything,
+recompiles.. Isn't it quite absurd that adding a new platform,
+which has absolutely nothing to do with previously existing
+platforms, means that all code on all existing platforms needs to
+be recompiled?
+
+Effectively, there is an imposed physical dependency between
+platforms that have nothing to do with each other. Essentially,
+the traditional solution employed by configuration headers does
+not conform to the Open-Closed Principle:
+
+"A module should be open for extension but closed
+for modification."
+
+Extending a traditional configuration header implies modifying
+existing code.
+
+Furthermore, consider the complexity and fragility of the
+platform detection code. What if a simple change breaks the
+detection on some minor platform? What if someone accidentally or
+on purpose (as a workaround for some other problem) defines some
+platform dependent macros that are used by the detection code? A
+traditional configuration header is one of the most volatile
+headers of the entire library, and more stable elements of Boost
+would depend on it. This violates the Stable Dependencies
+Principle:
+
+"Depend in the direction of stability."
+
+After even a minor change to a traditional configuration
+header on one minor platform, almost everything on every platform
+should be tested if we follow sound software engineering practice.
+
+Another important issue is that it is not always possible to
+submit changes to <boost/config.hpp>. Some boost users are
+currently working on platforms using tools and libraries that are
+under strict Non-Disclosure Agreements. In this situation it is
+impossible to submit changes to a traditional monolithic
+configuration header, instead some method by which the user can
+insert their own configuration code must be provided.
+
+The solution
+
+The approach taken by boost's configuration headers is to
+separate configuration into three orthogonal parts: the compiler,
+the standard library and the platform. Each compiler/standard
+library/platform gets its own mini-configuration header, so that
+change to one compiler's configuration (for example) does not
+effect other compilers. In addition there are measures that can
+be taken both to omit the compiler/standard library/platform
+detection code (so that adding support to a new platform does not
+break dependencies), or to freeze the configuration completely;
+providing almost complete protection against dependency changes.
+
+Acknowledgements
+
+Beman Dawes provided the original config.hpp and part of this
+document. Vesa Karvonen provided a description of the principles
+(see rationale) and put together an
+early version of the current configuration setup. John Maddock
+put together the configuration current code, the test programs,
+the configuration script and the reference section of this
+document. Numerous boost members, past and present, have
+contributed fixes to boost's configuration.
+
+
+
+
+
+© Beman Dawes 2001
+
+© Vesa Karvonen 2001
+
+© John Maddock 2001
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config_test.cpp b/config_test.cpp
deleted file mode 100644
index 008423b1..00000000
--- a/config_test.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-// Boost config.hpp configuration test program file -----------------------//
-
-// (C) Copyright Boost.org 2000. Permission to copy, use, modify, sell and
-// distribute this software is granted provided this copyright notice appears
-// in all copies. This software is provided "as is" without express or implied
-// warranty, and with no claim as to its suitability for any purpose.
-
-// See http://www.boost.org for the most recent version.
-
-#include
-#include
-
-using std::cout;
-using std::hex;
-using std::dec;
-
-int main()
-{
-
- // boost compiler workaround defines
-
-# ifdef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
- cout << "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS defined\n";
-# endif
-
-# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZER
- cout << "BOOST_NO_INCLASS_MEMBER_INITIALIZER defined\n";
-# endif
-
-# ifdef BOOST_NO_MEMBER_TEMPLATES
- cout << "BOOST_NO_MEMBER_TEMPLATES defined\n";
-# endif
-
-# ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- cout << "BOOST_NO_MEMBER_TEMPLATE_FRIENDS defined\n";
-# endif
-
-# ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
- cout << "BOOST_NO_OPERATORS_IN_NAMESPACE defined\n";
-# endif
-
-# ifdef BOOST_NO_STD_ITERATOR
- cout << "BOOST_NO_STD_ITERATOR defined\n";
-# endif
-
-# ifdef BOOST_NO_STD_ITERATOR_TRAITS
- cout << "BOOST_NO_STD_ITERATOR_TRAITS defined\n";
-# endif
-
-# ifdef BOOST_NO_STDC_NAMESPACE
- cout << "BOOST_NO_STDC_NAMESPACE defined\n";
-# endif
-
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- cout << "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION defined\n";
-# endif
-
-# ifdef BOOST_NO_USING_TEMPLATE
- cout << "BOOST_NO_USING_TEMPLATE defined\n";
-# endif
-
-# ifdef BOOST_DECL_EXPORTS
- cout << "BOOST_DECL_EXPORTS defined\n";
-# endif
-
-# ifdef BOOST_SYSTEM_HAS_STDINT_H
- cout << "BOOST_SYSTEM_HAS_STDINT_H defined\n";
-# endif
-
-
- // compilers
-
-# ifdef __COMO__
- cout << "__COMO__ defined as " << __COMO__ << "\n";
-# endif
-
-# ifdef __COMO_VERSION__
- cout << "__COMO_VERSION__ defined as " << __COMO_VERSION__ << "\n";
-# endif
-
-# ifdef __GNUC__
- cout << "__GNUC__ defined as " << __GNUC__ << "\n";
-# endif
-
-# ifdef __GNUC_MINOR__
- cout << "__GNUC_MINOR__ defined as " << __GNUC_MINOR__ << "\n";
-# endif
-
-# ifdef __EDG__
- cout << "__EDG__ defined as " << __EDG__ << "\n";
-# endif
-
-# ifdef __EDG_VERSION__
- cout << "__EDG_VERSION__ defined as " << __EDG_VERSION__ << "\n";
-# endif
-
-# ifdef __ICC
- cout << "__ICC defined as " << __ICC << "\n";
-# endif
-
-# ifdef __ICL
- cout << "__ICL defined as " << __ICL << "\n";
-# endif
-
-# ifdef __INTEL_COMPILER
- cout << "__INTEL_COMPILER defined as " << __INTEL_COMPILER << "\n";
-# endif
-
-# ifdef __USLC__
- cout << "__USLC__ defined\n";
-# endif
-
-# ifdef __BORLANDC__
- cout << "__BORLANDC__ defined as " << __BORLANDC__ << "\n";
-# endif
-
-# ifdef __MWERKS__
- cout << "__MWERKS__ defined as " << __MWERKS__ << "\n";
-# endif
-
-# ifdef __SUNPRO_CC
- cout << "__SUNPRO_CC defined as " << __SUNPRO_CC << "\n";
-# endif
-
-# ifdef __sgi
- cout << "__sgi is defined\n";
-# ifdef _COMPILER_VERSION
- cout << "_COMPILER_VERSION defined as " << _COMPILER_VERSION << "\n";
-# endif
-# endif
-
-# ifdef __DECCXX
- cout << "__DECCXX defined\n";
-# ifdef __DECCXX_VER
- cout << "__DECCXX_VER defined as " << __DECCXX_VER << "\n";
-# endif
-# endif
-
-# ifdef _MSC_VER
- cout << "_MSC_VER defined as " << _MSC_VER << "\n";
-# endif
-
-# ifdef BOOST_MSVC
- cout << "BOOST_MSVC defined as " << BOOST_MSVC << "\n";
-# endif
-
-# ifdef BOOST_MSVC6_MEMBER_TEMPLATES
- cout << "BOOST_MSVC6_MEMBER_TEMPLATES defined\n";
-# endif
-
-# ifdef BOOST_MSVC_STD_ITERATOR
- cout << "BOOST_MSVC_STD_ITERATOR defined\n";
-# endif
-
-
- // libraries
-
-# ifdef __SGI_STL_PORT
- cout << "__SGI_STL_PORT defined as 0x"
- << hex << __SGI_STL_PORT << dec << "\n";
-# endif
-
-# ifdef __GLIBCPP__
- cout << "__GLIBCPP__ defined\n";
-# endif
-
-# ifdef _GLIBCPP_VERSION
- cout << "_GLIBCPP_VERSION defined as " << _GLIBCPP_VERSION << "\n";
-# endif
-
-# ifdef _GLIBCPP_USE_LONG_LONG
- cout << "_GLIBCPP_USE_LONG_LONG defined\n";
-# endif
-
-# ifdef _GLIBCPP_USE_WCHAR_T
- cout << "_GLIBCPP_USE_WCHAR_T defined\n";
-# endif
-
-# ifdef __STL_NO_NAMESPACES
- cout << "__STL_NO_NAMESPACES defined\n";
-# endif
-
-# ifdef __STL_USE_NAMESPACES
- cout << "__STL_USE_NAMESPACES defined\n";
-# endif
-
-# ifdef __STL_IMPORT_VENDOR_CSTD
- cout << "__STL_IMPORT_VENDOR_CSTD defined\n";
-# endif
-
-# ifdef _RWSTD_VER
- cout << "_RWSTD_VER defined as " << _RWSTD_VER << "\n";
-# endif
-
- return 0;
-}
diff --git a/configure b/configure
new file mode 100644
index 00000000..9c012332
--- /dev/null
+++ b/configure
@@ -0,0 +1,2338 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by Autoconf 2.52.
+#
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+cross_compiling=no
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+ac_unique_file="./tools/configure.in"
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: should be removed in autoconf 3.0.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L if you have libraries in a
+ nonstandard directory
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have
+ headers in a nonstandard directory
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+EOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue
+ cd $ac_subdir
+ # A "../" for each directory in /$ac_subdir.
+ ac_dots=`echo $ac_subdir |
+ sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'`
+
+ case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_sub_srcdir=$srcdir/$ac_subdir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_sub_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_sub_srcdir/configure; then
+ echo
+ $SHELL $ac_sub_srcdir/configure --help=recursive
+ elif test -f $ac_sub_srcdir/configure.ac ||
+ test -f $ac_sub_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\EOF
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+EOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 </dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+PATH = $PATH
+
+_ASUNAME
+} >&5
+
+cat >&5 <\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ ac_sep=" " ;;
+ *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
+ ac_sep=" " ;;
+ esac
+ # Get rid of the leading space.
+done
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ echo >&5
+ echo "## ----------------- ##" >&5
+ echo "## Cache variables. ##" >&5
+ echo "## ----------------- ##" >&5
+ echo >&5
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} >&5
+ sed "/^$/d" confdefs.h >conftest.log
+ if test -s conftest.log; then
+ echo >&5
+ echo "## ------------ ##" >&5
+ echo "## confdefs.h. ##" >&5
+ echo "## ------------ ##" >&5
+ echo >&5
+ cat conftest.log >&5
+ fi
+ (echo; echo) >&5
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal" >&5
+ echo "$as_me: exit $exit_status" >&5
+ rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:820: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ cat "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:838: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:842: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:848: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:850: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:852: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status. It doesn't matter if
+ # we pass some twice (in addition to the command line arguments).
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
+ ac_configure_args="$ac_configure_args '$ac_arg'"
+ ;;
+ *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
+ ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:871: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:873: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+echo "#! $SHELL" >conftest.sh
+echo "exit 0" >>conftest.sh
+chmod +x conftest.sh
+if { (echo "$as_me:893: PATH=\".;.\"; conftest.sh") >&5
+ (PATH=".;."; conftest.sh) 2>&5
+ ac_status=$?
+ echo "$as_me:896: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_path_separator=';'
+else
+ ac_path_separator=:
+fi
+PATH_SEPARATOR="$ac_path_separator"
+rm -f conftest.sh
+
+# Check whether --enable-test or --disable-test was given.
+if test "${enable_test+set}" = set; then
+ enableval="$enable_test"
+
+fi;
+
+if test "foo"$enable_test = "foo"; then
+ enable_test="no"
+fi
+
+cat << EOF
+*** $0: boost configuration utility ***
+
+Please stand by while exploring compiler capabilities...
+Be patient - this could take some time...
+
+Note that this test script only gives an approximate
+configuration - you will need to test the results carefully
+using the boost regresion test suite before using the results.
+EOF
+
+if test $enable_test = 'yes'; then
+
+cat << EOF
+
+This script reports only the difference between the detected
+configuration, and the existing boost configuration. It's
+primary aim is to quicky report how well boost is configured
+for one compiler.
+
+***
+
+EOF
+
+else
+
+cat << EOF
+
+***
+
+EOF
+fi
+
+# Check whether --enable-extension or --disable-extension was given.
+if test "${enable_extension+set}" = set; then
+ enableval="$enable_extension"
+
+case "$enableval" in
+ no) echo "$as_me:953: result: Info :.cpp used as extension for tests" >&5
+echo "${ECHO_T}Info :.cpp used as extension for tests" >&6
+ ac_ext=cpp
+ ;;
+ *) echo "$as_me:957: result: Argument : .$enableval used as extension" >&5
+echo "${ECHO_T}Argument : .$enableval used as extension" >&6
+ ac_ext=$enableval
+esac
+
+else
+ echo "$as_me:963: result: Info : .cpp used as extension for tests" >&5
+echo "${ECHO_T}Info : .cpp used as extension for tests" >&6
+ ac_ext=cpp
+
+fi;
+
+# Save that, as it is being redefined several times
+use_ac_ext=$ac_ext
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:982: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+echo "$as_me:997: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ echo "$as_me:1005: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+ echo "$as_me:1008: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:1021: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CXX="$ac_prog"
+echo "$as_me:1036: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ echo "$as_me:1044: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+ echo "$as_me:1047: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+ CXX=$ac_ct_CXX
+fi
+
+# Provide some information about the compiler.
+echo "$as_me:1059:" \
+ "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:1062: \"$ac_compiler --version &5\"") >&5
+ (eval $ac_compiler --version &5) 2>&5
+ ac_status=$?
+ echo "$as_me:1065: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:1067: \"$ac_compiler -v &5\"") >&5
+ (eval $ac_compiler -v &5) 2>&5
+ ac_status=$?
+ echo "$as_me:1070: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:1072: \"$ac_compiler -V &5\"") >&5
+ (eval $ac_compiler -V &5) 2>&5
+ ac_status=$?
+ echo "$as_me:1075: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 1079 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:1095: checking for C++ compiler default output" >&5
+echo $ECHO_N "checking for C++ compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:1098: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:1101: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+for ac_file in `ls a.exe conftest.exe 2>/dev/null;
+ ls a.out conftest 2>/dev/null;
+ ls a.* conftest.* 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ a.out ) # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1124: error: C++ compiler cannot create executables" >&5
+echo "$as_me: error: C++ compiler cannot create executables" >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:1130: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1135: checking whether the C++ compiler works" >&5
+echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:1141: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1144: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:1151: error: cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'." >&5
+echo "$as_me: error: cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:1159: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1166: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:1168: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:1171: checking for executable suffix" >&5
+echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+if { (eval echo "$as_me:1173: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1176: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:1192: error: cannot compute EXEEXT: cannot compile and link" >&5
+echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:1198: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:1204: checking for object suffix" >&5
+echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1210 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:1222: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:1225: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1237: error: cannot compute OBJEXT: cannot compile" >&5
+echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:1244: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:1248: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1254 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1269: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:1272: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:1275: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1278: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:1290: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:1296: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1302 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1314: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:1317: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:1320: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1323: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:1333: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+for ac_declaration in \
+ ''\
+ '#include ' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1360 "configure"
+#include "confdefs.h"
+#include
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1373: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:1376: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:1379: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1382: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1392 "configure"
+#include "confdefs.h"
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:1404: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:1407: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:1410: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1413: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=$use_ac_ext
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+if test $enable_test = 'yes'; then
+CXXFLAGS="-I../../ -I./test $CXXFLAGS"
+else
+CXXFLAGS="-I../../ -I./test $CXXFLAGS -DBOOST_NO_CONFIG"
+fi
+
+echo "$as_me:1449: checking for main in -lpthread" >&5
+echo $ECHO_N "checking for main in -lpthread... $ECHO_C" >&6
+if test "${ac_cv_lib_pthread_main+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 1457 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+main ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1469: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1472: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1475: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1478: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_pthread_main=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_pthread_main=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:1489: result: $ac_cv_lib_pthread_main" >&5
+echo "${ECHO_T}$ac_cv_lib_pthread_main" >&6
+if test $ac_cv_lib_pthread_main = yes; then
+ cat >>confdefs.h <&5
+echo $ECHO_N "checking for main in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_main+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 1509 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+main ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1521: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1524: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1527: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1530: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_m_main=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_m_main=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:1541: result: $ac_cv_lib_m_main" >&5
+echo "${ECHO_T}$ac_cv_lib_m_main" >&6
+if test $ac_cv_lib_m_main = yes; then
+ cat >>confdefs.h <&5
+echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6
+ else
+ echo "$as_me:1574: checking $title " >&5
+echo $ECHO_N "checking $title ... $ECHO_C" >&6
+ fi
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1578 "configure"
+#include "confdefs.h"
+
+#include
+#include
+#include "test.hpp"
+
+#ifndef $macroname
+#include "boost_$basename.cxx"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int cpp_main( int, char *[] )
+{
+ return ${namespace}::test();
+}
+#define main _main
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1606: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1609: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1612: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1615: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "$as_me:1617: result: OK" >&5
+echo "${ECHO_T}OK" >&6
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:1623: result: Failed" >&5
+echo "${ECHO_T}Failed" >&6
+ required_defs="$macroname $required_defs"
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ if test $enable_test = 'yes'; then
+
+ ac_ext=$use_ac_ext
+ echo "$as_me:1633: checking $title (fail expected) " >&5
+echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1636 "configure"
+#include "confdefs.h"
+
+#include
+#include
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.cxx"
+#else
+#error "this file should not compile"
+#endif
+
+int cpp_main( int, char *[] )
+{
+ return ${namespace}::test();
+}
+#define main _main
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1664: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1667: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1670: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1673: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "$as_me:1675: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+ required_undefs="$macroname $required_undefs"
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:1682: result: OK" >&5
+echo "${ECHO_T}OK" >&6
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+
+done
+
+#
+# enumerate optional test files and test each one:
+#
+for file in ./test/boost_has*.cxx; do
+
+ basename=`echo $file | sed 's/.*boost_\(.*\)\.cxx/\1/'`
+ macroname=`cat $file | grep '^//[] []*MACRO:' | sed 's/.*MACRO:[] []*\([]_A-Z0-9[]*\).*/\1/'`
+ title=`cat $file | grep '^//[] []*TITLE:' | sed 's/.*TITLE:[] []*\([]^ [].*\)/\1/'`
+ namespace=`echo $macroname | tr [:upper:] [:lower:]`
+
+# echo $file
+# echo $basename
+# echo $macroname
+# echo $title
+
+ ac_ext=$use_ac_ext
+ if test $enable_test = 'yes'; then
+ echo "$as_me:1709: checking $title (pass expected) " >&5
+echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1712 "configure"
+#include "confdefs.h"
+
+#include
+#include
+#include "test.hpp"
+
+#ifdef $macroname
+#include "boost_$basename.cxx"
+#else
+namespace ${namespace} = empty_boost;
+#endif
+
+int cpp_main( int, char *[] )
+{
+ return ${namespace}::test();
+}
+#define main _main
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1740: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1743: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1746: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1749: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "$as_me:1751: result: OK" >&5
+echo "${ECHO_T}OK" >&6
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:1757: result: Failed" >&5
+echo "${ECHO_T}Failed" >&6
+ required_undefs="$macroname $required_undefs"
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ echo "$as_me:1764: checking $title (fail expected) " >&5
+echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1767 "configure"
+#include "confdefs.h"
+
+#include
+#include
+#include "test.hpp"
+
+#ifndef $macroname
+#include "boost_$basename.cxx"
+#else
+#error "this file should not compile"
+#endif
+
+int cpp_main( int, char *[] )
+{
+ return ${namespace}::test();
+}
+#define main _main
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1795: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1798: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1801: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1804: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ echo "$as_me:1807: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+ required_defs="$macroname $required_defs"
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+ echo "$as_me:1815: result: OK" >&5
+echo "${ECHO_T}OK" >&6
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ else
+
+ ac_ext=$use_ac_ext
+ echo "$as_me:1824: checking $title" >&5
+echo $ECHO_N "checking $title... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+#line 1827 "configure"
+#include "confdefs.h"
+
+#include
+#include
+#include "test.hpp"
+
+#include "boost_$basename.cxx"
+
+int cpp_main( int, char *[] )
+{
+ return ${namespace}::test();
+}
+#define main _main
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:1851: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1854: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:1857: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1860: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ echo "$as_me:1863: result: Yes" >&5
+echo "${ECHO_T}Yes" >&6
+ required_defs="$macroname $required_defs"
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+ echo "$as_me:1871: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+
+done
+
+#echo $required_defs
+#echo $required_undefs
+
+if test $enable_test = 'yes'; then
+
+if test "$required_defs" = ""; then
+echo no boost macros need to be defined
+else
+echo the following macros need to be defined
+echo $required_defs
+fi
+if test "$required_undefs" = ""; then
+echo no boost macros need to be undefined
+else
+echo "the following macros need to be undef'ed"
+echo $required_undefs
+fi
+
+else
+
+date_string=`date`
+
+cat > user.hpp << EOF
+// (C) Copyright Boost.org 2001.
+// Do not check in modified versions of this file,
+// This file may be customised by the end user, but not by boost.
+
+//
+// Use this file to define a site and compiler specific
+// configuration policy, this version was auto-generated by
+// configure on ${date_string}
+// With the following options:
+// CXX = ${CXX}
+// CXXFLAGS = ${CXXFLAGS}
+// LDFLAGS = ${LDFLAGS}
+// LIBS = ${LIBS}
+//
+
+// define this to disable all config options,
+// excluding the user config. Use if your
+// setup is fully ISO complient, and has no
+// useful extentions, or for autoconf generated
+// setups:
+#define BOOST_NO_CONFIG
+
+// define if you want to disable threading support, even
+// when available:
+// #define BOOST_DISABLE_THREADS
+
+// define if you want the regex library to use the C locale
+// even on Win32:
+// #define BOOST_REGEX_USE_C_LOCALE
+
+// define this is you want the regex library to use the C++
+// locale:
+// #define BOOST_REGEX_USE_CPP_LOCALE
+
+//
+// options added by configure:
+//
+EOF
+
+for name in $required_defs; do
+echo '#define '"$name" >> user.hpp
+done
+
+cat << EOF
+
+Adjustments to boost configuration have been written to
+user.hpp, copy this to boost/config/user.hpp to use "as is",
+or define BOOST_SITE_CONFIG to point to its location.
+
+TREAT THIS FILE WITH CARE.
+Autoconf generated options are not infallible!
+
+EOF
+
+cat_conts=`cat user.hpp`
+
+fi
+
+ac_config_commands="$ac_config_commands default"
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\EOF
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
+t quote
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+EOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output. A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:2018: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+ac_cs_invocation="\$0 \$@"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+exec 6>&1
+
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\EOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+
+Configuration commands:
+$config_commands
+
+Report bugs to ."
+EOF
+
+cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ shift
+ set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+ shift
+ ;;
+ -*);;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_need_defaults=false;;
+ esac
+
+ case $1 in
+ # Handling of the options.
+EOF
+cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:2183: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ shift
+ CONFIG_FILES="$CONFIG_FILES $1"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $1"
+ ac_need_defaults=false;;
+
+ # This is an error.
+ -*) { { echo "$as_me:2202: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+exec 5>>config.log
+cat >&5 << _ACEOF
+
+## ----------------------- ##
+## Running config.status. ##
+## ----------------------- ##
+
+This file was extended by $as_me 2.52, executed with
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ > $ac_cs_invocation
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+
+_ACEOF
+EOF
+
+cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+ *) { { echo "$as_me:2247: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=$TMPDIR/cs$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+}
+
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+
+ case $ac_dest in
+ default )
+cat > user.hpp << EEEOF
+${cat_conts}
+EEEOF
+cat << EEEOF
+
+Adjustments to boost configuration have been written to
+user.hpp, copy this to boost/config/user.hpp to use "as is",
+or define BOOST_SITE_CONFIG to point to its location.
+
+TREAT THIS FILE WITH CARE.
+Autoconf generated options are not infallible!
+
+EEEOF
+ ;;
+ esac
+done
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+
+{ (exit 0); exit 0; }
+EOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/include/boost/config.hpp b/include/boost/config.hpp
index 5d259661..68c236f3 100644
--- a/include/boost/config.hpp
+++ b/include/boost/config.hpp
@@ -1,6 +1,6 @@
// Boost config.hpp configuration header file ------------------------------//
-// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
@@ -9,659 +9,52 @@
// Boost config.hpp policy and rationale documentation has been moved to
// http://www.boost.org/libs/config
-
-// Revision History (excluding minor changes for specific compilers)
-// 29 Mar 01 BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS (Daryle Walker)
-// 16 Mar 01 Added BOOST_VERSION (Jens Maurer)
-// 06 Mar 01 Refactored EDG checks for Intel C++ (Dave Abrahams)
-// 04 Mar 01 Factored EDG checks, added BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-// for Intel C++ 5.0 (Dave Abrahams)
-// 17 Feb 01 BOOST_NO_CV_SPECIALIZATIONS
-// BOOST_NO_CV_VOID_SPECIALIZATIONS (John Maddock)
-// 11 Feb 01 Added BOOST_STATIC_CONSTANT (Dave Abrahams)
-// 20 Jan 01 BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS moved here from
-// cast.hpp. Added missing BOOST_NO_STRINGSTREAM which some
-// boost code seemed to depend on. (Dave Abrahams)
-// 13 Jan 01 SGI MIPSpro and Compaq Tru64 Unix compiler support added
-// (Jens Maurer)
-// 13 Jan 01 BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP (Jens Maurer)
-// 17 Nov 00 BOOST_NO_AUTO_PTR (John Maddock)
-// 4 Oct 00 BOOST_NO_STD_MIN_MAX (Jeremy Siek)
-// 29 Sep 00 BOOST_NO_INTEGRAL_INT64_T (Jens Maurer)
-// 25 Sep 00 BOOST_NO_STD_ALLOCATOR (Jeremy Siek)
-// 18 SEP 00 BOOST_NO_SLIST, BOOST_NO_HASH,
-// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-// BOOST_NO_LIMITS (Jeremy Siek)
-// 1 Sep 00 BOOST_NO_PRIVATE_IN_AGGREGATE added. (Mark Rodgers)
-// 23 Jul 00 Fixed spelling of BOOST_NO_INCLASS_MEMBER_INITIALIZATION in
-// comment (Dave Abrahams).
-// 10 Jul 00 BOOST_NO_POINTER_TO_MEMBER_CONST added (Mark Rodgers)
-// 26 Jun 00 BOOST_NO_STD_ITERATOR, BOOST_MSVC_STD_ITERATOR,
-// BOOST_NO_STD_ITERATOR_TRAITS, BOOST_NO_USING_TEMPLATE,
-// added (Jeremy Siek)
-// 20 Jun 00 BOOST_MSVC added (Aleksey Gurtovoy)
-// 14 Jun 00 BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS (Jens M.)
-// 22 Mar 00 BOOST_MSVC6_MEMBER_TEMPLATES added (Dave Abrahams)
-// 18 Feb 00 BOOST_NO_INCLASS_MEMBER_INITIALIZATION added (Jens Maurer)
-// 26 Jan 00 Borland compiler support added (John Maddock)
-// 26 Jan 00 Sun compiler support added (Jörg Schaible)
-// 30 Dec 99 BOOST_NMEMBER_TEMPLATES compatibility moved here from
-// smart_ptr.hpp. (Dave Abrahams)
-// 15 Nov 99 BOOST_NO_OPERATORS_IN_NAMESPACE,
-// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION added (Beman Dawes)
-// 11 Oct 99 BOOST_NO_STDC_NAMESPACE refined; supplied
-// 29 Sep 99 BOOST_NO_STDC_NAMESPACE added (Ed Brey)
-// 24 Sep 99 BOOST_DECL added (Ed Brey)
-// 10 Aug 99 Endedness flags added, GNU CC support added
-// 22 Jul 99 Initial version
-
+//
+// CAUTION: This file is intended to be completely stable -
+// DO NOT MODIFY THIS FILE!
+//
#ifndef BOOST_CONFIG_HPP
#define BOOST_CONFIG_HPP
-#define BOOST_VERSION 102500
-
-// BOOST_VERSION % 100 is the sub-minor version
-// BOOST_VERSION / 100 % 1000 is the minor version
-// BOOST_VERSION / 100000 is the major version
-
-
-// Conformance Flag Macros -------------------------------------------------//
-//
-// Conformance flag macros should identify the absence of C++ Standard
-// conformance rather than its presence. This ensures that standard conforming
-// compilers do not require a lot of configuration flag macros. It places the
-// burden where it should be, on non-conforming compilers. In the future,
-// hopefully, less rather than more conformance flags will have to be defined.
-
-// BOOST_NO_CV_SPECIALIZATIONS: if template specializations for cv-qualified
-// types conflict with a specialization for unqualififed type.
-
-// BOOST_NO_CV_VOID_SPECIALIZATIONS: if template specializations for cv-void
-// types conflict with a specialization for void.
-
-// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP: Compiler does not implement
-// argument-dependent lookup (also named Koenig lookup); see std::3.4.2
-// [basic.koenig.lookup]
-
-// BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS: Template value
-// parameters cannot have a dependent type, for example
-// "template class X { ... };"
-
-// BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS: Can only use deduced
-// template arguments when calling function template instantiations.
-
-// BOOST_NO_INCLASS_MEMBER_INITIALIZATION: Compiler violates std::9.4.2/4.
-
-// BOOST_NO_INT64_T: does not support 64-bit integer
-// types. (Set by rather than ).
-
-// BOOST_NO_INTEGRAL_INT64_T: int64_t as defined by is
-// not an integral type.
-
-// BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS: constants such as
-// numeric_limits::is_signed are not available for use at compile-time.
-
-// BOOST_NO_MEMBER_TEMPLATES: Member template functions not fully supported.
-// Also see BOOST_MSVC6_MEMBER_TEMPLATES in the Compiler Control section below.
-
-// BOOST_NO_MEMBER_TEMPLATE_FRIENDS: Member template friend syntax
-// ("template friend class frd;") described in the C++ Standard,
-// 14.5.3, not supported.
-
-// BOOST_NO_OPERATORS_IN_NAMESPACE: Compiler requires inherited operator
-// friend functions to be defined at namespace scope, then using'ed to boost.
-// Probably GCC specific. See boost/operators.hpp for example.
-
-// BOOST_NO_POINTER_TO_MEMBER_CONST: The compiler does not correctly handle
-// pointers to const member functions, preventing use of these in overloaded
-// function templates. See boost/functional.hpp for example.
-
-// BOOST_NO_PRIVATE_IN_AGGREGATE: The compiler misreads 8.5.1, treating classes
-// as non-aggregate if they contain private or protected member functions.
-
-// BOOST_NO_STD_ITERATOR: The C++ implementation fails to provide the
-// std::iterator class.
-
-// BOOST_NO_STD_ITERATOR_TRAITS: The compiler does not provide a standard
-// compliant implementation of std::iterator_traits. Note that
-// the compiler may still have a non-standard implementation.
-
-// BOOST_NO_STDC_NAMESPACE: The contents of C++ standard headers for C library
-// functions (the headers) have not been placed in namespace std.
-// Because the use of std::size_t is so common, a specific workaround for
-// (and thus std::size_t) is provided in this header (see below).
-// For other headers, a workaround must be provided in the boost header:
-//
-// #include // for abs
-// #ifdef BOOST_NO_STDC_NAMESPACE
-// namespace std { using ::abs; }
-// #endif
-
-// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION. Class template partial
-// specialization (14.5.4 [temp.class.spec]) not supported.
-
-// BOOST_NO_USING_TEMPLATE: The compiler will not accept a using declaration
-// that imports a template from the global namespace into a named namespace.
-// Probably Borland specific.
-
-// BOOST_NO_AUTO_PTR: If the compiler / library supplies non-standard or broken
-// std::auto_ptr.
-
-// BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING: The compiler does not perform
-// function template ordering or its function template ordering is incorrect.
-//
-// template void f(T); // #1
-// template void f(T (*)(U)); // #2
-// void bar(int);
-// f(&bar); // should choose #2.
-
-// BOOST_NO_DEPENDENT_NESTED_DERIVATIONS: The compiler fails to compile
-// a nested class that has a dependent base class:
-// template
-// struct foo : public T {
-// template
-// struct bar : public T, public U {};
-// };
-
-//
-// Compiler Control or Information Macros ----------------------------------//
-//
-// Compilers often supply features outside of the C++ Standard which need to be
-// controlled or detected. As usual, reasonable default behavior should occur
-// if any of these macros are not defined.
-
-// BOOST_DECL: Certain compilers for Microsoft operating systems require
-// non-standard class and function decoration if dynamic load library linking
-// is desired. BOOST_DECL supplies that decoration. Boost does not require
-// use of BOOST_DECL - it is non-standard and to be avoided if practical to do
-// so. Even compilers requiring it for DLL's only require it in certain cases.
-//
-// BOOST_DECL_EXPORTS: User defined, usually via command line or IDE,
-// it causes BOOST_DECL to be defined as __declspec(dllexport).
-//
-// BOOST_DECL_IMPORTS: User defined, usually via command line or IDE,
-// it causes BOOST_DECL to be defined as __declspec(dllimport).
-//
-// If neither BOOST_DECL_EXPORTS nor BOOST_DECL_IMPORTS is defined, or if
-// the compiler does not require __declspec() decoration, BOOST_DECL is
-// defined as a null string.
-
-// BOOST_MSVC6_MEMBER_TEMPLATES: Microsoft Visual C++ 6.0 has enough member
-// template idiosyncrasies (being polite) that BOOST_NO_MEMBER_TEMPLATES is
-// defined for this compiler. BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow
-// compiler specific workarounds.
-
-// BOOST_MSVC: defined as _MSC_VER for the Microsoft compiler only. In general,
-// boost headers should test for a specific conformance flag macro (for
-// example, BOOST_NO_MEMBER_TEMPLATE_FRIENDS) rather than a specific compiler.
-// VC++ is a special case, however, since many libraries try to support it yet
-// it has so many conformance issues that sometimes it is just easier to test
-// for it directly. On the other hand, the obvious way to do this doesn't work,
-// as many non-Microsoft compilers define _MSC_VER. Thus BOOST_MSVC.
-
-// BOOST_MSVC_STD_ITERATOR: Microsoft's broken version of std::iterator
-// is being used.
-
-// BOOST_SYSTEM_HAS_STDINT_H: There are no 1998 C++ Standard headers
-// or , although the 1999 C Standard does include .
-// If is present, can make good use of it,
-// so a flag is supplied (signalling presence; thus the default is not
-// present, conforming to the current C++ standard).
-
-// BOOST_NO_SLIST: The C++ implementation does not provide the slist class.
-
-// BOOST_NO_STRINGSTREAM: The C++ implementation does not provide the header.
-
-// BOOST_NO_HASH: The C++ implementation does not provide the hash_set
-// or hash_map classes.
-
-// BOOST_STD_EXTENSION_NAMESPACE: The name of the namespace in which the slist,
-// hash_set and/or hash_map templates are defined in this implementation (if any).
-
-// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS: The standard library does not provide
-// templated iterator constructors for its containers.
-
-// BOOST_NO_LIMITS: The C++ implementation does not provide the header.
-
-// BOOST_NO_INTRINSIC_WCHAR_T: The C++ implementation does not provide wchar_t,
-// or it is really a synonym for another integral type. Use this symbol to
-// decide whether it is appropriate to explicitly specialize a template on
-// wchar_t if there is already a specialization for other integer types.
-
-// BOOST_NO_STD_ALLOCATOR: The C++ standard library does not provide
-// a standards conforming std::allocator.
-
-// BOOST_NO_STD_MIN_MAX: The C++ standard library does not provide
-// the min() and max() template functions that should be in .
-
-// Common compiler front-ends precede all compiler checks ------------------//
-
-// Edison Design Group front-ends
-# if defined(__EDG_VERSION__)
-# if __EDG_VERSION__ <= 241
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# endif
-
-# endif
-
-// Compiler-specific checks -------------------------------------------------//
-// Compilers are listed in alphabetic order by vendor name
-// (except VC++ must be last - see below)
-
-// Borland ------------------------------------------------------------------//
-
-#if defined __BORLANDC__
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-// pull in standard library version:
-# include
-# if __BORLANDC__ <= 0x0551
-# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_PRIVATE_IN_AGGREGATE
-# endif
-# if __BORLANDC__ <= 0x0550
-// Borland C++ Builder 4 and 5:
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_USING_TEMPLATE
-# if __BORLANDC__ == 0x0550
-// Borland C++ Builder 5, command-line compiler 5.5:
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# endif
-# endif
-# if defined BOOST_DECL_EXPORTS
-# if defined BOOST_DECL_IMPORTS
-# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
-# endif
-# define BOOST_DECL __declspec(dllexport)
-# elif defined BOOST_DECL_IMPORTS
-# define BOOST_DECL __declspec(dllimport)
-# else
-# define BOOST_DECL
-# endif
-#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
-// is partly broken, some macos define symbols that are really in
-// namespace std, so you end up having to use illegal constructs like
-// std::DBL_MAX, as a fix we'll just include float.h and have done with:
-#include
+// if we don't have a user config, then use the default location:
+#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
+# define BOOST_USER_CONFIG
#endif
-# define BOOST_NO_CV_SPECIALIZATIONS
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-
-// Comeau C++ ----------------------------------------------------------------//
-
-# elif defined __COMO__
-# if __COMO_VERSION__ <= 4245
-# define BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
-# if defined(_MSC_VER) && _MSC_VER <= 1200
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-# endif
-
-// Compaq Tru64 Unix cxx ---------------------------------------------------
-
-# elif defined __DECCXX
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-
-// GNU CC (also known as GCC and G++) --------------------------------------//
-
-# elif defined __GNUC__
-# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
- // egcs 1.1 won't parse smart_ptr.hpp without this:
-# define BOOST_NO_AUTO_PTR
-# endif
-# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
-# include // not sure this is the right way to do this -JGS
-# if defined(__BASTRING__) && !defined(__GLIBCPP__) && !defined(_CXXRT_STD) && !defined(__SGI_STL) // need to ask Dietmar about this -JGS
- // this should only detect the stdlibc++ that ships with gcc, and
- // not any replacements that may be installed...
-# define BOOST_NO_STD_ITERATOR
-# define BOOST_NO_LIMITS
-# endif
-# if !defined(_CXXRT_STD) && !defined(__SGI_STL_OWN_IOSTREAMS)
-# define BOOST_NO_STRINGSTREAM
-# endif
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
-# endif
-# if __GNUC__ == 2 && __GNUC_MINOR__ <= 8
-# define BOOST_NO_MEMBER_TEMPLATES
-# endif
-# if __GNUC__ >= 3
-# include
-# if defined(__GLIBCPP__)
- // The new GNU C++ library has slist, hash_map, hash_set headers
- // in , but client code assumes they're in <*> --- Jens M.
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-# endif
-# endif
-
-// Greenhills C++ -----------------------------------------------------------//
-
-#elif defined __ghs
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-
-// HP aCC -------------------------------------------------------------------
-
-# elif defined __HP_aCC
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
- // (support for HP aCC is not complete, see the regression test results)
-
-// Intel on Linux -----------------------------------------------------------//
-
-#elif defined __ICC
-# include
-# ifdef _CPPLIB_VER
- // shipped with Dinkumware 3.10, which has a different hash_map
-# define BOOST_NO_HASH
-# endif
-
-// Intel on Windows --------------------------------------------------------//
-
-# elif defined __ICL
-# if __ICL <= 600
- // Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup
- // in the frontend even in "strict" mode. (reported by Kirk Klobe)
- // Intel C++ 6.0 (currently in Beta test) doesn't have any front-end
- // changes at all. (reported by Kirk Klobe)
-# ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# endif
-# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
-# define BOOST_NO_INTRINSIC_WCHAR_T // tentative addition - required for VC6 compatibility? (added by JM 19 Feb 2001)
-# endif
-# include // not sure this is the right way to do this -JGS
-# if __SGI_STL_PORT >= 0x400 || __SGI_STL_PORT >= 0x321 && defined(__STL_USE_NAMESPACES)
- // a perfectly good implementation of std::iterator is supplied
-# elif defined(__SGI_STL_ITERATOR)
-# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
-# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
-# // full dinkumware 3.06 and above
-# define BOOST_NO_HASH
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# if !_GLOBAL_USING // can be defined in yvals.h
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-# else // assume using dinkumware's STL that comes with VC++ 6.0
-# define BOOST_MSVC_STD_ITERATOR
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# define BOOST_NO_STDC_NAMESPACE
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# define BOOST_NO_STD_ALLOCATOR
-# define BOOST_NO_STD_MIN_MAX
-# endif
-
-// Kai C++ ----------------------------------------------------------------
-
-#elif defined __KCC
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-
-# if __KCC_VERSION <= 4001
- // at least on Sun, the contents of is not in namespace std
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-
-// Metrowerks CodeWarrior -------------------------------------------------//
-
-# elif defined __MWERKS__
-# if __MWERKS__ <= 0x2405 // 7
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# endif
-# if __MWERKS__ <= 0x2401 // 6.2
-# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
-# endif
-# if __MWERKS__ <= 0x2301 // 5.3
-# define BOOST_NO_POINTER_TO_MEMBER_CONST
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_HASH
-# endif
-# if __MWERKS__ >= 0x2400
-# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
-# endif
-# if __MWERKS__ >= 0x2300
-# define BOOST_SYSTEM_HAS_STDINT_H
-# endif
-# if defined BOOST_DECL_EXPORTS
-# if defined BOOST_DECL_IMPORTS
-# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
-# endif
-# define BOOST_DECL __declspec(dllexport)
-# elif defined BOOST_DECL_IMPORTS
-# define BOOST_DECL __declspec(dllimport)
-# else
-# define BOOST_DECL
-# endif
-
-// SGI MIPSpro C++ ---------------------------------------------------------//
-
-# elif defined __sgi
- // This is a generic STLport condition and could be moved elsewhere.
-# include
-# if defined(__SGI_STL_PORT) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(_STLP_MEMBER_TEMPLATE_CLASSES)
-# define BOOST_NO_STD_ALLOCATOR
-# endif
-
-// Sun Workshop Compiler C++ -----------------------------------------------//
-
-# elif defined __SUNPRO_CC
-# if __SUNPRO_CC <= 0x520
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# define BOOST_NO_STD_ALLOCATOR
-
- // although sunpro 5.1 supports the syntax for
- // inline initialization it often gets the value
- // wrong, especially where the value is computed
- // from other constants (J Maddock 6th May 2001)
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
- // although sunpro 5.1 supports the syntax for
- // partial specialization, it often seems to
- // bind to the wrong specialization. Better
- // to disable it until suppport becomes more stable
- // (J Maddock 6th May 2001).
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // integral constant expressions with 64 bit numbers fail
-# define BOOST_NO_INTEGRAL_INT64_T
-# endif
-# if __SUNPRO_CC <= 0x500
-# define BOOST_NO_MEMBER_TEMPLATES
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# endif
-
-// Microsoft Visual C++ (excluding Intel/EDG front end) --------------------
-//
-// Must remain the last #elif since some other vendors (Metrowerks, for
-// example) also #define _MSC_VER
-
-# elif defined _MSC_VER
-# define BOOST_MSVC _MSC_VER
-
- // turn off the warnings before we #include anything
-# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
-# pragma warning( disable : 4503 ) // warning: decorated name length exceeded
-
-# if _MSC_VER <= 1200 // 1200 == VC++ 6.0
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_PRIVATE_IN_AGGREGATE
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_INTRINSIC_WCHAR_T
-
-// VC++ 6.0 has member templates but they have numerous problems including
-// cases of silent failure, so for safety we define:
-# define BOOST_NO_MEMBER_TEMPLATES
-// For VC++ experts wishing to attempt workarounds, we define:
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
-# include // not sure this is the right way to do this -JGS
-# if __SGI_STL_PORT >= 0x400 || __SGI_STL_PORT >= 0x321 && defined(__STL_USE_NAMESPACES)
- // a perfectly good implementation of std::iterator is supplied
- // A conforming allocator is supplied, but the compiler cannot cope
- // when using "rebind". (Douglas Gregor)
-# define BOOST_NO_STD_ALLOCATOR
-# elif defined(__SGI_STL_ITERATOR)
-# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
-# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
- // full dinkumware 3.06 and above
-# define BOOST_NO_HASH
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# ifndef _GLOBAL_USING // can be defined in yvals.h
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-# if _CPPLIB_VER < 308 // fix due to kensai@pacbell.net
-# define BOOST_MSVC_STD_ITERATOR
-# endif
-# else
-# define BOOST_MSVC_STD_ITERATOR
-# define BOOST_NO_SLIST
-# define BOOST_NO_HASH
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# define BOOST_NO_STD_ALLOCATOR
-# ifndef _CPPLIB_VER
- // Updated Dinkum library defines this, and provides
- // its own min and max definitions.
-# define BOOST_NO_STD_MIN_MAX
-# undef min
-# undef max
-# endif
-# ifndef NOMINMAX
- // avoid spurious NOMINMAX redefinition warning
-# define NOMINMAX
-# endif
-# endif
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-
-
-// Make sure at least one standard library header is included so that library
-// implementation detection will work, even if no standard headers have been
-// included in front of a boost header. (Ed Brey 5 Jun 00)
-# include
-
-// Determine if the standard library implementation is already pulling names
-// into std. STLport defines the following if so. (Ed Brey 5 Jun 00)
-# if !defined( __STL_IMPORT_VENDOR_CSTD ) || defined( __STL_NO_CSTD_FUNCTION_IMPORTS )
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-
-# endif
-
-# if defined BOOST_DECL_EXPORTS
-# if defined BOOST_DECL_IMPORTS
-# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
-# endif
-# define BOOST_DECL __declspec(dllexport)
-# elif defined BOOST_DECL_IMPORTS
-# define BOOST_DECL __declspec(dllimport)
-# else
-# define BOOST_DECL
-# endif
-
-# endif // Microsoft (excluding Intel/EDG frontend)
-
-# ifndef BOOST_DECL
-# define BOOST_DECL // default for compilers not needing this decoration.
-# endif
-
-// end of compiler specific portion ----------------------------------------//
-
-#if defined(BOOST_NO_LIMITS) || (defined(_RWSTD_VER) && defined(__BORLANDC__) && _RWSTD_VER < 0x020300) || (defined(__SGI_STL_PORT) && __SGI_STL_PORT <= 0x410 && defined(__STL_STATIC_CONST_INIT_BUG))
-// STLPort 4.0 doesn't define the static constants in numeric_limits<> so that they
-// can be used at compile time if the compiler bug indicated by
-// __STL_STATIC_CONST_INIT_BUG is present.
-
-// Rogue wave STL (C++ Builder) also has broken numeric_limits
-// with default template defining members out of line.
-// However, Compaq C++ also uses RogueWave (version 0x0203) and it's ok.
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// include it first:
+#ifdef BOOST_USER_CONFIG
+# include BOOST_USER_CONFIG
#endif
-#if defined(__hpux)
-// HP-UX has a nice stdint.h in a different location, see boost/cstdint.hpp
-# define BOOST_SYSTEM_HAS_STDINT_H
+// if we don't have a compiler config set, try and find one:
+#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
+# include
+#endif
+// if we don't have a std library config set, try and find one:
+#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
+# include
+#endif
+// if we don't have a platform config set, try and find one:
+#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
+# include
#endif
-#ifdef __APPLE_CC__
-#define BOOST_NO_INTRINSIC_WCHAR_T
+
+// if we have a compiler config, include it now:
+#ifdef BOOST_COMPILER_CONFIG
+# include BOOST_COMPILER_CONFIG
+#endif
+// if we have a std library config, include it now:
+#ifdef BOOST_STDLIB_CONFIG
+# include BOOST_STDLIB_CONFIG
+#endif
+// if we have a platform config, include it now:
+#ifdef BOOST_PLATFORM_CONFIG
+# include BOOST_PLATFORM_CONFIG
#endif
-#ifndef BOOST_STD_EXTENSION_NAMESPACE
-# define BOOST_STD_EXTENSION_NAMESPACE std
-#endif
-
-// Check for old name "BOOST_NMEMBER_TEMPLATES" for compatibility -----------//
-// Don't use BOOST_NMEMBER_TEMPLATES. It is deprecated and will be removed soon.
-#if defined( BOOST_NMEMBER_TEMPLATES ) && !defined( BOOST_NO_MEMBER_TEMPLATES )
- #define BOOST_NO_MEMBER_TEMPLATES
-#endif
-
-// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
-//
-// Because std::size_t usage is so common, even in boost headers which do not
-// otherwise use the C library, the workaround is included here so
-// that ugly workaround code need not appear in many other boost headers.
-// NOTE WELL: This is a workaround for non-conforming compilers;
-// must still be #included in the usual places so that inclusion
-// works as expected with standard conforming compilers. The resulting
-// double inclusion of is harmless.
-
-# ifdef BOOST_NO_STDC_NAMESPACE
-# include
- namespace std { using ::ptrdiff_t; using ::size_t; }
- // using ::wchar_t; removed since wchar_t is a C++ built-in type (Ed Brey)
-# endif
-
-#ifdef BOOST_NO_STD_MIN_MAX
-namespace std {
- template
- inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
- return __b < __a ? __b : __a;
- }
- template
- inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
- return __a < __b ? __b : __a;
- }
-#ifdef BOOST_MSVC
- inline long min(long __a, long __b) {
- return __b < __a ? __b : __a;
- }
- inline long max(long __a, long __b) {
- return __a < __b ? __b : __a;
- }
-#endif
-}
-#endif
-
-// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
-// On compilers which don't allow in-class initialization of static integral
-// constant members, we must use enums as a workaround if we want the constants
-// to be available at compile-time. This macro gives us a convenient way to
-// declare such constants.
-#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
-#else
-# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
-#endif
+// get config suffix code:
+#include
#endif // BOOST_CONFIG_HPP
@@ -671,3 +64,6 @@ namespace std {
+
+
+
diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp
new file mode 100644
index 00000000..1246b75b
--- /dev/null
+++ b/include/boost/config/compiler/borland.hpp
@@ -0,0 +1,55 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Borland C++ compiler setup:
+
+# if __BORLANDC__ <= 0x0550
+// Borland C++ Builder 4 and 5:
+# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+# if __BORLANDC__ == 0x0550
+// Borland C++ Builder 5, command-line compiler 5.5:
+# define BOOST_NO_OPERATORS_IN_NAMESPACE
+# endif
+# endif
+
+#if (__BORLANDC__ >= 0x550)
+// is partly broken, some macos define symbols that are really in
+// namespace std, so you end up having to use illegal constructs like
+// std::DBL_MAX, as a fix we'll just include float.h and have done with:
+#include
+#endif
+
+// Version 5.51:
+#if (__BORLANDC__ <= 0x551) || !defined(BOOST_STRICT_CONFIG)
+# define BOOST_NO_CV_SPECIALIZATIONS
+# define BOOST_NO_CV_VOID_SPECIALIZATIONS
+# define BOOST_NO_INTEGRAL_INT64_T
+# define BOOST_NO_PRIVATE_IN_AGGREGATE
+# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+# define BOOST_NO_SWPRINTF
+# define BOOST_NO_USING_TEMPLATE
+#endif
+
+#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
+
+//
+// versions check:
+// we don't support Borland prior to version 5.4:
+#if __BORLANDC__ < 0x540
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 5.51:
+#if (__BORLANDC__ > 0x551)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# else
+# pragma message( "Unknown compiler version - please run the configure tests and report the results")
+# endif
+#endif
+
+
diff --git a/include/boost/config/compiler/comeau.hpp b/include/boost/config/compiler/comeau.hpp
new file mode 100644
index 00000000..5c4cc81c
--- /dev/null
+++ b/include/boost/config/compiler/comeau.hpp
@@ -0,0 +1,36 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Comeau C++ compiler setup:
+
+#include "boost/config/compiler/common_edg.hpp"
+
+#if (__COMO_VERSION__ <= 4245) || !defined(BOOST_STRICT_CONFIG)
+# define BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
+# if defined(_MSC_VER) && _MSC_VER <= 1200
+# define BOOST_NO_STDC_NAMESPACE
+# endif
+#endif
+
+#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
+
+//
+// versions check:
+// we don't know Comeau prior to version 4245:
+#if __COMO_VERSION__ < 4245
+# error "Compiler not configured - please reconfigure"
+#endif
+//
+// last known and checked version is 4245:
+#if (__COMO_VERSION__ > 4245)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
+
diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp
new file mode 100644
index 00000000..b80c4c79
--- /dev/null
+++ b/include/boost/config/compiler/common_edg.hpp
@@ -0,0 +1,18 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+//
+// Options common to all edg based compilers.
+//
+// This is included from within the individual compiler mini-configs.
+
+
+#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
+# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#endif
+
+
diff --git a/include/boost/config/compiler/compaq_cxx.hpp b/include/boost/config/compiler/compaq_cxx.hpp
new file mode 100644
index 00000000..8d09ff46
--- /dev/null
+++ b/include/boost/config/compiler/compaq_cxx.hpp
@@ -0,0 +1,18 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Dec Alpha True64 C++ compiler setup:
+
+#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER)
+
+#include "boost/config/compiler/common_edg.hpp"
+
+//
+// versions check:
+// Nothing to do here?
+
+
diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp
new file mode 100644
index 00000000..cb3c9cfd
--- /dev/null
+++ b/include/boost/config/compiler/gcc.hpp
@@ -0,0 +1,59 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// GNU C++ compiler setup:
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
+ // egcs 1.1 won't parse smart_ptr.hpp without this:
+# define BOOST_NO_AUTO_PTR
+# endif
+# if __GNUC__ == 2 && __GNUC_MINOR__ < 95
+ //
+ // Prior to gcc 2.95 member templates only partly
+ // work - define BOOST_MSVC6_MEMBER_TEMPLATES
+ // instead since inline member templates mostly work.
+ //
+# define BOOST_NO_MEMBER_TEMPLATES
+# if __GNUC_MINOR__ >= 9
+# define BOOST_MSVC6_MEMBER_TEMPLATES
+# endif
+# endif
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
+# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+# define BOOST_NO_OPERATORS_IN_NAMESPACE
+# endif
+
+//
+// define BOOST_NO_INTRINSIC_WCHAR_T for gcc platforms known not to
+// have wchar_t as an intrinsic type:
+//
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+# define BOOST_NO_INTRINSIC_WCHAR_T
+#endif
+
+#define BOOST_COMPILER "GNU C++ version " BOOST_STRINGIZE(__GNUC__) "." BOOST_STRINGIZE(__GNUC_MINOR__)
+
+//
+// versions check:
+// we don't know gcc prior to version 2.90:
+#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
+# error "Compiler not configured - please reconfigure"
+#endif
+//
+// last known and checked version is 3.0:
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 0))
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# else
+# warning "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
+
+
diff --git a/include/boost/config/compiler/greenhills.hpp b/include/boost/config/compiler/greenhills.hpp
new file mode 100644
index 00000000..793ef522
--- /dev/null
+++ b/include/boost/config/compiler/greenhills.hpp
@@ -0,0 +1,27 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Greenhills C++ compiler setup:
+
+#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
+
+#include "boost/config/compiler/common_edg.hpp"
+
+//
+// versions check:
+// we don't support Greenhills prior to version 0:
+#if __ghs < 0
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 0:
+#if (__ghs > 0)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
diff --git a/include/boost/config/compiler/hp_acc.hpp b/include/boost/config/compiler/hp_acc.hpp
new file mode 100644
index 00000000..2813ec11
--- /dev/null
+++ b/include/boost/config/compiler/hp_acc.hpp
@@ -0,0 +1,36 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// HP aCC C++ compiler setup:
+
+// THIS FILE IS INCOMPLETE: WE NEED THE CORRECT VERSION CHECKS ADDING!!!
+#if (__HP_aCC <= 0) || !defined(BOOST_STRICT_CONFIG)
+# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+# define BOOST_NO_OPERATORS_IN_NAMESPACE
+# if !defined(_NAMESPACE_STD)
+# define BOOST_NO_STD_LOCALE
+# define BOOST_NO_STRINGSTREAM
+# endif
+#endif
+
+
+#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
+
+//
+// versions check:
+// we don't support HP aCC prior to version 0:
+#if __HP_aCC < 0
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 0:
+#if (__HP_aCC > 0)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
diff --git a/include/boost/config/compiler/intel.hpp b/include/boost/config/compiler/intel.hpp
new file mode 100644
index 00000000..87cef75d
--- /dev/null
+++ b/include/boost/config/compiler/intel.hpp
@@ -0,0 +1,56 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Intel compiler setup:
+
+#include "boost/config/compiler/common_edg.hpp"
+
+#ifdef __ICL
+# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(__ICL)
+# define BOOST_INTEL_CXX_VERSION __ICL
+#else
+# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(__ICC)
+# define BOOST_INTEL_CXX_VERSION __ICC
+#endif
+
+#if BOOST_INTEL_CXX_VERSION <= 600
+# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
+ // Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup
+ // in the frontend even in "strict" mode. (reported by Kirk Klobe)
+ // Intel C++ 6.0 (currently in Beta test) doesn't have any front-end
+ // changes at all. (reported by Kirk Klobe)
+# ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+# endif
+
+#endif
+
+#ifdef _MSC_VER
+# ifndef _NATIVE_WCHAR_T_DEFINED
+# define BOOST_NO_INTRINSIC_WCHAR_T
+# endif
+# define BOOST_NO_SWPRINTF
+#endif
+
+
+//
+// versions check:
+// we don't support Intel prior to version 5.0:
+#if BOOST_INTEL_CXX_VERSION < 500
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 500:
+#if (BOOST_INTEL_CXX_VERSION > 500)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# elif defined(_MSC_VER)
+# warning "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
diff --git a/include/boost/config/compiler/kai.hpp b/include/boost/config/compiler/kai.hpp
new file mode 100644
index 00000000..6b8ab84b
--- /dev/null
+++ b/include/boost/config/compiler/kai.hpp
@@ -0,0 +1,27 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Kai C++ compiler setup:
+
+#include "boost/config/compiler/common_edg.hpp"
+
+# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
+ // at least on Sun, the contents of is not in namespace std
+# define BOOST_NO_STDC_NAMESPACE
+# endif
+
+#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
+
+//
+// last known and checked version is 4001:
+#if (__KCC_VERSION > 4001)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp
new file mode 100644
index 00000000..b58ce504
--- /dev/null
+++ b/include/boost/config/compiler/metrowerks.hpp
@@ -0,0 +1,50 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Metrowerks C++ compiler setup:
+
+# if __MWERKS__ <= 0x2301 // 5.3
+# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
+# define BOOST_NO_POINTER_TO_MEMBER_CONST
+# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+# endif
+
+# if __MWERKS__ <= 0x2401 // 6.2
+# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
+# endif
+
+# if(__MWERKS__ <= 0x2405) || !defined(BOOST_STRICT_CONFIG) // 7
+# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+# endif
+
+#if !__option(wchar_type)
+# define BOOST_NO_INTRINSIC_WCHAR_T
+#endif
+
+
+#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(__MWERKS__)
+
+//
+// versions check:
+// we don't support Metrowerks prior to version 5.3:
+#if __MWERKS__ < 0x2301
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 0x890:
+#if (__MWERKS__ > 0x2405)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
+
+
+
+
diff --git a/include/boost/config/compiler/mpw.hpp b/include/boost/config/compiler/mpw.hpp
new file mode 100644
index 00000000..3cd979a0
--- /dev/null
+++ b/include/boost/config/compiler/mpw.hpp
@@ -0,0 +1,49 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// MPW C++ compilers setup:
+
+# if defined(__SC__)
+# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
+# elif defined(__MRC__)
+# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
+# else
+# error "Using MPW compiler configuration by mistake. Please update."
+# endif
+
+//
+// MPW 8.90:
+//
+#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
+# define BOOST_NO_CV_SPECIALIZATIONS
+# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+# define BOOST_NO_INTRINSIC_WCHAR_T
+# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# define BOOST_NO_USING_TEMPLATE
+
+# define BOOST_NO_CWCHAR
+# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+
+# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
+#endif
+
+//
+// versions check:
+// we don't support MPW prior to version 8.9:
+#if MPW_CPLUS < 0x890
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 0x890:
+#if (MPW_CPLUS > 0x890)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
diff --git a/include/boost/config/compiler/sgi_mipspro.hpp b/include/boost/config/compiler/sgi_mipspro.hpp
new file mode 100644
index 00000000..2ba47c96
--- /dev/null
+++ b/include/boost/config/compiler/sgi_mipspro.hpp
@@ -0,0 +1,16 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// SGI C++ compiler setup:
+
+#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
+
+#include "boost/config/compiler/common_edg.hpp"
+
+//
+// version check:
+// probably nothing to do here?
diff --git a/include/boost/config/compiler/sunpro_cc.hpp b/include/boost/config/compiler/sunpro_cc.hpp
new file mode 100644
index 00000000..925475a4
--- /dev/null
+++ b/include/boost/config/compiler/sunpro_cc.hpp
@@ -0,0 +1,47 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Sun C++ compiler setup:
+
+# if __SUNPRO_CC >= 0x520
+ //
+ // Sunpro 5.1 and later:
+ //
+ // although sunpro 5.1 supports the syntax for
+ // inline initialization it often gets the value
+ // wrong, especially where the value is computed
+ // from other constants (J Maddock 6th May 2001)
+# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+ // although sunpro 5.1 supports the syntax for
+ // partial specialization, it often seems to
+ // bind to the wrong specialization. Better
+ // to disable it until suppport becomes more stable
+ // (J Maddock 6th May 2001).
+# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# endif
+# if __SUNPRO_CC <= 0x500
+# define BOOST_NO_MEMBER_TEMPLATES
+# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# endif
+
+#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
+
+//
+// versions check:
+// we don't support sunpro prior to version 4:
+#if __SUNPRO_CC < 0x400
+#error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 0x520:
+#if (__SUNPRO_CC > 0x520)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp
new file mode 100644
index 00000000..3f35a54b
--- /dev/null
+++ b/include/boost/config/compiler/vacpp.hpp
@@ -0,0 +1,30 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Visual Age (IBM) C++ compiler setup:
+
+#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+
+#define BOOST_COMPILER "IBM Visual Age" BOOST_STRINGIZE(__IBMCPP__)
+
+//
+// versions check:
+// we don't support Visual age prior to version 5:
+#if __IBMCPP__ < 500
+#error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 500:
+#if (__IBMCPP__ > 500)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
+
diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp
new file mode 100644
index 00000000..3743e03d
--- /dev/null
+++ b/include/boost/config/compiler/visualc.hpp
@@ -0,0 +1,75 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Microsoft Visual C++ compiler setup:
+
+#define BOOST_MSVC _MSC_VER
+
+// turn off the warnings before we #include anything
+#pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
+#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
+
+#if _MSC_VER <= 1200 // 1200 == VC++ 6.0
+# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+#endif
+
+#if (_MSC_VER <= 1300) || !defined(BOOST_STRICT_CONFIG) // VC7 Beta 2 or later
+# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+# define BOOST_NO_PRIVATE_IN_AGGREGATE
+# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+# define BOOST_NO_INTEGRAL_INT64_T
+
+// VC++ 6/7 has member templates but they have numerous problems including
+// cases of silent failure, so for safety we define:
+# define BOOST_NO_MEMBER_TEMPLATES
+// For VC++ experts wishing to attempt workarounds, we define:
+# define BOOST_MSVC6_MEMBER_TEMPLATES
+
+# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# define BOOST_NO_CV_VOID_SPECIALIZATIONS
+# define BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
+# define BOOST_NO_USING_TEMPLATE
+# define BOOST_NO_SWPRINTF
+# define BOOST_NO_POINTER_TO_MEMBER_CONST
+ //
+ // disable man/max macros if defined:
+ //
+# ifdef min
+# undef min
+# endif
+# ifdef max
+# undef max
+# endif
+ // disable man/max macro defines on vc6:
+ //
+# define NOMINMAX
+#endif
+
+#ifndef _NATIVE_WCHAR_T_DEFINED
+# define BOOST_NO_INTRINSIC_WCHAR_T
+#endif
+
+#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(_MSC_VER)
+
+//
+// versions check:
+// we don't support Visual C++ prior to version 6:
+#if _MSC_VER < 1200
+#error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 1300:
+#if (_MSC_VER > 1300)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# else
+# warning "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
diff --git a/include/boost/config/platform/aix.hpp b/include/boost/config/platform/aix.hpp
new file mode 100644
index 00000000..60784e10
--- /dev/null
+++ b/include/boost/config/platform/aix.hpp
@@ -0,0 +1,16 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// IBM/Aix specific config options:
+
+#define BOOST_PLATFORM "IBM Aix"
+
+#define BOOST_HAS_UNISTD_H
+#define BOOST_HAS_PTHREADS
+#define BOOST_HAS_NL_TYPES_H
+
+
diff --git a/include/boost/config/platform/beos.hpp b/include/boost/config/platform/beos.hpp
new file mode 100644
index 00000000..13ca5279
--- /dev/null
+++ b/include/boost/config/platform/beos.hpp
@@ -0,0 +1,23 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// BeOS specific config options:
+
+#define BOOST_PLATFORM "BeOS"
+
+#define BOOST_NO_CWCHAR
+#define BOOST_NO_CWCTYPE
+#define BOOST_HAS_UNISTD_H
+
+#define BOOST_HAS_BETHREADS
+
+#ifndef BOOST_DISABLE_THREADS
+# define BOOST_HAS_THREADS
+#endif
+
+
+
diff --git a/include/boost/config/platform/bsd.hpp b/include/boost/config/platform/bsd.hpp
new file mode 100644
index 00000000..12160486
--- /dev/null
+++ b/include/boost/config/platform/bsd.hpp
@@ -0,0 +1,36 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// generic BSD config options:
+
+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
+#error "This platform is not BSD"
+#endif
+
+#ifdef __FreeBSD__
+#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
+#elif defined(__NetBSD__)
+#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
+#elif defined(__OpenBSD__)
+#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
+#endif
+
+//
+// is this the correct version check?
+// FreeBSD has but does not
+// advertise the fact in :
+//
+#if defined(__FreeBSD__) && (__FreeBSD__ >= 4)
+# define BOOST_HAS_NL_TYPES_H
+#endif
+
+//
+// no wide character support:
+//
+#define BOOST_NO_CWCHAR
+
+
diff --git a/include/boost/config/platform/cygwin.hpp b/include/boost/config/platform/cygwin.hpp
new file mode 100644
index 00000000..9ba1b629
--- /dev/null
+++ b/include/boost/config/platform/cygwin.hpp
@@ -0,0 +1,16 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// cygwin specific config options:
+
+#define BOOST_PLATFORM "Cygwin"
+#define BOOST_NO_CWCTYPE
+#define BOOST_NO_CWCHAR
+#define BOOST_NO_SWPRINTF
+
+
+
diff --git a/include/boost/config/platform/hpux.hpp b/include/boost/config/platform/hpux.hpp
new file mode 100644
index 00000000..8a9b8a19
--- /dev/null
+++ b/include/boost/config/platform/hpux.hpp
@@ -0,0 +1,14 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// hpux specific config options:
+
+#define BOOST_PLATFORM "HP Unix"
+#define BOOST_HAS_STDINT_H
+
+#define BOOST_NO_SWPRINTF
+
diff --git a/include/boost/config/platform/irix.hpp b/include/boost/config/platform/irix.hpp
new file mode 100644
index 00000000..b8d2362c
--- /dev/null
+++ b/include/boost/config/platform/irix.hpp
@@ -0,0 +1,13 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// SGI Irix specific config options:
+
+#define BOOST_PLATFORM "SGI Irix"
+
+#define BOOST_NO_SWPRINTF
+
diff --git a/include/boost/config/platform/linux.hpp b/include/boost/config/platform/linux.hpp
new file mode 100644
index 00000000..857bc757
--- /dev/null
+++ b/include/boost/config/platform/linux.hpp
@@ -0,0 +1,50 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// linux specific config options:
+
+#define BOOST_PLATFORM "linux"
+
+//
+// stdint.h added to glibc 2.1.1
+// We can only test for 2.1 though:
+//
+#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
+#define BOOST_HAS_STDINT_H
+#endif
+#define BOOST_NO_SWPRINTF
+
+#ifndef __GNUC__
+//
+// if the compiler is not gcc we still need to be able to parse
+// the GNU system headers, some of which (mainly )
+// use GNU specific extensions:
+//
+# ifndef __extension__
+# define __extension__
+# endif
+# ifndef __const__
+# define __const__ const
+# endif
+# ifndef __volatile__
+# define __volatile__ volatile
+# endif
+# ifndef __signed__
+# define __signed__ signed
+# endif
+# ifndef __typeof__
+# define __typeof__ typeof
+# endif
+# ifndef __inline__
+# define __inline__ inline
+# endif
+#endif
+
+
+
+
+
diff --git a/include/boost/config/platform/macos.hpp b/include/boost/config/platform/macos.hpp
new file mode 100644
index 00000000..0f8a160f
--- /dev/null
+++ b/include/boost/config/platform/macos.hpp
@@ -0,0 +1,26 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Mac OS specific config options:
+
+#define BOOST_PLATFORM "Mac OS"
+
+// if __MACH__, we're using the BSD standard C library, not the MSL
+#if defined(__MACH__)
+# define BOOST_HAS_UNISTD_H
+# define BOOST_NO_CWCHAR
+# define BOOST_NO_STDC_NAMESPACE
+# ifndef BOOST_HAS_STDINT_H
+# define BOOST_HAS_STDINT_H
+# endif
+#endif
+
+
+
+
+
+
diff --git a/include/boost/config/platform/sunpro.hpp b/include/boost/config/platform/sunpro.hpp
new file mode 100644
index 00000000..e23cb138
--- /dev/null
+++ b/include/boost/config/platform/sunpro.hpp
@@ -0,0 +1,13 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// sun specific config options:
+
+#define BOOST_PLATFORM "sun"
+
+
+
diff --git a/include/boost/config/platform/win32.hpp b/include/boost/config/platform/win32.hpp
new file mode 100644
index 00000000..1ee4bdcd
--- /dev/null
+++ b/include/boost/config/platform/win32.hpp
@@ -0,0 +1,28 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Win32 specific config options:
+
+#define BOOST_PLATFORM "Win32"
+
+#if defined BOOST_DECL_EXPORTS
+# if defined BOOST_DECL_IMPORTS
+# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
+# endif
+# define BOOST_DECL __declspec(dllexport)
+#elif defined BOOST_DECL_IMPORTS
+# define BOOST_DECL __declspec(dllimport)
+#else
+# define BOOST_DECL
+#endif
+
+#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
+# define BOOST_NO_SWPRINTF
+#endif
+
+#define BOOST_HAS_WINTHREADS
+
diff --git a/include/boost/config/posix_features.hpp b/include/boost/config/posix_features.hpp
new file mode 100644
index 00000000..b23d8992
--- /dev/null
+++ b/include/boost/config/posix_features.hpp
@@ -0,0 +1,33 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// All POSIX feature tests go in this file:
+
+# ifdef BOOST_HAS_UNISTD_H
+# include
+
+ // XOpen has , but is this the correct version check?
+# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
+# define BOOST_HAS_NL_TYPES_H
+# endif
+
+ // POSIX version 6 requires
+# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
+# define BOOST_HAS_STDINT_H
+# endif
+
+ // POSIX defines _POSIX_THREADS > 0 for pthread support,
+ // however some platforms define _POSIX_THREADS without
+ // a value, hence the (_POSIX_THREADS+0 >= 0) check.
+ // Strictly speeking this may catch platforms with a
+ // non-functioning stub , but such occurrences should
+ // occur very rarely if at all...
+# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0)
+# define BOOST_HAS_PTHREADS
+# endif
+
+# endif
diff --git a/include/boost/config/select_compiler_config.hpp b/include/boost/config/select_compiler_config.hpp
new file mode 100644
index 00000000..eba7f454
--- /dev/null
+++ b/include/boost/config/select_compiler_config.hpp
@@ -0,0 +1,77 @@
+// Boost compiler configuration selection header file
+
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// locate which compiler we are using and define
+// BOOST_COMPILER_CONFIG as needed:
+
+#if defined __GNUC__
+// GNU C++:
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __KCC
+// Kai C++
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __sgi
+// SGI MIPSpro C++
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __DECCXX
+// Compaq Tru64 Unix cxx
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __ghs
+// Greenhills C++
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __BORLANDC__
+// Borland
+# define BOOST_COMPILER_CONFIG
+
+#elif defined(__ICL) || defined(__ICC)
+// Intel
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __MWERKS__
+// Metrowerks CodeWarrior
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __SUNPRO_CC
+// Sun Workshop Compiler C++
+# define BOOST_COMPILER_CONFIG
+
+#elif defined __HP_aCC
+// HP aCC
+# define BOOST_COMPILER_CONFIG
+
+#elif defined(__MRC__) || defined(__SC__)
+// MPW MrCpp or SCpp
+# define BOOST_COMPILER_CONFIG
+
+#elif defined(__IBMCPP__)
+// IBM Visual Age
+# define BOOST_COMPILER_CONFIG
+
+# elif defined __COMO__
+// Comeau C++
+# define BOOST_COMPILER_CONFIG
+
+#elif defined _MSC_VER
+// Microsoft Visual C++
+//
+// Must remain the last #elif since some other vendors (Metrowerks, for
+// example) also #define _MSC_VER
+# define BOOST_COMPILER_CONFIG
+
+#elif defined (BOOST_ASSERT_CONFIG)
+// this must come last - generate an error if we don't
+// recognise the compiler:
+# error "Unknown compiler - please configure and report the results to boost.org"
+
+#endif
diff --git a/include/boost/config/select_platform_config.hpp b/include/boost/config/select_platform_config.hpp
new file mode 100644
index 00000000..974e5c50
--- /dev/null
+++ b/include/boost/config/select_platform_config.hpp
@@ -0,0 +1,62 @@
+// Boost compiler configuration selection header file
+
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
+// Note that we define the headers to include using "header_name" not
+// in order to prevent macro expansion within the header
+// name (for example "linux" is a macro on linux systems).
+
+#if defined(linux) || defined(__linux)
+// linux:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
+
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+// BSD:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
+
+#elif defined(sun) || defined(__sun)
+// solaris:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
+
+#elif defined(__sgi)
+// SGI Irix:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
+
+#elif defined(__hpux)
+// hp unix:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
+
+#elif defined(__CYGWIN__)
+// cygwin is not win32:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+// win32:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
+
+#elif defined(__BEOS__)
+// BeOS
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
+
+#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
+// MacOS
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
+
+#elif defined(__IBMCPP__)
+// IBM
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
+
+#elif defined (BOOST_ASSERT_CONFIG)
+// this must come last - generate an error if we don't
+// recognise the platform:
+# error "Unknown platform - please configure and report the results to boost.org"
+
+#endif
+
+
diff --git a/include/boost/config/select_stdlib_config.hpp b/include/boost/config/select_stdlib_config.hpp
new file mode 100644
index 00000000..a60c337a
--- /dev/null
+++ b/include/boost/config/select_stdlib_config.hpp
@@ -0,0 +1,57 @@
+// Boost compiler configuration selection header file
+
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
+
+// we need to include a std lib header here in order to detect which
+// library is in use, use as it's about the smallest
+// of the std lib headers - do not rely on this header being included -
+// users can short-circuit this header if they know whose std lib
+// they are using.
+
+#include
+
+#if defined(__SGI_STL_PORT)
+// STLPort library; this _must_ come first, otherwise since
+// STLport typically sits on top of some other library, we
+// can end up detecting that first rather than STLport:
+# define BOOST_STDLIB_CONFIG
+
+#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
+// Rogue Wave library:
+# define BOOST_STDLIB_CONFIG
+
+#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
+// Dinkumware Library:
+# define BOOST_STDLIB_CONFIG
+
+#elif defined(__GLIBCPP__)
+// GNU libstdc++ 3
+# define BOOST_STDLIB_CONFIG
+
+#elif defined(__STL_CONFIG_H)
+// generic SGI STL
+# define BOOST_STDLIB_CONFIG
+
+#elif defined(__MSL_CPP__)
+// MSL standard lib:
+# define BOOST_STDLIB_CONFIG
+
+# elif defined(__IBMCPP__)
+// take the default VACPP std lib
+# define BOOST_STDLIB_CONFIG
+
+#elif defined (BOOST_ASSERT_CONFIG)
+// this must come last - generate an error if we don't
+// recognise the library:
+# error "Unknown standard library - please configure and report the results to boost.org"
+
+#endif
+
+
diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp
new file mode 100644
index 00000000..318601df
--- /dev/null
+++ b/include/boost/config/stdlib/dinkumware.hpp
@@ -0,0 +1,68 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Dinkumware standard library config:
+
+#if !defined(_YVALS) && !defined(_CPPLIB_VER)
+#include
+#if !defined(_YVALS) && !defined(_CPPLIB_VER)
+#error This is not the Dinkumware lib!
+#endif
+#endif
+
+
+#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
+ // full dinkumware 3.06 and above
+ // fully conforming provided the compiler supports it:
+# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING > 0)) && !defined(_STD) // can be defined in yvals.h
+# define BOOST_NO_STDC_NAMESPACE
+# endif
+# if defined(_MSC_VER) && (_MSC_VER < 1300)
+ // if this lib version is set up for vc6 then there is no std::use_facet:
+# define BOOST_NO_STD_USE_FACET
+# define BOOST_HAS_TWO_ARG_USE_FACET
+# endif
+// 3.06 appears to have (non-sgi versions of) & , but no
+//# define BOOST_HAS_SLIST
+#else
+# define BOOST_MSVC_STD_ITERATOR 1
+# define BOOST_NO_STD_ITERATOR
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+# define BOOST_NO_STD_ALLOCATOR
+# define BOOST_NO_STDC_NAMESPACE
+# define BOOST_NO_STD_USE_FACET
+# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+# define BOOST_HAS_MACRO_USE_FACET
+# ifndef _CPPLIB_VER
+ // Updated Dinkum library defines this, and provides
+ // its own min and max definitions.
+# define BOOST_NO_STD_MIN_MAX
+# undef min
+# undef max
+# endif
+# ifndef NOMINMAX
+ // avoid spurious NOMINMAX redefinition warning
+# define NOMINMAX
+# endif
+#endif
+
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)
+ // if we're using a dinkum lib that's
+ // been configured for VC6 then there is
+ // no iterator traits (true even for icl)
+# define BOOST_NO_STD_ITERATOR_TRAITS
+#endif
+
+#ifdef _CPPLIB_VER
+# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
+#else
+# define BOOST_STDLIB "Dinkumware standard library version 1.x"
+#endif
+
+
+
+
diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp
new file mode 100644
index 00000000..c6f38dbb
--- /dev/null
+++ b/include/boost/config/stdlib/libstdcpp3.hpp
@@ -0,0 +1,19 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// config for libstdc++ v3
+// not much to go in here:
+
+#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
+
+#ifndef _GLIBCPP_USE_WCHAR_T
+# define BOOST_NO_CWCHAR
+# define BOOST_NO_CWCTYPE
+#endif
+
+
+
diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp
new file mode 100644
index 00000000..49abda0d
--- /dev/null
+++ b/include/boost/config/stdlib/msl.hpp
@@ -0,0 +1,46 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Metrowerks standard library:
+
+#ifndef __MSL_CPP__
+# include
+# ifndef __MSL_CPP__
+# error This is not the MSL standard library!
+# endif
+#endif
+
+#if __MSL_CPP__ >= 0x6000 // Pro 6
+# define BOOST_HAS_HASH
+# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
+#endif
+#define BOOST_HAS_SLIST
+
+#if __MSL_CPP__ < 0x6209
+# define BOOST_NO_STD_MESSAGES
+#endif
+
+// check C lib version for
+#include
+
+#if defined(__MSL__) && (__MSL__ >= 0x5000)
+# define BOOST_HAS_STDINT_H
+# if defined(macintosh)
+# define BOOST_HAS_UNISTD_H
+# endif
+#endif
+
+
+#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
+
+
+
+
+
+
+
+
diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp
new file mode 100644
index 00000000..132724c3
--- /dev/null
+++ b/include/boost/config/stdlib/roguewave.hpp
@@ -0,0 +1,102 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Rogue Wave std lib:
+
+#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
+# include
+# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
+# error This is not the Rogue Wave standard library
+# endif
+#endif
+//
+// figure out a consistent version number:
+//
+#ifndef _RWSTD_VER
+# define BOOST_RWSTD_VER 0x010000
+#elif _RWSTD_VER < 0x010000
+# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
+#else
+# define BOOST_RWSTD_VER _RWSTD_VER
+#endif
+
+#ifndef _RWSTD_VER
+# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
+#else
+# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
+#endif
+
+//
+// Prior to version 2.2.0 the primary template for std::numeric_limits
+// does not have compile time constants, even though specialisations of that
+// template do...
+//
+#if BOOST_RWSTD_VER < 0x020200
+# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#endif
+
+//
+// No std::iterator if it can't figure out default template args:
+//
+#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
+# define BOOST_NO_STD_ITERATOR
+#endif
+
+//
+// No iterator traits without partial specialisation:
+//
+#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
+# define BOOST_NO_STD_ITERATOR_TRAITS
+#endif
+
+//
+// Prior to version 2.0, std::auto_ptr was buggy, and their were no
+// new-style iostreams, and no conformant std::allocator:
+//
+#if (BOOST_RWSTD_VER < 0x020000)
+# define BOOST_NO_AUTO_PTR
+# define BOOST_NO_STRINGSTREAM
+# define BOOST_NO_STD_ALLOCATOR
+# define BOOST_NO_STD_LOCALE
+#endif
+
+//
+// No template iterator constructors without member template support:
+//
+#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#endif
+
+//
+// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use:
+//
+#if !defined(_RWSTD_ALLOCATOR)
+# define BOOST_NO_STD_ALLOCATOR
+#endif
+
+//
+// If we have a std::locale, we still may not have std::use_facet:
+//
+#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
+# define BOOST_NO_STD_USE_FACET
+# define BOOST_HAS_TWO_ARG_USE_FACET
+#endif
+
+//
+// There's no std::distance prior to version 2, or without
+// partial specialisation support:
+//
+#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
+ #define BOOST_NO_STD_DISTANCE
+#endif
+
+// Some versions of the rogue wave library, don't have assignable
+// OutputIterators:
+#if BOOST_RWSTD_VER < 0x020100
+# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#endif
+
diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp
new file mode 100644
index 00000000..2349088e
--- /dev/null
+++ b/include/boost/config/stdlib/sgi.hpp
@@ -0,0 +1,81 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// generic SGI STL:
+
+#if !defined(__STL_CONFIG_H)
+# include
+# if !defined(__STL_CONFIG_H)
+# error "This is not the SGI STL!"
+# endif
+#endif
+
+//
+// no std::iterator traits without partial specialisation:
+//
+#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
+# define BOOST_NO_STD_ITERATOR_TRAITS
+#endif
+
+//
+// No std::stringstream with gcc < 3
+//
+#if defined(__GNUC__) && (__GNUC__ < 3) && (__GNUC_MINOR__ < 95) && !defined(__STL_USE_NEW_IOSTREAMS)
+ // Note that we only set this for gnu C++ prior to 2.95 since the
+ // latest patches for that release do contain a minimal
+ // If you are running a 2.95 release prior to 2.95.3 then this will need
+ // setting, but there is no way to detect that automatically (other
+ // than by running the configure script).
+# define BOOST_NO_STRINGSTREAM
+#endif
+
+//
+// Assume no std::locale without own iostreams (this may be an
+// incorrect assumption in some cases):
+//
+#ifndef __SGI_STL_OWN_IOSTREAMS
+# define BOOST_NO_STD_LOCALE
+#endif
+
+//
+// No template iterator constructors, or std::allocator
+// without member templates:
+//
+#if !defined(__STL_MEMBER_TEMPLATES)
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+# define BOOST_NO_STD_ALLOCATOR
+#endif
+
+//
+// we always have SGI style hash_set, hash_map, and slist:
+//
+#define BOOST_HAS_HASH
+#define BOOST_HAS_SLIST
+
+//
+// If this is GNU libstdc++2, then no and no std::wstring:
+//
+#if (defined(__GNUC__) && (__GNUC__ < 3))
+# include
+# if defined(__BASTRING__)
+# define BOOST_NO_LIMITS
+# define BOOST_NO_STD_WSTRING
+# endif
+#endif
+
+//
+// there is no standard iterator unless we have namespace support:
+//
+#if !defined(__STL_USE_NAMESPACES)
+# define BOOST_NO_STD_ITERATOR
+#endif
+
+#define BOOST_STDLIB "SGI standard library"
+
+
+
+
diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp
new file mode 100644
index 00000000..e2e3d74d
--- /dev/null
+++ b/include/boost/config/stdlib/stlport.hpp
@@ -0,0 +1,91 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// STLPort standard library config:
+
+#if !defined(__SGI_STL_PORT)
+# include
+# if !defined(__SGI_STL_PORT)
+# error "This is not STLPort!"
+# endif
+#endif
+
+//
+// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+// for versions prior to 4.1(beta)
+//
+#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
+# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#endif
+
+//
+// If STLport thinks that there is no partial specialisation, then there is no
+// std::iterator traits:
+//
+#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
+# define BOOST_NO_STD_ITERATOR_TRAITS
+#endif
+
+//
+// No new style iostreams on GCC without STLport's iostreams enabled:
+//
+#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
+# define BOOST_NO_STRINGSTREAM
+#endif
+
+//
+// No new iostreams implies no std::locale, and no std::stringstream:
+//
+#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
+# define BOOST_NO_STD_LOCALE
+# define BOOST_NO_STRINGSTREAM
+#endif
+
+//
+// Without member template support enabled, their are no template
+// iterate constructors, and no std::allocator:
+//
+#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+# define BOOST_NO_STD_ALLOCATOR
+#endif
+
+//
+// we always have SGI style hash_set, hash_map, and slist:
+//
+#define BOOST_HAS_HASH
+#define BOOST_HAS_SLIST
+
+//
+// STLport does a good job of importing names into namespace std::,
+// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
+// workaround does not conflict with STLports:
+//
+#if defined(__STL_IMPORT_VENDOR_CSTD) || defined(__STL_USE_OWN_NAMESPACE) || defined(_STLP_IMPORT_VENDOR_CSTD) || defined(_STLP_USE_OWN_NAMESPACE)
+# define BOOST_NO_STDC_NAMESPACE
+#endif
+
+//
+// std::reverse_iterate behaves like VC6's under some circumstances:
+//
+#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) || defined (__STL_USE_OLD_HP_ITERATOR_QUERIES)\
+ || (!defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION ) && !defined ( __STL_CLASS_PARTIAL_SPECIALIZATION ))
+# define BOOST_MSVC_STD_ITERATOR
+#endif
+
+//
+// std::use_facet may be non-standard, uses a class instead:
+//
+#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
+# define BOOST_NO_STD_USE_FACET
+# define BOOST_HAS_STLP_USE_FACET
+#endif
+
+
+#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
+
+
diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp
new file mode 100644
index 00000000..ad4d2fc4
--- /dev/null
+++ b/include/boost/config/stdlib/vacpp.hpp
@@ -0,0 +1,13 @@
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+#define BOOST_HAS_MACRO_USE_FACET
+#define BOOST_NO_STD_ALLOCATOR
+
+#define BOOST_STDLIB "Visual Age default standard library"
+
+
diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp
new file mode 100644
index 00000000..ca52a58a
--- /dev/null
+++ b/include/boost/config/suffix.hpp
@@ -0,0 +1,293 @@
+// Boost config.hpp configuration header file ------------------------------//
+
+// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+// Boost config.hpp policy and rationale documentation has been moved to
+// http://www.boost.org/libs/config
+//
+// This file is intended to be stable, and relatively unchanging.
+// It should contain boilerplate code only - no compiler specific
+// code unless it is unavoidable - no changes unless unavoidable.
+
+#ifndef BOOST_CONFIG_SUFFIX_HPP
+#define BOOST_CONFIG_SUFFIX_HPP
+
+# ifndef BOOST_DECL
+# define BOOST_DECL // default for compilers not needing this decoration.
+# endif
+
+//
+// Assume any extensions are in namespace std:: unless stated otherwise:
+//
+# ifndef BOOST_STD_EXTENSION_NAMESPACE
+# define BOOST_STD_EXTENSION_NAMESPACE std
+# endif
+
+//
+// If cv-qualified specializations are not allowed, then neither are cv-void ones:
+//
+# if defined(BOOST_NO_CV_SPECIALIZATIONS) \
+ && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
+# define BOOST_NO_CV_VOID_SPECIALIZATIONS
+# endif
+
+//
+// If there is no numeric_limits template, then it can't have any compile time
+// constants either!
+//
+# if defined(BOOST_NO_LIMITS) \
+ && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
+# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+# endif
+
+//
+// if member templates are supported then so is the
+// VC6 subset of member templates:
+//
+# if !defined(BOOST_NO_MEMBER_TEMPLATES) \
+ && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+# define BOOST_MSVC6_MEMBER_TEMPLATES
+# endif
+
+//
+// Without partial specialization, std::iterator_traits can't work:
+//
+# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
+# define BOOST_NO_STD_ITERATOR_TRAITS
+# endif
+
+//
+// Without member template support, we can't have template constructors
+// in the standard library either:
+//
+# if defined(BOOST_NO_MEMBER_TEMPLATES) \
+ && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
+ && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+# endif
+
+//
+// Without member template support, we can't have a conforming
+// std::allocator template either:
+//
+# if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_NO_STD_ALLOCATOR)
+# define BOOST_NO_STD_ALLOCATOR
+# endif
+
+//
+// We can't have a working std::use_facet if there is no std::locale:
+//
+# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
+# define BOOST_NO_STD_USE_FACET
+# endif
+
+//
+// We can't have a std::messages facet if there is no std::locale:
+//
+# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
+# define BOOST_NO_STD_MESSAGES
+# endif
+
+//
+// We can't have a if there is no :
+//
+# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
+# define BOOST_NO_CWCTYPE
+# endif
+
+//
+// We can't have a swprintf if there is no :
+//
+# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
+# define BOOST_NO_SWPRINTF
+# endif
+
+
+//
+// if the platform claims to be Unix, then it had better behave like Unix!
+//
+# if defined(unix) \
+ || defined(__unix) \
+ || defined(_XOPEN_SOURCE) \
+ || defined(_POSIX_SOURCE)
+
+# ifndef BOOST_HAS_UNISTD_H
+# define BOOST_HAS_UNISTD_H
+# endif
+# endif
+
+//
+// If we have a then some optins can be deduced from it:
+//
+# ifdef BOOST_HAS_UNISTD_H
+# include
+# endif
+//
+// Turn on threading support if the compiler thinks that its in
+// multithreaded mode. We put this here because there are only a
+// limited number of macros that identify this (if there's any missing
+// from here then add to the appropriate compiler section):
+//
+#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
+ || defined(_PTHREADS)) && !defined(BOOST_DISABLE_THREADS)
+# define BOOST_HAS_THREADS
+#endif
+//
+// turn threading support off if BOOST_DISABLE_THREADS is defined:
+#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
+# undef BOOST_HAS_THREADS
+#endif
+
+//
+// If the compiler claims to be C99 conformant, then it had better
+// have a :
+//
+# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
+# define BOOST_HAS_STDINT_H
+# endif
+
+// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
+// Note that this is for backwards compatiblity only.
+# ifndef BOOST_HAS_SLIST
+# define BOOST_NO_SLIST
+# endif
+
+# ifndef BOOST_HAS_HASH
+# define BOOST_NO_HASH
+# endif
+
+// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
+//
+// Because std::size_t usage is so common, even in boost headers which do not
+// otherwise use the C library, the workaround is included here so
+// that ugly workaround code need not appear in many other boost headers.
+// NOTE WELL: This is a workaround for non-conforming compilers;
+// must still be #included in the usual places so that inclusion
+// works as expected with standard conforming compilers. The resulting
+// double inclusion of is harmless.
+
+# ifdef BOOST_NO_STDC_NAMESPACE
+# include
+ namespace std { using ::ptrdiff_t; using ::size_t; }
+# endif
+
+# ifdef BOOST_NO_STD_MIN_MAX
+
+namespace std {
+ template
+ inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
+ return __b < __a ? __b : __a;
+ }
+ template
+ inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
+ return __a < __b ? __b : __a;
+ }
+# ifdef BOOST_MSVC
+ inline long min(long __a, long __b) {
+ return __b < __a ? __b : __a;
+ }
+ inline long max(long __a, long __b) {
+ return __a < __b ? __b : __a;
+ }
+# endif
+}
+# endif
+
+// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
+// On compilers which don't allow in-class initialization of static integral
+// constant members, we must use enums as a workaround if we want the constants
+// to be available at compile-time. This macro gives us a convenient way to
+// declare such constants.
+# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
+# else
+# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
+# endif
+
+
+// BOOST_USE_FACET workaround ----------------------------------------------//
+// When the standard library does not have a comforming std::use_facet there
+// are various workarounds available, but they differ from library to library.
+// This macro provides a consistent way to access a locale's facets.
+// Usage:
+// replace
+// std::use_facet(loc);
+// with
+// BOOST_USE_FACET(Type, loc);
+// Note do not add a std:: prefix to the front of BOOST_USE_FACET!
+//
+#if defined(BOOST_NO_STD_USE_FACET)
+# ifdef BOOST_HAS_TWO_ARG_USE_FACET
+# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast(0))
+# elif defined(BOOST_HAS_MACRO_USE_FACET)
+# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
+# elif defined(BOOST_HAS_STLP_USE_FACET)
+# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet(loc))
+# endif
+#else
+# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
+#endif
+
+// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
+// Member templates are supported by some compilers even though they can't use
+// the A::template member syntax, as a workaround replace:
+//
+// typedef typename A::template rebind binder;
+//
+// with:
+//
+// typedef typename A::BOOST_NESTED_TEMPLATE rebind binder;
+//
+#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+# define BOOST_NESTED_TEMPLATE template
+#else
+# define BOOST_NESTED_TEMPLATE
+#endif
+
+//
+// Helper macro BOOST_STRINGIZE:
+// Converts the parameter X to a string after macro replacement
+// on X has been performed.
+//
+#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
+#define BOOST_DO_STRINGIZE(X) #X
+
+//
+// Helper macro BOOST_JOIN:
+// The following piece of macro magic joins the two
+// arguments together, even when one of the arguments is
+// itself a macro (see 16.3.1 in C++ standard). The key
+// is that macro expansion of macro arguments does not
+// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
+#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
+#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
+#define BOOST_DO_JOIN2( X, Y ) X##Y
+
+
+//
+// set some default values for compiler/library/platform names
+// these are for debugging config setup only:
+//
+# ifndef BOOST_COMPILER
+# define BOOST_COMPILER "Unknown ISO C++ Compiler"
+# endif
+# ifndef BOOST_STDLIB
+# define BOOST_STDLIB "Unknown ISO standard library"
+# endif
+# ifndef BOOST_PLATFORM
+# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
+ || defined(_POSIX_SOURCE)
+# define BOOST_PLATFORM "Generic Unix"
+# else
+# define BOOST_PLATFORM "Unknown"
+# endif
+# endif
+
+#endif
+
diff --git a/include/boost/config/user.hpp b/include/boost/config/user.hpp
new file mode 100644
index 00000000..e565e931
--- /dev/null
+++ b/include/boost/config/user.hpp
@@ -0,0 +1,58 @@
+// (C) Copyright Boost.org 2001.
+// Do not check in modified versions of this file,
+// This file may be customised by the end user, but not by boost.
+
+//
+// Use this file to define a site and compiler specific
+// configuration policy:
+//
+
+// define this to locate a compiler config file:
+// #define BOOST_COMPILER_CONFIG
+
+// define this to locate a stdlib config file:
+// #define BOOST_STDLIB_CONFIG
+
+// define this to locate a platform config file:
+// #define BOOST_PLATFORM_CONFIG
+
+// define this to disable compiler config,
+// use if your compiler config has nothing to set:
+// #define BOOST_NO_COMPILER_CONFIG
+
+// define this to disable stdlib config,
+// use if your stdlib config has nothing to set:
+// #define BOOST_NO_STDLIB_CONFIG
+
+// define this to disable platform config,
+// use if your platform config has nothing to set:
+// #define BOOST_NO_PLATFORM_CONFIG
+
+// define this to disable all config options,
+// excluding the user config. Use if your
+// setup is fully ISO compliant, and has no
+// useful extentions, or for autoconf generated
+// setups:
+// #define BOOST_NO_CONFIG
+
+// define this to make the config "optimistic"
+// about unknown compiler versions. Normally
+// unknown compiler versions are assumed to have
+// all the defects of the last known version, however
+// setting this flag, causes the config to assume
+// that unknown compiler versions are fully conformant
+// with the standard:
+// #define BOOST_STRICT_CONFIC
+
+// define this to cause the config to halt compilation
+// with a #error if it encounters anything unknown -
+// either an unknown compiler version or an unknown
+// compiler/platform/library:
+// #define BOOST_ASSERT_CONFIG
+
+
+// define if you want to disable threading support, even
+// when available:
+// #define BOOST_DISABLE_THREADS
+
+
diff --git a/include/boost/version.hpp b/include/boost/version.hpp
new file mode 100644
index 00000000..ab35ac8b
--- /dev/null
+++ b/include/boost/version.hpp
@@ -0,0 +1,26 @@
+// Boost config.hpp configuration header file ------------------------------//
+
+// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// See http://www.boost.org for most recent version.
+
+#ifndef BOOST_VERSION_HPP
+#define BOOST_VERSION_HPP
+
+//
+// Caution, this is the only boost header that is guarenteed
+// to change with every boost release, including this header
+// will cause a recompile every time a new boost version is
+// released.
+//
+// BOOST_VERSION % 100 is the sub-minor version
+// BOOST_VERSION / 100 % 1000 is the minor version
+// BOOST_VERSION / 100000 is the major version
+
+#define BOOST_VERSION 102400
+
+#endif
+
diff --git a/index.htm b/index.htm
deleted file mode 100644
index 72106f54..00000000
--- a/index.htm
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
-
-
-Configuration Header
-
-
-
-
-
-
-The boost/config.hpp header is used to
-pass configuration information to other boost files, allowing them to cope with
-platform dependencies such as arithmetic byte ordering, compiler pragmas, or
-compiler shortcomings. Without such configuration information, many current
-compilers would not work with the Boost libraries.
-Centralizing configuration information is this header reduces the number of
-files which must be modified when porting libraries to new platforms, or when
-compilers are updated. Ideally, no other files would have to be modified when
-porting to a new platform.
-Configuration headers are controversial because some view them as condoning
-broken compilers and encouraging non-standard subsets. Adding settings for
-additional platforms and maintaining existing settings can also be a problem. In
-other words, configuration headers are a necessary evil rather than a desirable
-feature. The boost config.hpp policy is designed to minimize the problems and
-maximize the benefits of a configuration header.
-Boost config.hpp policy
-For Library Users:
-
- - Boost library users are never required to #include boost/config.hpp, and
- are discouraged from including it on their own.
- - Boost library users can request support for additional platforms be added
- to config.hpp by emailing config@boost.org
- describing their request.
-
-For Library Implementors:
-
- - Boost library implementors are not required to #include boost/config.hpp,
- and are not required in any way to support compilers which do not comply
- with the C++ Standard (ISO/IEC 14882).
- - If a library implementor wishes to support some nonconforming compiler, or
- to support some platform specific feature, #include boost/config.hpp is the
- preferred way to obtain configuration information not available from the
- standard headers such as <climits>, etc.
- - If configuration information can be deduced from standard headers such as
- <climits>, use those standard headers rather than boost/config.hpp.
- - Boost files that use macros defined in boost/config.hpp should have
- sensible, standard conforming, default behavior if the macro is not defined.
- This means that the starting point for porting boost/config.hpp to a new
- platform is simply to define nothing at all specific to that platform. In
- the rare case where there is no sensible default behavior, an #error message
- should describe the problem.
- - If a Boost library implementor wants something added to config.hpp, post a
- request on the Boost mailing list. There is no guarantee such a request will
- be honored; the intent is to limit the complexity of config.hpp.
-
-General:
-
- - The intent is to support only compilers which appear on their way to
- becoming C++ Standard compliant, and only recent releases of those compilers
- at that.
- - The intent is not to disable mainstream features now well-supported by the
- majority of compilers, such as namespaces, exceptions, RTTI, or templates.
-
-Documentation
-See boost/config.hpp; it is designed to
-be self documenting.
-Test program
-The config_test.cpp program can be used to
-verify which #defines are in effect for your compiler.
-The limits_test.cpp program can also be helpful
-in diagnosing configuration problems.
-
-Revised 22 May 2001
-
-
-
-
diff --git a/test/boost_has_2arg_use_facet.ipp b/test/boost_has_2arg_use_facet.ipp
new file mode 100644
index 00000000..97f89528
--- /dev/null
+++ b/test/boost_has_2arg_use_facet.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_TWO_ARG_USE_FACET
+// TITLE: two argument version of use_facet
+// DESCRIPTION: The standard library lacks a conforming std::use_facet,
+// but has a two argument version that does the job.
+// This is primarily for the Rogue Wave std lib.
+
+#include
+
+
+namespace boost_has_two_arg_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype& ct = std::use_facet(l, (const std::ctype*)0);
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_bethreads.ipp b/test/boost_has_bethreads.ipp
new file mode 100644
index 00000000..689b5a06
--- /dev/null
+++ b/test/boost_has_bethreads.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_BETHREADS
+// TITLE: BeOS Threads
+// DESCRIPTION: The platform supports BeOS style threads.
+
+#include
+
+
+namespace boost_has_bethreads{
+
+int test()
+{
+ sem_id mut = create_sem(1, "test");
+ if(mut > 0)
+ {
+ acquire_sem(mut);
+ release_sem(mut);
+ delete_sem(mut);
+ }
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_hash.ipp b/test/boost_has_hash.ipp
new file mode 100644
index 00000000..3ba4709d
--- /dev/null
+++ b/test/boost_has_hash.ipp
@@ -0,0 +1,44 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_HASH
+// TITLE: and
+// DESCRIPTION: The C++ implementation provides the (SGI) hash_set
+// or hash_map classes.
+
+#include
+#include
+
+#ifndef BOOST_STD_EXTENSION_NAMESPACE
+#define BOOST_STD_EXTENSION_NAMESPACE std
+#endif
+
+namespace boost_has_hash{
+
+template
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set& )
+{
+}
+
+template
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map& )
+{
+}
+
+int test()
+{
+ BOOST_STD_EXTENSION_NAMESPACE::hash_set hs;
+ foo(hs);
+ BOOST_STD_EXTENSION_NAMESPACE::hash_map hm;
+ foo(hm);
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/test/boost_has_macro_use_facet.ipp b/test/boost_has_macro_use_facet.ipp
new file mode 100644
index 00000000..3a748333
--- /dev/null
+++ b/test/boost_has_macro_use_facet.ipp
@@ -0,0 +1,32 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_MACRO_USE_FACET
+// TITLE: macro version of use_facet: _USE
+// DESCRIPTION: The standard library lacks a conforming std::use_facet,
+// but has a macro _USE(loc, Type) that does the job.
+// This is primarily for the Dinkumware std lib.
+
+#include
+
+#ifndef _USE
+#error "macro _USE not defined"
+#endif
+
+namespace boost_has_macro_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype& ct = std::_USE(l, std::ctype);
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/test/boost_has_nl_types_h.ipp b/test/boost_has_nl_types_h.ipp
new file mode 100644
index 00000000..791ad304
--- /dev/null
+++ b/test/boost_has_nl_types_h.ipp
@@ -0,0 +1,26 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_NL_TYPES_H
+// TITLE:
+// DESCRIPTION: The platform has an .
+
+#include
+
+
+namespace boost_has_nl_types_h{
+
+int test()
+{
+ nl_catd cat = catopen("foo", 0);
+ if(cat >= 0) catclose(cat);
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_pthreads.ipp b/test/boost_has_pthreads.ipp
new file mode 100644
index 00000000..afc4661d
--- /dev/null
+++ b/test/boost_has_pthreads.ipp
@@ -0,0 +1,32 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_PTHREADS
+// TITLE: POSIX Threads
+// DESCRIPTION: The platform supports POSIX style threads.
+
+#include
+
+
+namespace boost_has_pthreads{
+
+int test()
+{
+ pthread_mutex_t mut;
+ int result = pthread_mutex_init(&mut, 0);
+ if(0 == result)
+ {
+ pthread_mutex_lock(&mut);
+ pthread_mutex_unlock(&mut);
+ pthread_mutex_destroy(&mut);
+ }
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_slist.ipp b/test/boost_has_slist.ipp
new file mode 100644
index 00000000..4c7ad28b
--- /dev/null
+++ b/test/boost_has_slist.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_SLIST
+// TITLE:
+// DESCRIPTION: The C++ implementation provides the (SGI) slist class.
+
+#include
+
+#ifndef BOOST_STD_EXTENSION_NAMESPACE
+#define BOOST_STD_EXTENSION_NAMESPACE std
+#endif
+
+namespace boost_has_slist{
+
+template
+void foo(const BOOST_STD_EXTENSION_NAMESPACE::slist& )
+{
+}
+
+
+int test()
+{
+ BOOST_STD_EXTENSION_NAMESPACE::slist l;
+ foo(l);
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/test/boost_has_stdint_h.ipp b/test/boost_has_stdint_h.ipp
new file mode 100644
index 00000000..91fb8d3c
--- /dev/null
+++ b/test/boost_has_stdint_h.ipp
@@ -0,0 +1,36 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_STDINT_H
+// TITLE: stdint.h
+// DESCRIPTION: There are no 1998 C++ Standard headers
+// or , although the 1999 C Standard does
+// include .
+// If is present, can make
+// good use of it, so a flag is supplied (signalling
+// presence; thus the default is not present, conforming
+// to the current C++ standard).
+
+#include
+
+namespace boost_has_stdint_h{
+
+int test()
+{
+ int8_t i = 0;
+ int_fast8_t j = 0;
+ int_least8_t k = 0;
+ (void)i;
+ (void)j;
+ (void)k;
+
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_stlp_use_facet.ipp b/test/boost_has_stlp_use_facet.ipp
new file mode 100644
index 00000000..7c386753
--- /dev/null
+++ b/test/boost_has_stlp_use_facet.ipp
@@ -0,0 +1,28 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_STLP_USE_FACET
+// TITLE: STLport version of use_facet
+// DESCRIPTION: The standard library lacks a conforming std::use_facet,
+// but has a workaound class-version that does the job.
+// This is primarily for the STLport std lib.
+
+#include
+
+
+namespace boost_has_stlp_use_facet{
+
+int test()
+{
+ std::locale l;
+ const std::ctype& ct = *std::_Use_facet >(l);
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_unistd_h.ipp b/test/boost_has_unistd_h.ipp
new file mode 100644
index 00000000..f1ccaf53
--- /dev/null
+++ b/test/boost_has_unistd_h.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_UNISTD_H
+// TITLE:
+// DESCRIPTION: The Platform provides .
+
+#include
+
+namespace boost_has_unistd_h{
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_has_vc6_mem_templ.ipp b/test/boost_has_vc6_mem_templ.ipp
new file mode 100644
index 00000000..f5091584
--- /dev/null
+++ b/test/boost_has_vc6_mem_templ.ipp
@@ -0,0 +1,55 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_MSVC6_MEMBER_TEMPLATES
+// TITLE: microsoft member templates
+// DESCRIPTION: Microsoft Visual C++ 6.0 has enough member
+// template idiosyncrasies (being polite) that
+// BOOST_NO_MEMBER_TEMPLATES is defined for this compiler.
+// BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow
+// compiler specific workarounds.
+#ifndef BOOST_NESTED_TEMPLATE
+#define BOOST_NESTED_TEMPLATE template
+#endif
+
+namespace boost_msvc6_member_templates{
+
+template
+struct foo
+{
+ template
+ struct nested
+ {
+ typedef foo other;
+ };
+ template
+ void mfoo(const U&)
+ {
+ }
+};
+
+template
+void vc6_mem_test(T i)
+{
+ foo f1;
+ typedef foo ifoo;
+ f1.mfoo(i);
+ typedef typename ifoo::BOOST_NESTED_TEMPLATE nested bound_t;
+ typedef typename bound_t::other other;
+ other o;
+ (void)o;
+}
+
+int test()
+{
+ int i = 0;
+ vc6_mem_test(i);
+ return 0;
+}
+
+}
+
+
+
diff --git a/test/boost_has_vc_iterator.ipp b/test/boost_has_vc_iterator.ipp
new file mode 100644
index 00000000..5fae8827
--- /dev/null
+++ b/test/boost_has_vc_iterator.ipp
@@ -0,0 +1,37 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_MSVC_STD_ITERATOR
+// TITLE: microsoft's version of std::iterator
+// DESCRIPTION: Microsoft's broken version of std::iterator
+// is being used.
+
+#include
+
+namespace boost_msvc_std_iterator{
+
+int test()
+{
+ typedef std::iterator<
+ std::random_access_iterator_tag,
+ int
+ > iterator_type_2;
+ typedef std::reverse_iterator r_it;
+
+ iterator_type_2::value_type v2 = 0;
+ iterator_type_2::iterator_category cat2;
+ //
+ // suppress some warnings:
+ //
+ (void)v2;
+ (void)cat2;
+
+ return 0;
+}
+
+}
+
+
+
diff --git a/test/boost_has_winthreads.ipp b/test/boost_has_winthreads.ipp
new file mode 100644
index 00000000..22d2f05d
--- /dev/null
+++ b/test/boost_has_winthreads.ipp
@@ -0,0 +1,31 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_HAS_WINTHREADS
+// TITLE: MS Windows threads
+// DESCRIPTION: The platform supports MS Windows style threads.
+
+#include
+
+
+namespace boost_has_winthreads{
+
+int test()
+{
+ HANDLE h = CreateMutex(0, 0, 0);
+ if(h != NULL)
+ {
+ WaitForSingleObject(h, INFINITE);
+ ReleaseMutex(h);
+ CloseHandle(h);
+ }
+ return 0;
+}
+
+}
+
+
+
+
diff --git a/test/boost_no_arg_dep_lookup.ipp b/test/boost_no_arg_dep_lookup.ipp
new file mode 100644
index 00000000..a83e22d5
--- /dev/null
+++ b/test/boost_no_arg_dep_lookup.ipp
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+// TITLE: Koenig lookup
+// DESCRIPTION: Compiler does not implement
+// argument-dependent lookup (also named Koenig lookup);
+// see std::3.4.2 [basic.koenig.lookup]
+
+
+namespace boost_no_argument_dependent_lookup{
+
+namespace foobar{
+
+struct test{};
+
+void call_test(const test&)
+{}
+
+}
+
+int test()
+{
+ foobar::test t;
+ call_test(t);
+ return 0;
+}
+
+
+}
+
+
diff --git a/test/boost_no_auto_ptr.ipp b/test/boost_no_auto_ptr.ipp
new file mode 100644
index 00000000..c5bc18ee
--- /dev/null
+++ b/test/boost_no_auto_ptr.ipp
@@ -0,0 +1,50 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_AUTO_PTR
+// TITLE: std::auto_ptr
+// DESCRIPTION: If the compiler / library supplies non-standard or broken
+// std::auto_ptr.
+
+#include
+
+namespace boost_no_auto_ptr{
+
+template
+class my_ptr
+{
+ T* p;
+public:
+ my_ptr(std::auto_ptr& r)
+ {
+ p = r.release();
+ }
+ my_ptr& operator=(std::auto_ptr& r)
+ {
+ delete p;
+ p = r.release();
+ return *this;
+ }
+ ~my_ptr()
+ {
+ delete p;
+ }
+};
+
+
+int test()
+{
+ std::auto_ptr ap1(new int);
+ my_ptr mp(ap1);
+ std::auto_ptr ap2(new int);
+ mp = ap2;
+
+ return 0;
+}
+
+}
+
+
+
diff --git a/test/boost_no_cv_spec.ipp b/test/boost_no_cv_spec.ipp
new file mode 100644
index 00000000..56154e78
--- /dev/null
+++ b/test/boost_no_cv_spec.ipp
@@ -0,0 +1,44 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_CV_SPECIALIZATIONS
+// TITLE: template specialisations of cv-qualified types
+// DESCRIPTION: If template specialisations for cv-qualified types
+// conflict with a specialisation for a cv-unqualififed type.
+
+
+namespace boost_no_cv_specializations{
+
+template
+struct is_int
+{
+};
+
+template <>
+struct is_int
+{};
+
+template <>
+struct is_int
+{};
+
+template <>
+struct is_int
+{};
+
+template <>
+struct is_int
+{};
+
+int test()
+{
+ return 0;
+}
+
+
+}
+
+
+
diff --git a/test/boost_no_cv_void_spec.ipp b/test/boost_no_cv_void_spec.ipp
new file mode 100644
index 00000000..b895c5ad
--- /dev/null
+++ b/test/boost_no_cv_void_spec.ipp
@@ -0,0 +1,42 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_CV_VOID_SPECIALIZATIONS
+// TITLE: template specialisations of cv-qualified void
+// DESCRIPTION: If template specialisations for cv-void types
+// conflict with a specialisation for void.
+
+
+namespace boost_no_cv_void_specializations{
+
+template
+struct is_void
+{
+};
+
+template <>
+struct is_void
+{};
+
+template <>
+struct is_void
+{};
+
+template <>
+struct is_void
+{};
+
+template <>
+struct is_void
+{};
+
+int test()
+{
+ return 0;
+}
+
+}
+
+
diff --git a/test/boost_no_cwchar.ipp b/test/boost_no_cwchar.ipp
new file mode 100644
index 00000000..7a03024b
--- /dev/null
+++ b/test/boost_no_cwchar.ipp
@@ -0,0 +1,30 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_CWCHAR
+// TITLE: and
+// DESCRIPTION: The Platform does not provide and .
+
+#include
+#include
+
+namespace boost_no_cwchar{
+
+int test()
+{
+ wchar_t c1[2] = { 0 };
+ wchar_t c2[2] = { 0 };
+ if(wcscmp(c1,c2) || wcslen(c1)) return -1;
+ wcscpy(c1,c2);
+ wcsxfrm(c1,c2,0);
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/test/boost_no_cwctype.ipp b/test/boost_no_cwctype.ipp
new file mode 100644
index 00000000..c82bdb2d
--- /dev/null
+++ b/test/boost_no_cwctype.ipp
@@ -0,0 +1,44 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_CWCTYPE
+// TITLE: and
+// DESCRIPTION: The Platform does not provide and .
+
+//
+// Note that some platforms put these prototypes in the wrong headers,
+// we have to include prretty well all the string headers on the chance that
+// one of them will contain what we want!!
+//
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace boost_no_cwctype{
+
+int test()
+{
+ if(!(iswalpha(L'a') &&
+ iswcntrl(L'\r') &&
+ iswdigit(L'2') &&
+ iswlower(L'a') &&
+ iswpunct(L',') &&
+ iswspace(L' ') &&
+ iswupper(L'A') &&
+ iswxdigit(L'A')
+ )) return -1;
+ if(L'a' != towlower(L'A')) return -1;
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/test/boost_no_dep_nested_class.ipp b/test/boost_no_dep_nested_class.ipp
new file mode 100644
index 00000000..779b2229
--- /dev/null
+++ b/test/boost_no_dep_nested_class.ipp
@@ -0,0 +1,55 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
+// TITLE: dependent nested template classes
+// DESCRIPTION: The compiler fails to compile
+// a nested class that has a dependent base class:
+// template
+// struct foo : {
+// template
+// struct bar : public U {};
+// };
+#ifndef BOOST_NESTED_TEMPLATE
+#define BOOST_NESTED_TEMPLATE template
+#endif
+
+
+namespace boost_no_dependent_nested_derivations{
+
+struct UDT1{};
+struct UDT2{};
+
+template
+struct foo
+{
+ template
+ struct bar : public foo
+ {};
+};
+
+template
+void foo_test(T)
+{
+ typedef foo foo_type;
+ typedef typename foo_type::BOOST_NESTED_TEMPLATE bar bar_type;
+ foo ft;
+ bar_type bt;
+ (void)bt;
+ (void)ft;
+};
+
+int test()
+{
+ foo_test(UDT1());
+ return 0;
+}
+
+}
+
+
+
+
+
diff --git a/test/boost_no_dep_val_param.ipp b/test/boost_no_dep_val_param.ipp
new file mode 100644
index 00000000..08447431
--- /dev/null
+++ b/test/boost_no_dep_val_param.ipp
@@ -0,0 +1,33 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
+// TITLE: dependent non-type template parameters
+// DESCRIPTION: Template value parameters cannot have a dependent
+// type, for example:
+// template
+// class X { ... };
+
+
+namespace boost_no_dependent_types_in_template_value_parameters{
+
+template
+class X
+{};
+
+template
+struct typifier
+{
+ typedef T type;
+};
+
+int test()
+{
+ X > x;
+ return 0;
+}
+
+}
+
diff --git a/test/boost_no_exp_func_tem_arg.ipp b/test/boost_no_exp_func_tem_arg.ipp
new file mode 100644
index 00000000..2b1f4c2d
--- /dev/null
+++ b/test/boost_no_exp_func_tem_arg.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+// TITLE: non-deduced function template parameters
+// DESCRIPTION: Can only use deduced template arguments when
+// calling function template instantiations.
+
+#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200)
+#error "This is known to be buggy under VC6"
+#endif
+
+
+namespace boost_no_explicit_function_template_arguments{
+
+template
+bool foo(int j)
+{
+ return (i == j);
+}
+
+int test()
+{
+ if(0 == foo<8>(8)) return -1;
+ if(0 == foo<4>(4)) return -1;
+ if(0 == foo<5>(5)) return -1;
+ return 0;
+}
+
+}
+
+
+
diff --git a/test/boost_no_func_tmp_order.ipp b/test/boost_no_func_tmp_order.ipp
new file mode 100644
index 00000000..0dea5dcb
--- /dev/null
+++ b/test/boost_no_func_tmp_order.ipp
@@ -0,0 +1,46 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
+// TITLE: weak function template ordering
+// DESCRIPTION: The compiler does not perform
+// function template ordering or its function
+// template ordering is incorrect.
+//
+// template void f(T); // #1
+// template void f(T (*)(U)); // #2
+// void bar(int);
+// f(&bar); // should choose #2.
+
+
+namespace boost_weak_function_template_ordering{
+
+template
+bool f(T)
+{
+ return false;
+}
+
+template
+bool f(T (*)(U))
+{
+ return true;
+}
+
+void bar(int)
+{
+}
+
+int test()
+{
+ int i = 0;
+ return f(i) || !f(&bar);
+}
+
+}
+
+
+
+
diff --git a/test/boost_no_inline_memb_init.ipp b/test/boost_no_inline_memb_init.ipp
new file mode 100644
index 00000000..9e15125d
--- /dev/null
+++ b/test/boost_no_inline_memb_init.ipp
@@ -0,0 +1,52 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+// TITLE: inline member constant initialisation
+// DESCRIPTION: Compiler violates std::9.4.2/4.
+
+
+namespace boost_no_inclass_member_initialization{
+
+struct UDT{};
+
+
+template
+struct ice_or_helper
+{
+ static const bool value = true;
+};
+template <>
+struct ice_or_helper
+{
+ static const bool value = false;
+};
+
+template
+struct ice_or
+{
+ static const bool value = ice_or_helper::value;
+};
+
+template
+struct is_int
+{
+ static const bool value = false;
+};
+
+template <>
+struct is_int
+{
+ static const bool value = true;
+};
+
+int test()
+{
+ typedef int a1[ice_or< is_int::value, is_int::value>::value ? 1 : -1];
+ return 0;
+}
+
+}
+
diff --git a/test/boost_no_iter_construct.ipp b/test/boost_no_iter_construct.ipp
new file mode 100644
index 00000000..224138cc
--- /dev/null
+++ b/test/boost_no_iter_construct.ipp
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and
+// distribute this software is granted provided this copyright notice appears
+// in all copies. This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+
+// MACRO: BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+// TITLE: template iterator-constructors
+// DESCRIPTION: The standard library does not provide
+// templated iterator constructors for its containers.
+
+#include
+#include