commit of split-config, including any changes required to existing libraries (mainly regex).

[SVN r11138]
This commit is contained in:
John Maddock
2001-09-18 11:13:39 +00:00
parent 702a1e7bc4
commit 38009aaf3b
198 changed files with 13106 additions and 928 deletions

1264
config.htm Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -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 <boost/config.hpp>
#include <iostream>
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;
}

2338
configure vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -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; <cstddef> 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 T, typename T::type value> 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: <boost/cstdint.hpp> does not support 64-bit integer
// types. (Set by <boost/cstdint.hpp> rather than <boost/config.hpp>).
// BOOST_NO_INTEGRAL_INT64_T: int64_t as defined by <boost/cstdint.hpp> is
// not an integral type.
// BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS: constants such as
// numeric_limits<T>::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<class P> 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 <c...> headers) have not been placed in namespace std.
// Because the use of std::size_t is so common, a specific workaround for
// <cstddef> (and thus std::size_t) is provided in this header (see below).
// For other <c...> headers, a workaround must be provided in the boost header:
//
// #include <cstdlib> // 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<typename T> void f(T); // #1
// template<typename T, typename U> 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<typename T>
// struct foo : public T {
// template<typename U>
// 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 <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_NO_SLIST: The C++ implementation does not provide the slist class.
// BOOST_NO_STRINGSTREAM: The C++ implementation does not provide the <sstream> 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 <limits> 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 <algorithm>.
// 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
// 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 <boost/config/user.hpp>
#endif
// include it first:
#ifdef BOOST_USER_CONFIG
# include BOOST_USER_CONFIG
#endif
// 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 <boost/config/select_compiler_config.hpp>
#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 <boost/config/select_stdlib_config.hpp>
#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 <boost/config/select_platform_config.hpp>
#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 <memory>
# if __BORLANDC__ <= 0x0551
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_PRIVATE_IN_AGGREGATE
// if we have a compiler config, include it now:
#ifdef BOOST_COMPILER_CONFIG
# include BOOST_COMPILER_CONFIG
#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)
// <climits> 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 <float.h>
#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
// 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
// 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 <string> // 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 <iterator>
# if defined(__GLIBCPP__)
// The new GNU C++ library has slist, hash_map, hash_set headers
// in <ext/*>, 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 <iterator>
# 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 <iterator> // 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 <cwchar> 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 <iterator>
# 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 <iterator> // 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 <cstddef>
// 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
#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
#endif
#ifdef __APPLE_CC__
#define BOOST_NO_INTRINSIC_WCHAR_T
#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 <cstddef> 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; <cstddef>
// must still be #included in the usual places so that <cstddef> inclusion
// works as expected with standard conforming compilers. The resulting
// double inclusion of <cstddef> is harmless.
# ifdef BOOST_NO_STDC_NAMESPACE
# include <cstddef>
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 <class _Tp>
inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
return __b < __a ? __b : __a;
}
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
return __a < __b ? __b : __a;
}
#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 <boost/config/suffix.hpp>
#endif // BOOST_CONFIG_HPP
@@ -671,3 +64,6 @@ namespace std {

View File

@@ -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)
// <climits> 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 <float.h>
#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

View File

@@ -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

View File

@@ -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

View File

@@ -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?

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <cwchar> 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

View File

@@ -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

View File

@@ -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

View File

@@ -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?

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <nl_type.h> but does not
// advertise the fact in <unistd.h>:
//
#if defined(__FreeBSD__) && (__FreeBSD__ >= 4)
# define BOOST_HAS_NL_TYPES_H
#endif
//
// no wide character support:
//
#define BOOST_NO_CWCHAR

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <stdint.h>)
// 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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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 <unistd.h>
// XOpen has <nl_types.h>, 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 <stdint.h>
# 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 <pthreads.h>, but such occurrences should
// occur very rarely if at all...
# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0)
# define BOOST_HAS_PTHREADS
# endif
# endif

View File

@@ -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 <boost/config/compiler/gcc.hpp>
#elif defined __KCC
// Kai C++
# define BOOST_COMPILER_CONFIG <boost/config/compiler/kai.hpp>
#elif defined __sgi
// SGI MIPSpro C++
# define BOOST_COMPILER_CONFIG <boost/config/compiler/sgi_mipspro.hpp>
#elif defined __DECCXX
// Compaq Tru64 Unix cxx
# define BOOST_COMPILER_CONFIG <boost/config/compiler/compaq_cxx.hpp>
#elif defined __ghs
// Greenhills C++
# define BOOST_COMPILER_CONFIG <boost/config/compiler/greenhills.hpp>
#elif defined __BORLANDC__
// Borland
# define BOOST_COMPILER_CONFIG <boost/config/compiler/borland.hpp>
#elif defined(__ICL) || defined(__ICC)
// Intel
# define BOOST_COMPILER_CONFIG <boost/config/compiler/intel.hpp>
#elif defined __MWERKS__
// Metrowerks CodeWarrior
# define BOOST_COMPILER_CONFIG <boost/config/compiler/metrowerks.hpp>
#elif defined __SUNPRO_CC
// Sun Workshop Compiler C++
# define BOOST_COMPILER_CONFIG <boost/config/compiler/sunpro_cc.hpp>
#elif defined __HP_aCC
// HP aCC
# define BOOST_COMPILER_CONFIG <boost/config/compiler/hp_acc.hpp>
#elif defined(__MRC__) || defined(__SC__)
// MPW MrCpp or SCpp
# define BOOST_COMPILER_CONFIG <boost/config/compiler/mpw.hpp>
#elif defined(__IBMCPP__)
// IBM Visual Age
# define BOOST_COMPILER_CONFIG <boost/config/compiler/vacpp.hpp>
# elif defined __COMO__
// Comeau C++
# define BOOST_COMPILER_CONFIG <boost/config/compiler/comeau.hpp>
#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 <boost/config/compiler/visualc.hpp>
#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

View File

@@ -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
// <header_name> 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

View File

@@ -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 <utility> 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 <utility>
#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 <boost/config/stdlib/stlport.hpp>
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
// Rogue Wave library:
# define BOOST_STDLIB_CONFIG <boost/config/stdlib/roguewave.hpp>
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
// Dinkumware Library:
# define BOOST_STDLIB_CONFIG <boost/config/stdlib/dinkumware.hpp>
#elif defined(__GLIBCPP__)
// GNU libstdc++ 3
# define BOOST_STDLIB_CONFIG <boost/config/stdlib/libstdcpp3.hpp>
#elif defined(__STL_CONFIG_H)
// generic SGI STL
# define BOOST_STDLIB_CONFIG <boost/config/stdlib/sgi.hpp>
#elif defined(__MSL_CPP__)
// MSL standard lib:
# define BOOST_STDLIB_CONFIG <boost/config/stdlib/msl.hpp>
# elif defined(__IBMCPP__)
// take the default VACPP std lib
# define BOOST_STDLIB_CONFIG <boost/config/stdlib/vacpp.hpp>
#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

View File

@@ -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 <utility>
#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) <hash_set> & <hash_map>, but no <slist>
//# 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

View File

@@ -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

View File

@@ -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 <utility>
# 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 <stdint.h>
#include <cstddef>
#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__)

View File

@@ -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 <utility>
# 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

View File

@@ -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 <utility>
# 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 <sstream>
// 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 <limits> and no std::wstring:
//
#if (defined(__GNUC__) && (__GNUC__ < 3))
# include <string>
# 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"

View File

@@ -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 <utility>
# 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)

View File

@@ -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"

View File

@@ -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 <cwctype> if there is no <cwchar>:
//
# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
# define BOOST_NO_CWCTYPE
# endif
//
// We can't have a swprintf if there is no <cwchar>:
//
# 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 <unistd.h> then some optins can be deduced from it:
//
# ifdef BOOST_HAS_UNISTD_H
# include <boost/config/posix_features.hpp>
# 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 <stdint.h>:
//
# 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 <cstddef> 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; <cstddef>
// must still be #included in the usual places so that <cstddef> inclusion
// works as expected with standard conforming compilers. The resulting
// double inclusion of <cstddef> is harmless.
# ifdef BOOST_NO_STDC_NAMESPACE
# include <cstddef>
namespace std { using ::ptrdiff_t; using ::size_t; }
# endif
# ifdef BOOST_NO_STD_MIN_MAX
namespace std {
template <class _Tp>
inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
return __b < __a ? __b : __a;
}
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
return __a < __b ? __b : __a;
}
# 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<Type>(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<Type const*>(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<Type >(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<U> syntax, as a workaround replace:
//
// typedef typename A::template rebind<U> binder;
//
// with:
//
// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> 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

View File

@@ -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 <myheader>
// define this to locate a stdlib config file:
// #define BOOST_STDLIB_CONFIG <myheader>
// define this to locate a platform config file:
// #define BOOST_PLATFORM_CONFIG <myheader>
// 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

26
include/boost/version.hpp Normal file
View File

@@ -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

View File

@@ -1,89 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Configuration Header</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../../people/people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Configuration Header <a href="../../boost/config.hpp">boost/config.hpp</a></h1>
<p>The <a href="../../boost/config.hpp">boost/config.hpp</a> 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.</p>
<p>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.</p>
<p>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.</p>
<h2>Boost config.hpp policy</h2>
<p>For Library Users:</p>
<ul>
<li>Boost library users are never required to #include boost/config.hpp, and
are discouraged from including it on their own.</li>
<li>Boost library users can request support for additional platforms be added
to config.hpp by emailing <a href="mailto:config@boost.org">config@boost.org</a>
describing their request.</li>
</ul>
<p>For Library Implementors:</p>
<ul>
<li>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).</li>
<li>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 &lt;climits&gt;, etc.</li>
<li>If configuration information can be deduced from standard headers such as
&lt;climits&gt;, use those standard headers rather than boost/config.hpp.</li>
<li>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.</li>
<li>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.</li>
</ul>
<p>General:</p>
<ul>
<li>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.</li>
<li>The intent is not to disable mainstream features now well-supported by the
majority of compilers, such as namespaces, exceptions, RTTI, or templates.</li>
</ul>
<h2>Documentation</h2>
<p>See <a href="../../boost/config.hpp">boost/config.hpp</a>; it is designed to
be self documenting.</p>
<h2>Test program</h2>
<p>The <a href="config_test.cpp">config_test.cpp</a> program can be used to
verify which #defines are in effect for your compiler.</p>
<p>The <a href="limits_test.cpp">limits_test.cpp</a> program can also be helpful
in diagnosing configuration problems.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->22 May 2001<!--webbot bot="Timestamp" endspan i-checksum="15106" --></p>
</body>
</html>

View File

@@ -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 <locale>
namespace boost_has_two_arg_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = std::use_facet(l, (const std::ctype<char>*)0);
return 0;
}
}

View File

@@ -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 <OS.h>
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;
}
}

44
test/boost_has_hash.ipp Normal file
View File

@@ -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: <hashset> and <hashmap>
// DESCRIPTION: The C++ implementation provides the (SGI) hash_set
// or hash_map classes.
#include <hash_set>
#include <hash_map>
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std
#endif
namespace boost_has_hash{
template <class Key, class Eq, class Hash, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>& )
{
}
template <class Key, class T, class Eq, class Hash, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>& )
{
}
int test()
{
BOOST_STD_EXTENSION_NAMESPACE::hash_set<int> hs;
foo(hs);
BOOST_STD_EXTENSION_NAMESPACE::hash_map<int, long> hm;
foo(hm);
return 0;
}
}

View File

@@ -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 <locale>
#ifndef _USE
#error "macro _USE not defined"
#endif
namespace boost_has_macro_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = std::_USE(l, std::ctype<char>);
return 0;
}
}

View File

@@ -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: <nl_types.h>
// DESCRIPTION: The platform has an <nl_types.h>.
#include <nl_types.h>
namespace boost_has_nl_types_h{
int test()
{
nl_catd cat = catopen("foo", 0);
if(cat >= 0) catclose(cat);
return 0;
}
}

View File

@@ -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 <pthread.h>
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;
}
}

36
test/boost_has_slist.ipp Normal file
View File

@@ -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: <slist>
// DESCRIPTION: The C++ implementation provides the (SGI) slist class.
#include <slist>
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std
#endif
namespace boost_has_slist{
template <class T, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::slist<T,Alloc>& )
{
}
int test()
{
BOOST_STD_EXTENSION_NAMESPACE::slist<int> l;
foo(l);
return 0;
}
}

View File

@@ -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 <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).
#include <stdint.h>
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;
}
}

View File

@@ -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 <locale>
namespace boost_has_stlp_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = *std::_Use_facet<std::ctype<char> >(l);
return 0;
}
}

View File

@@ -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: <unistd.h>
// DESCRIPTION: The Platform provides <unistd.h>.
#include <unistd.h>
namespace boost_has_unistd_h{
int test()
{
return 0;
}
}

View File

@@ -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 <class T>
struct foo
{
template <class U>
struct nested
{
typedef foo<U> other;
};
template <class U>
void mfoo(const U&)
{
}
};
template <class T>
void vc6_mem_test(T i)
{
foo<double> f1;
typedef foo<T> ifoo;
f1.mfoo(i);
typedef typename ifoo::BOOST_NESTED_TEMPLATE nested<double> bound_t;
typedef typename bound_t::other other;
other o;
(void)o;
}
int test()
{
int i = 0;
vc6_mem_test(i);
return 0;
}
}

View File

@@ -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 <iterator>
namespace boost_msvc_std_iterator{
int test()
{
typedef std::iterator<
std::random_access_iterator_tag,
int
> iterator_type_2;
typedef std::reverse_iterator<const char*, const char> r_it;
iterator_type_2::value_type v2 = 0;
iterator_type_2::iterator_category cat2;
//
// suppress some warnings:
//
(void)v2;
(void)cat2;
return 0;
}
}

View File

@@ -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 <windows.h>
namespace boost_has_winthreads{
int test()
{
HANDLE h = CreateMutex(0, 0, 0);
if(h != NULL)
{
WaitForSingleObject(h, INFINITE);
ReleaseMutex(h);
CloseHandle(h);
}
return 0;
}
}

View File

@@ -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;
}
}

View File

@@ -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 <memory>
namespace boost_no_auto_ptr{
template <class T>
class my_ptr
{
T* p;
public:
my_ptr(std::auto_ptr<T>& r)
{
p = r.release();
}
my_ptr& operator=(std::auto_ptr<T>& r)
{
delete p;
p = r.release();
return *this;
}
~my_ptr()
{
delete p;
}
};
int test()
{
std::auto_ptr<int> ap1(new int);
my_ptr<int> mp(ap1);
std::auto_ptr<int> ap2(new int);
mp = ap2;
return 0;
}
}

44
test/boost_no_cv_spec.ipp Normal file
View File

@@ -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 <class T>
struct is_int
{
};
template <>
struct is_int<int>
{};
template <>
struct is_int<const int>
{};
template <>
struct is_int<volatile int>
{};
template <>
struct is_int<const volatile int>
{};
int test()
{
return 0;
}
}

View File

@@ -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 <class T>
struct is_void
{
};
template <>
struct is_void<void>
{};
template <>
struct is_void<const void>
{};
template <>
struct is_void<volatile void>
{};
template <>
struct is_void<const volatile void>
{};
int test()
{
return 0;
}
}

30
test/boost_no_cwchar.ipp Normal file
View File

@@ -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: <wchar.h> and <cwchar>
// DESCRIPTION: The Platform does not provide <wchar.h> and <cwchar>.
#include <cwchar>
#include <wchar.h>
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;
}
}

44
test/boost_no_cwctype.ipp Normal file
View File

@@ -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: <wctype.h> and <cwctype>
// DESCRIPTION: The Platform does not provide <wctype.h> and <cwctype>.
//
// 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 <cwctype>
#include <wctype.h>
#include <cwchar>
#include <wchar.h>
#include <cctype>
#include <ctype.h>
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;
}
}

View File

@@ -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<typename T>
// struct foo : {
// template<typename U>
// 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<typename T>
struct foo
{
template<typename U>
struct bar : public foo<U>
{};
};
template <class T>
void foo_test(T)
{
typedef foo<T> foo_type;
typedef typename foo_type::BOOST_NESTED_TEMPLATE bar<UDT2> bar_type;
foo<T> ft;
bar_type bt;
(void)bt;
(void)ft;
};
int test()
{
foo_test(UDT1());
return 0;
}
}

View File

@@ -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 T, typename T::type value>
// class X { ... };
namespace boost_no_dependent_types_in_template_value_parameters{
template <class T, typename T::type value = 0>
class X
{};
template <class T>
struct typifier
{
typedef T type;
};
int test()
{
X<typifier<int> > x;
return 0;
}
}

View File

@@ -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 <int i>
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;
}
}

View File

@@ -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<typename T> void f(T); // #1
// template<typename T, typename U> void f(T (*)(U)); // #2
// void bar(int);
// f(&bar); // should choose #2.
namespace boost_weak_function_template_ordering{
template<typename T>
bool f(T)
{
return false;
}
template<typename T, typename U>
bool f(T (*)(U))
{
return true;
}
void bar(int)
{
}
int test()
{
int i = 0;
return f(i) || !f(&bar);
}
}

View File

@@ -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 <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
struct ice_or_helper
{
static const bool value = true;
};
template <>
struct ice_or_helper<false, false, false, false, false, false, false>
{
static const bool value = false;
};
template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
struct ice_or
{
static const bool value = ice_or_helper<b1, b2, b3, b4, b5, b6, b7>::value;
};
template <class T>
struct is_int
{
static const bool value = false;
};
template <>
struct is_int<int>
{
static const bool value = true;
};
int test()
{
typedef int a1[ice_or< is_int<int>::value, is_int<UDT>::value>::value ? 1 : -1];
return 0;
}
}

View File

@@ -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 <vector>
#include <deque>
#include <list>
namespace boost_no_templated_iterator_constructors{
int test()
{
std::vector<int> v1;
std::deque<int> d1;
std::list<char> l1;
//
// now try constructors:
std::vector<long> v2(d1.begin(), d1.end());
std::deque<long> d2(v1.begin(), v1.end());
std::list<long> l2(d1.begin(), d1.end());
return 0;
}
}

31
test/boost_no_limits.ipp Normal file
View File

@@ -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_NO_LIMITS
// TITLE: <limits>
// DESCRIPTION: The C++ implementation does not provide the <limits> header.
#include <limits>
namespace boost_no_limits{
int test()
{
if(0 == std::numeric_limits<int>::is_specialized) return -1;
if(0 == std::numeric_limits<long>::is_specialized) return -1;
if(0 == std::numeric_limits<char>::is_specialized) return -1;
if(0 == std::numeric_limits<unsigned char>::is_specialized) return -1;
if(0 == std::numeric_limits<signed char>::is_specialized) return -1;
if(0 == std::numeric_limits<float>::is_specialized) return -1;
if(0 == std::numeric_limits<double>::is_specialized) return -1;
if(0 == std::numeric_limits<long double>::is_specialized) return -1;
return 0;
}
}

View File

@@ -0,0 +1,39 @@
// (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_LIMITS_COMPILE_TIME_CONSTANTS
// TITLE: compile time constants in <limits>
// DESCRIPTION: constants such as numeric_limits<T>::is_signed
// are not available for use at compile-time.
#include <limits>
namespace boost_no_limits_compile_time_constants{
struct UDT{};
template <int i>
struct assert_ice
{
enum { value = i };
};
int test()
{
assert_ice< ::std::numeric_limits<int>::is_signed > one;
assert_ice< ::std::numeric_limits<double>::is_specialized > two;
assert_ice< ::std::numeric_limits<UDT>::is_specialized > three;
assert_ice< ::std::numeric_limits<UDT>::is_signed > four;
(void)one;
(void)two;
(void)three;
(void)four;
return 0;
}
}

View File

@@ -0,0 +1,65 @@
// (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_MEMBER_TEMPLATE_KEYWORD
// TITLE: member templates keyword
// DESCRIPTION: Member template keyword not supported.
namespace boost_no_member_template_keyword{
#ifndef BOOST_NO_MEMBER_TEMPLATES
template <class T>
struct foo
{
template <class U>
struct nested
{
typedef foo<U> other;
};
template <class U>
void mfoo(const U&);
};
template <class T>
template <class U>
void foo<T>::mfoo(const U&)
{
}
template <class T>
void test_proc(T i)
{
foo<double> f1;
typedef foo<T> ifoo;
f1.mfoo(i);
f1.template mfoo<T>(i);
typedef typename ifoo::template nested<double> bound_t;
typedef typename bound_t::other other;
other o;
}
#else
template <class T>
void test_proc(T)
{
}
#endif
int test()
{
test_proc(0);
return 0;
}
}

View File

@@ -0,0 +1,67 @@
// (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_MEMBER_TEMPLATE_FRIENDS
// TITLE: member template friends
// DESCRIPTION: Member template friend syntax
// ("template<class P> friend class frd;")
// described in the C++ Standard,
// 14.5.3, not supported.
namespace boost_no_member_template_friends{
template <class T>
class foobar;
template <class T>
class foo;
template <class T>
bool must_be_friend_proc(const foo<T>& f);
template <class T>
class foo
{
private:
template<typename Y> friend class foobar;
template<typename Y> friend class foo;
template<typename T> friend bool must_be_friend_proc(const foo<T>& f);
int i;
public:
foo(){ i = 0; }
template <class U>
foo(const foo<U>& f){ i = f.i; }
};
template <class T>
bool must_be_friend_proc(const foo<T>& f)
{ return f.i != 0; }
template <class T>
class foobar
{
int i;
public:
template <class U>
foobar(const foo<U>& f)
{ i = f.i; }
};
int test()
{
foo<int> fi;
foo<double> fd(fi);
foobar<long> fb(fi);
return 0;
}
}

View File

@@ -0,0 +1,60 @@
// (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_MEMBER_TEMPLATES
// TITLE: member templates
// DESCRIPTION: Member template functions not fully supported.
#ifndef BOOST_NESTED_TEMPLATE
#define BOOST_NESTED_TEMPLATE template
#endif
namespace boost_no_member_templates{
template <class T>
struct foo
{
template <class U>
struct nested
{
typedef foo<U> other;
};
template <class U>
void mfoo(const U&);
};
template <class T>
template <class U>
void foo<T>::mfoo(const U&)
{
}
template <class T>
void test_proc(T i)
{
foo<double> f1;
typedef foo<T> ifoo;
f1.mfoo(i);
//f1.template mfoo<T>(i);
typedef typename ifoo::BOOST_NESTED_TEMPLATE nested<double> bound_t;
typedef typename bound_t::other other;
other o;
}
int test()
{
test_proc(0);
return 0;
}
}

View File

@@ -0,0 +1,80 @@
// (C) Copyright David Abrahams 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.
// (C) Copyright Jeremy Siek 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.
// (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_OPERATORS_IN_NAMESPACE
// TITLE: friend operators in namespace
// DESCRIPTION: 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.
namespace boost{
//
// the following is taken right out of <boost/operators.hpp>
//
template <class T>
struct addable1
{
friend T operator+(T x, const T& y) { return x += y; }
friend bool operator != (const T& a, const T& b) { return !(a == b); }
};
struct spoiler1
{};
spoiler1 operator+(const spoiler1&,const spoiler1&);
bool operator !=(const spoiler1&, const spoiler1&);
} // namespace boost
namespace boost_no_operators_in_namespace{
struct spoiler2
{};
spoiler2 operator+(const spoiler2&,const spoiler2&);
bool operator !=(const spoiler2&, const spoiler2&);
class add : public boost::addable1<add>
{
int val;
public:
add(int i) { val = i; }
add(const add& a){ val = a.val; }
add& operator+=(const add& a) { val += a.val; return *this; }
bool operator==(const add& a)const { return val == a.val; }
};
int test()
{
add a1(2);
add a2(3);
add a3(0);
a3 = a1 + a2;
bool b1 = (a1 == a2);
b1 = (a1 != a2);
(void)b1;
return 0;
}
}

View File

@@ -0,0 +1,53 @@
// (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_TEMPLATE_PARTIAL_SPECIALIZATION
// TITLE: partial specialisation
// DESCRIPTION: Class template partial specialization
// (14.5.4 [temp.class.spec]) not supported.
namespace boost_no_template_partial_specialization{
template <class T>
struct partial1
{
typedef T& type;
};
template <class T>
struct partial1<T&>
{
typedef T& type;
};
template <class T, bool b>
struct partial2
{
typedef T& type;
};
template <class T>
struct partial2<T,true>
{
typedef T type;
};
int test()
{
int i = 0;
partial1<int&>::type p1 = i;
partial2<int&,true>::type p2 = i;
(void)p1;
(void)p2;
(void)i;
return 0;
}
}

View File

@@ -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_PRIVATE_IN_AGGREGATE
// TITLE: private in aggregate types
// DESCRIPTION: The compiler misreads 8.5.1, treating classes
// as non-aggregate if they contain private or
// protected member functions.
namespace boost_no_private_in_aggregate{
struct t
{
private:
void foo(){ i = j; }
public:
int i;
int j;
};
int test()
{
t inst = { 0, 0, };
return 0;
}
}

View File

@@ -0,0 +1,91 @@
// Copyright (c) 2000
// Cadenza New Zealand Ltd
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without
// fee, provided that the above copyright notice appears in all copies
// and that both the copyright notice and this permission notice
// appear in supporting documentation. Cadenza New Zealand Ltd makes
// no representations about the suitability of this software for any
// purpose. It is provided "as is" without express or implied
// warranty.
// (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_POINTER_TO_MEMBER_CONST
// TITLE: pointers to const member functions
// DESCRIPTION: 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.
#include <functional>
namespace boost_no_pointer_to_member_const{
template <class S, class T>
class const_mem_fun_t : public std::unary_function<const T*, S>
{
public:
explicit const_mem_fun_t(S (T::*p)() const)
:
ptr(p)
{}
S operator()(const T* p) const
{
return (p->*ptr)();
}
private:
S (T::*ptr)() const;
};
template <class S, class T, class A>
class const_mem_fun1_t : public std::binary_function<const T*, A, S>
{
public:
explicit const_mem_fun1_t(S (T::*p)(A) const)
:
ptr(p)
{}
S operator()(const T* p, const A& x) const
{
return (p->*ptr)(x);
}
private:
S (T::*ptr)(A) const;
};
template<class S, class T>
inline const_mem_fun_t<S,T> mem_fun(S (T::*f)() const)
{
return const_mem_fun_t<S,T>(f);
}
template<class S, class T, class A>
inline const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const)
{
return const_mem_fun1_t<S,T,A>(f);
}
class tester
{
public:
void foo1()const{}
int foo2(int i)const{ return i*2; }
};
int test()
{
mem_fun(&tester::foo1);
mem_fun(&tester::foo2);
return 0;
}
}

26
test/boost_no_sstream.ipp Normal file
View File

@@ -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_NO_STRINGSTREAM
// TITLE: <sstream>
// DESCRIPTION: The C++ implementation does not provide the <sstream> header.
#include <sstream>
#include <string>
namespace boost_no_stringstream{
int test()
{
std::stringstream ss;
ss << "abc";
std::string s = ss.str();
return (s != "abc");
}
}

View File

@@ -0,0 +1,66 @@
// (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_STD_ALLOCATOR
// TITLE: std::allocator
// DESCRIPTION: The C++ standard library does not provide
// a standards conforming std::allocator.
#ifndef BOOST_NESTED_TEMPLATE
#define BOOST_NESTED_TEMPLATE template
#endif
#include <memory>
namespace boost_no_std_allocator{
template <class T>
int foo(const T& i)
{
typedef std::allocator<int> alloc1_t;
typedef typename alloc1_t::size_type size_type;
typedef typename alloc1_t::difference_type difference_type;
typedef typename alloc1_t::pointer pointer;
typedef typename alloc1_t::const_pointer const_pointer;
typedef typename alloc1_t::reference reference;
typedef typename alloc1_t::const_reference const_reference;
typedef typename alloc1_t::value_type value_type;
typedef typename alloc1_t::BOOST_NESTED_TEMPLATE rebind<double> binder_t;
typedef typename binder_t::other alloc2_t;
alloc1_t a1;
alloc1_t a2(a1);
pointer p = a1.allocate(1,0);
const_pointer cp = p;
a1.construct(p,i);
size_type s = a1.max_size();
(void)s;
reference r = *p;
const_reference cr = *cp;
if(p != a1.address(r)) return -1;
if(cp != a1.address(cr)) return -1;
a1.destroy(p);
a1.deallocate(p,1);
alloc2_t a3(a1);
// this chokes early versions of the MSL library
// and isn't currently required by anything in boost
// so don't test for now...
// a3 = a2;
return 0;
}
int test()
{
return foo(0);
}
}

View File

@@ -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_NO_STD_DISTANCE
// TITLE: std::distance
// DESCRIPTION: The platform does not have a conforming version of std::distance.
#include <algorithm>
#include <iterator>
namespace boost_no_std_distance{
int test()
{
const char* begin = 0;
const char* end = 0;
if(std::distance(begin, end)) return -1;
return 0;
}
}

View File

@@ -0,0 +1,76 @@
// (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_STD_ITERATOR_TRAITS
// TITLE: std::iterator_traits
// DESCRIPTION: The compiler does not provide a standard
// compliant implementation of std::iterator_traits.
// Note that the compiler may still have a non-standard
// implementation.
#include <iterator>
namespace boost_no_std_iterator_traits{
struct UDT_iterator
{
typedef int value_type;
typedef std::ptrdiff_t difference_type;
typedef int* pointer;
typedef int& reference;
typedef std::input_iterator_tag iterator_category;
};
struct UDT{};
int test()
{
std::iterator_traits<UDT_iterator>::value_type v = 0;
std::iterator_traits<UDT_iterator>::difference_type d = 0;
std::iterator_traits<UDT_iterator>::pointer p = &v;
std::iterator_traits<UDT_iterator>::reference r = v;
std::iterator_traits<UDT_iterator>::iterator_category cat;
std::iterator_traits<UDT*>::value_type v2;
std::iterator_traits<UDT*>::difference_type d2 = 0;
std::iterator_traits<UDT*>::pointer p2 = &v2;
std::iterator_traits<UDT*>::reference r2 = v2;
std::iterator_traits<UDT*>::iterator_category cat2;
std::iterator_traits<const UDT*>::value_type v3;
std::iterator_traits<const UDT*>::difference_type d3 = 0;
std::iterator_traits<const UDT*>::pointer p3 = &v3;
std::iterator_traits<const UDT*>::reference r3 = v3;
std::iterator_traits<const UDT*>::iterator_category cat3;
//
// suppress some warnings:
//
(void)v;
(void)d;
(void)p;
(void)r;
(void)cat;
(void)v2;
(void)d2;
(void)p2;
(void)r2;
(void)cat2;
(void)v3;
(void)d3;
(void)p3;
(void)r3;
(void)cat3;
return 0;
}
}

View File

@@ -0,0 +1,64 @@
// (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_STD_ITERATOR
// TITLE: std::iterator
// DESCRIPTION: The C++ implementation fails to provide the
// std::iterator class.
#include <iterator>
#include <stddef.h>
namespace boost_no_std_iterator{
int test()
{
typedef std::iterator<
std::random_access_iterator_tag,
int,
ptrdiff_t,
int*,
int&
> iterator_type;
iterator_type::value_type v = 0;
iterator_type::difference_type d = 0;
iterator_type::pointer p = &v;
iterator_type::reference r = v;
iterator_type::iterator_category cat;
typedef std::iterator<
std::random_access_iterator_tag,
int
> iterator_type_2;
iterator_type_2::value_type v2 = 0;
iterator_type_2::difference_type d2 = 0;
iterator_type_2::pointer p2 = &v2;
iterator_type_2::reference r2 = v2;
iterator_type_2::iterator_category cat2;
//
// suppress some warnings:
//
(void)v;
(void)d;
(void)p;
(void)r;
(void)cat;
(void)v2;
(void)d2;
(void)p2;
(void)r2;
(void)cat2;
return 0;
}
}

View File

@@ -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_STD_LOCALE
// TITLE: std::locale
// DESCRIPTION: The standard library lacks std::locale.
#include <locale>
namespace boost_no_std_locale{
int test()
{
std::locale l1;
//
// ideally we would construct a locale from a facet,
// but that requires template member functions which
// may not be available, instead just check that we can
// construct a pointer to a facet:
//
const std::ctype<char>* pct = 0;
(void)l1;
(void)pct;
return 0;
}
}

View File

@@ -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_NO_STD_MESSAGES
// TITLE: std::messages<charT>
// DESCRIPTION: The standard library lacks a conforming std::messages facet.
#include <locale>
namespace boost_no_std_messages{
int test()
{
const std::messages<char>* pmf = 0;
(void)pmf;
return 0;
}
}

View File

@@ -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_STD_MIN_MAX
// TITLE: std::min and std::max
// DESCRIPTION: The C++ standard library does not provide
// the min() and max() template functions that
// should be in <algorithm>.
#include <algorithm>
namespace boost_no_std_min_max{
int test()
{
int i = 0;
int j = 2;
if(std::min(i,j) != 0) return -1;
if(std::max(i,j) != 2) return -1;
return 0;
}
}

View File

@@ -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_NO_STD_OUTPUT_ITERATOR_ASSIGN
// TITLE: That the std output iterators are assignable
// DESCRIPTION: Some std lib output iterators are not assignable
// even this is required by the standard.
#include <iterator>
#include <list>
#include <iostream>
namespace boost_no_std_output_iterator_assign {
int test()
{
std::list<int> l;
std::back_insert_iterator<std::list<int> > bi1(l);
std::back_insert_iterator<std::list<int> > bi2(l);
bi1 = bi2;
std::front_insert_iterator<std::list<int> > fi1(l);
std::front_insert_iterator<std::list<int> > fi2(l);
fi1 = fi2;
std::ostream_iterator<char> osi1(std::cout);
std::ostream_iterator<char> osi2(std::cout);
osi1 = osi2;
return 0;
}
}

View File

@@ -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_NO_STD_USE_FACET
// TITLE: std::use_facet
// DESCRIPTION: The standard library lacks a conforming std::use_facet.
#include <locale>
namespace boost_no_std_use_facet{
int test()
{
std::locale l;
const std::ctype<char>& ct = std::use_facet<std::ctype<char> >(l);
(void)ct;
return 0;
}
}

View File

@@ -0,0 +1,25 @@
// (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_STD_WSTRING
// TITLE: std::wstring
// DESCRIPTION: The standard library lacks std::wstring.
#include <string>
namespace boost_no_std_wstring{
int test()
{
std::wstring s;
if(*s.c_str() || (s.begin() != s.end()) || s.size() || (sizeof(std::wstring::value_type) != sizeof(wchar_t))) return -1;
return 0;
}
}

View File

@@ -0,0 +1,41 @@
// (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_STDC_NAMESPACE
// TITLE: std:: namespace for C API's
// DESCRIPTION: 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...
#include <cstring>
#include <cctype>
#include <ctime>
#undef isspace
#undef isalpha
#undef ispunct
namespace boost_no_stdc_namespace{
int test()
{
char c = 0;
std::isspace(c);
std::isalpha(c);
std::ispunct(c);
std::strlen(&c);
std::clock();
return 0;
}
}

View File

@@ -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_NO_SWPRINTF
// TITLE: swprintf
// DESCRIPTION: The platform does not have a conforming version of swprintf.
#include <wchar.h>
#include <stdio.h>
namespace boost_no_swprintf{
int test()
{
wchar_t buf[10];
swprintf(buf, 10, L"%d", 10);
return 0;
}
}

View File

@@ -0,0 +1,43 @@
// (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_USING_TEMPLATE
// TITLE: using template declarations
// DESCRIPTION: The compiler will not accept a using declaration
// that imports a template from the global namespace
// into a named namespace. Probably Borland specific.
template <class T>
int global_foo(T)
{
return 0;
}
template <class T, class U = void>
struct op
{
friend op<T,U> operator +(const op&, const op&)
{
return op();
};
};
namespace boost_no_using_template{
using ::global_foo;
using ::op;
int test()
{
boost_no_using_template::op<int, int> a;
boost_no_using_template::op<int, int> b;
a+b;
return boost_no_using_template::global_foo(0);
}
}

40
test/boost_no_wchar_t.ipp Normal file
View File

@@ -0,0 +1,40 @@
// (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_INTRINSIC_WCHAR_T
// TITLE: intrinsic wchar_t
// DESCRIPTION: 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.
#include <wchar.h>
namespace boost_no_intrinsic_wchar_t{
template <class T>
struct is_int{};
template <> struct is_int<unsigned char>{};
template <> struct is_int<signed char>{};
template <> struct is_int<char>{};
template <> struct is_int<unsigned short>{};
template <> struct is_int<short>{};
template <> struct is_int<unsigned int>{};
template <> struct is_int<int>{};
template <> struct is_int<unsigned long>{};
template <> struct is_int<long>{};
template <> struct is_int<wchar_t>{};
int test()
{
return 0;
}
}

862
test/config_info.cpp Normal file
View File

@@ -0,0 +1,862 @@
// 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 <boost/config.hpp>
#include <boost/version.hpp>
#include <iostream>
#include <iomanip>
#include <string.h>
#include <limits.h>
#ifdef BOOST_HAS_UNISTD_H
#include <unistd.h>
#endif
unsigned int indent = 4;
unsigned int width = 40;
using std::cout;
using std::istream;
void print_macro(const char* name, const char* value)
{
// if name == value+1 then then macro is not defined,
// in which case we don't print anything:
if(0 != strcmp(name, value+1))
{
for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
std::cout << std::setw(width);
cout.setf(istream::left, istream::adjustfield);
std::cout << name;
if(value[1])
{
// macro has a value:
std::cout << value << "\n";
}
else
{
// macro is defined but has no value:
std::cout << " [no value]\n";
}
}
}
#define PRINT_MACRO(X) print_macro(#X, BOOST_STRINGIZE(=X))
template <class T>
void print_expression(const char* expression, T val)
{
for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
std::cout << std::setw(width);
std::cout.setf(istream::left, istream::adjustfield);
std::cout << expression << "=" << val << std::endl;
}
#define PRINT_EXPRESSION(E) print_expression(#E, E);
template <class T>
void print_byte_order(const char* what, T t)
{
T val = 0;
unsigned i;
for(i = 1; i < sizeof(T); ++i)
{
val |= (CHAR_BIT * i) << (CHAR_BIT * i);
}
const char* p = reinterpret_cast<const char*>(&val);
for(i = 0; i < indent; ++i) std::cout.put(' ');
std::cout << std::setw(width);
std::cout.setf(istream::left, istream::adjustfield);
std::cout << what << "=";
for(i = 0; i < sizeof(T); ++i)
{
std::cout << (int)p[i] << " ";
}
std::cout << std::endl;
}
#define PRINT_ORDER(T) print_byte_order(BOOST_STRINGIZE(byte order for type T), T())
template <class T>
void print_sign(const char* what, T t)
{
t = -1;
for(unsigned i = 0; i < indent; ++i) std::cout.put(' ');
std::cout << "Type " << what << " is " << ((t < 0) ? "signed" : "unsigned") << std::endl;
}
#define PRINT_SIGN(T) print_sign(#T, T())
void print_compiler_macros()
{
std::cout << BOOST_COMPILER << "\n";
// Borland options:
PRINT_MACRO(__BORLANDC__);
PRINT_MACRO(__CDECL__);
PRINT_MACRO(_CHAR_UNSIGNED);
PRINT_MACRO(__CODEGUARD__);
PRINT_MACRO(__CONSOLE__);
PRINT_MACRO(_CPPUNWIND);
PRINT_MACRO(__cplusplus);
PRINT_MACRO(__FLAT__);
PRINT_MACRO(__FUNC__);
PRINT_MACRO(_M_IX86);
PRINT_MACRO(__MSDOS__);
PRINT_MACRO(__MT__ );
PRINT_MACRO(__PASCAL__);
PRINT_MACRO(__STDC__);
PRINT_MACRO(__TLS__);
PRINT_MACRO(_WCHAR_T);
PRINT_MACRO(_WCHAR_T_DEFINED);
PRINT_MACRO(_Windows);
PRINT_MACRO(__WIN32__);
PRINT_MACRO(_WIN32);
PRINT_MACRO(WIN32);
PRINT_MACRO(_RTLDLL);
PRINT_MACRO(__DEBUG);
// MSVC macros:
PRINT_MACRO(_CPPRTTI);
PRINT_MACRO(_DLL);
PRINT_MACRO(_M_ALPHA);
PRINT_MACRO(_M_MPPC);
PRINT_MACRO(_M_MRX000);
PRINT_MACRO(_M_PPC);
PRINT_MACRO(_MFC_VER);
PRINT_MACRO(_MSC_EXTENSIONS);
PRINT_MACRO(_MSC_VER);
PRINT_MACRO(_MT);
// GNUC options:
PRINT_MACRO(__GNUC__);
PRINT_MACRO(__GNUC_MINOR__);
PRINT_MACRO(__STDC_VERSION__);
PRINT_MACRO(__GNUG__);
PRINT_MACRO(__STRICT_ANSI__);
PRINT_MACRO(__VERSION__);
PRINT_MACRO(__OPTIMIZE__);
PRINT_MACRO(__CHAR_UNSIGNED__);
PRINT_MACRO(__REGISTER_PREFIX__);
PRINT_MACRO(__USER_LABEL_PREFIX__);
PRINT_MACRO(__INTEL__);
PRINT_MACRO(__GNUPRO__);
PRINT_MACRO(__EXCEPTIONS);
PRINT_MACRO(__FreeBSD__);
PRINT_MACRO(__FreeBSD_cc_version);
PRINT_MACRO(__ELF__);
PRINT_MACRO(__GNUPRO__);
PRINT_MACRO(unix);
PRINT_MACRO(bsd);
PRINT_MACRO(vax);
PRINT_MACRO(mc68000);
PRINT_MACRO(m68k);
PRINT_MACRO(M68020);
PRINT_MACRO(_AM29K);
PRINT_MACRO(ns32000);
PRINT_MACRO(sun);
PRINT_MACRO(pyr);
PRINT_MACRO(sequent);
PRINT_MACRO(__i386__);
PRINT_MACRO(__sparc);
PRINT_MACRO(__sparc__);
PRINT_MACRO(__powerpc__);
PRINT_MACRO(__hppa);
// HP aCC:
PRINT_MACRO(__HP_aCC);
PRINT_MACRO(__LP64__);
PRINT_MACRO(__RISC2_0__);
PRINT_MACRO(__STDCPP__);
PRINT_MACRO(__hppa);
PRINT_MACRO(__hpux);
PRINT_MACRO(__hp9000s800);
PRINT_MACRO(__hp9000s700);
PRINT_MACRO(_PA_RISC1_1);
PRINT_MACRO(__HPUX_SOURCE);
// SGI IRIX:
PRINT_MACRO(__sgi);
PRINT_MACRO(_COMPILER_VERSION);
PRINT_MACRO(__EDG_ABI_COMPATIBILITY_VERSION);
PRINT_MACRO(_BOOL);
PRINT_MACRO(_WCHAR_T);
// Sunpro:
PRINT_MACRO(__SUNPRO_CC);
PRINT_MACRO(__SUNPRO_CC_COMPAT);
PRINT_MACRO(__BUILTIN_VA_ARG_INCR);
PRINT_MACRO(__sun);
PRINT_MACRO(__SVR4);
PRINT_MACRO(__unix);
PRINT_MACRO(__sparcv9);
PRINT_MACRO(__i386);
PRINT_MACRO(i386);
// Metrowerks
PRINT_MACRO(__MWERKS__);
PRINT_MACRO(__MSL__);
PRINT_MACRO(__MSL_CPP__);
PRINT_MACRO(__A5__);
PRINT_MACRO(__embedded_cplusplus);
PRINT_MACRO(__fourbyteints__);
PRINT_MACRO(__IEEEdoubles__);
PRINT_MACRO(__MC68K__);
PRINT_MACRO(__MC68020__);
PRINT_MACRO(__MC68881__);
PRINT_MACRO(__MIPS__);
PRINT_MACRO(__MIPS_ISA2__);
PRINT_MACRO(__MIPS_ISA3__);
PRINT_MACRO(__MIPS_ISA4__);
PRINT_MACRO(__MWBROWSER__);
PRINT_MACRO(__profile__);
PRINT_MACRO(__powerc);
PRINT_MACRO(_powerc);
PRINT_MACRO(__POWERPC__);
PRINT_MACRO(macintosh);
PRINT_MACRO(__MACH__);
PRINT_MACRO(__APPLE__);
PRINT_MACRO(__APPLE_CC__);
// MPW (MrCpp and SCpp)
PRINT_MACRO(__MRC__);
PRINT_MACRO(__SC__);
PRINT_MACRO(__FPCE__);
PRINT_MACRO(__FPCE_IEEE__);
PRINT_MACRO(MPW_CPLUS);
PRINT_MACRO(MPW_C);
PRINT_MACRO(__MC601);
PRINT_MACRO(__POWERPC);
PRINT_MACRO(__useAppleExts__);
PRINT_MACRO(powerc);
PRINT_MACRO(MC68000);
PRINT_MACRO(THINK_PLUS);
PRINT_MACRO(mc68881);
PRINT_MACRO(__FAR_CODE__);
PRINT_MACRO(__FAR_DATA__);
PRINT_MACRO(__CFM68K__);
// misc compilers not covered so far:
PRINT_MACRO(__EDG_VERSION__);
PRINT_MACRO(__ICC);
PRINT_MACRO(__ICL);
PRINT_MACRO(__INTEL_COMPILER);
PRINT_MACRO(__USLC__);
PRINT_MACRO(__DECCXX);
PRINT_MACRO(__IBMCPP__);
PRINT_MACRO(_REENTRANT);
PRINT_MACRO(_PTHREADS);
PRINT_MACRO(__STDC_HOSTED__);
}
void print_stdlib_macros()
{
std::cout << BOOST_STDLIB << std::endl;
#ifdef _RWSTD_VER
// Rogue Wave 2.x config options:
PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
PRINT_MACRO(_RWSTD_BAD_ALLOC_DEFINED);
PRINT_MACRO(_RWSTD_BAD_EXCEPTION_DEFINED);
PRINT_MACRO(_RWSTD_BOUNDS_CHECKING);
PRINT_MACRO(_RWSTD_COMPILE_INSTANTIATE);
PRINT_MACRO(_RWSTD_DEFAULT_PRECISION);
PRINT_MACRO(_RWSTD_EXCEPTION_DEFINED);
PRINT_MACRO(_RWSTD_EXCEPTION_HANDLER_IN_STD);
PRINT_MACRO(_RWSTD_EXCEPTION_PREDEFINED);
PRINT_MACRO(_RWSTD_FLT_ROUNDS_IS_CONSTANT);
PRINT_MACRO(_RWSTD_LOCALIZED_ERRORS);
PRINT_MACRO(_RWSTD_MESSAGE);
PRINT_MACRO(_RWSTD_MUTEXATTR_DEFAULT);
PRINT_MACRO(_RWSTD_NO_ANSI_SPRINTF);
PRINT_MACRO(_RWSTD_NO_ARG_MATCH);
PRINT_MACRO(_RWSTD_NO_BAD_CAST);
PRINT_MACRO(_RWSTD_NO_BASE_CLASS_MATCH);
PRINT_MACRO(_RWSTD_NO_BOOL);
PRINT_MACRO(_RWSTD_NO_BUILTIN_CTOR);
PRINT_MACRO(_RWSTD_NO_CATOPEN_CATGETS);
PRINT_MACRO(_RWSTD_NO_CLASS_PARTIAL_SPEC);
PRINT_MACRO(_RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
PRINT_MACRO(_RWSTD_NO_COMPLICATED_EXCEPTIONS);
PRINT_MACRO(_RWSTD_NO_COMPLICATED_TYPEDEF);
PRINT_MACRO(_RWSTD_NO_CONST_INST);
PRINT_MACRO(_RWSTD_NO_CTOR_RETURN);
PRINT_MACRO(_RWSTD_NO_DEFAULT_FOR_TPARAM);
PRINT_MACRO(_RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
PRINT_MACRO(_RWSTD_NO_DESTROY_BUILTIN);
PRINT_MACRO(_RWSTD_NO_DESTROY_NONBUILTIN);
PRINT_MACRO(_RWSTD_NO_EMBEDDED_TYPEDEF);
PRINT_MACRO(_RWSTD_NO_EX_SPEC);
PRINT_MACRO(_RWSTD_NO_EXCEPTIONS);
PRINT_MACRO(_RWSTD_NO_EXPLICIT);
PRINT_MACRO(_RWSTD_NO_EXPLICIT_ARG);
PRINT_MACRO(_RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
PRINT_MACRO(_RWSTD_NO_EXPLICIT_INSTANTIATION);
PRINT_MACRO(_RWSTD_NO_EXTENSION);
PRINT_MACRO(_RWSTD_NO_FORWARD_SPECIALIZATIONS);
PRINT_MACRO(_RWSTD_NO_FPOS_T);
PRINT_MACRO(_RWSTD_NO_FRIEND_TEMPLATES);
PRINT_MACRO(_RWSTD_NO_FUNC_PARTIAL_SPEC);
PRINT_MACRO(_RWSTD_NO_GETTIMEOFDAY);
PRINT_MACRO(_RWSTD_NO_GLOBAL_TZ);
PRINT_MACRO(_RWSTD_NO_INHERITED_TYPEDEFS);
PRINT_MACRO(_RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
PRINT_MACRO(_RWSTD_NO_INT_TYPEDEF);
PRINT_MACRO(_RWSTD_NO_LDIV);
PRINT_MACRO(_RWSTD_NO_LEADING_UNDERSCORE);
PRINT_MACRO(_RWSTD_NO_LOCALE);
PRINT_MACRO(_RWSTD_NO_LONG_NAME);
PRINT_MACRO(_RWSTD_NO_LONGDOUBLE);
PRINT_MACRO(_RWSTD_NO_MBSTATE_T);
PRINT_MACRO(_RWSTD_NO_MEM_CLASS_TEMPLATES);
PRINT_MACRO(_RWSTD_NO_MEMBER_TEMPLATES);
PRINT_MACRO(_RWSTD_NO_MEMBER_TYPE_TPARAM);
PRINT_MACRO(_RWSTD_NO_MEMBER_WO_DEF_CTOR);
PRINT_MACRO(_RWSTD_NO_MEMMOVE);
PRINT_MACRO(_RWSTD_NO_MULTI_DIM_ARRAY);
PRINT_MACRO(_RWSTD_NO_MUTABLE);
PRINT_MACRO(_RWSTD_NO_NAME_INJECTION);
PRINT_MACRO(_RWSTD_NO_NAMESPACE);
PRINT_MACRO(_RWSTD_NO_NESTING_TEMPLATES);
PRINT_MACRO(_RWSTD_NO_NEW_BRACKETS);
PRINT_MACRO(_RWSTD_NO_NEW_DECL);
PRINT_MACRO(_RWSTD_NO_NEW_HEADER);
PRINT_MACRO(_RWSTD_NO_NEW_TEMPLATE_SYNTAX);
PRINT_MACRO(_RWSTD_NO_NONCLASS_ARROW_RETURN);
PRINT_MACRO(_RWSTD_NO_NONTYPE_ARGS);
PRINT_MACRO(_RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
PRINT_MACRO(_RWSTD_NO_OVERLOAD_C_POW);
PRINT_MACRO(_RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
PRINT_MACRO(_RWSTD_NO_OVERLOAD_WCHAR);
PRINT_MACRO(_RWSTD_NO_PART_SPEC_OVERLOAD);
PRINT_MACRO(_RWSTD_NO_RET_TEMPLATE);
PRINT_MACRO(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
PRINT_MACRO(_RWSTD_NO_STATIC_CAST);
PRINT_MACRO(_RWSTD_NO_STATIC_DEF);
PRINT_MACRO(_RWSTD_NO_STATIC_DEF2);
PRINT_MACRO(_RWSTD_NO_STATIC_DEF3);
PRINT_MACRO(_RWSTD_NO_STATIC_MEM_DEF);
PRINT_MACRO(_RWSTD_NO_STI_SIMPLE);
PRINT_MACRO(_RWSTD_NO_STI_TEMPLATE);
PRINT_MACRO(_RWSTD_NO_STREAM_LONG_DOUBLE);
PRINT_MACRO(_RWSTD_NO_STRFTIME_CAPC);
PRINT_MACRO(_RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
PRINT_MACRO(_RWSTD_NO_SWPRINTF);
PRINT_MACRO(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
PRINT_MACRO(_RWSTD_NO_TEMPLATE_TEMPLATE);
PRINT_MACRO(_RWSTD_NO_THREADS);
PRINT_MACRO(_RWSTD_NO_THROW_SPEC_ON_NEW);
PRINT_MACRO(_RWSTD_NO_THROW_WITH_SHARED);
PRINT_MACRO(_RWSTD_NO_TYPEDEF_INST);
PRINT_MACRO(_RWSTD_NO_TYPEDEF_OVERLOAD);
PRINT_MACRO(_RWSTD_NO_TYPENAME);
PRINT_MACRO(_RWSTD_NO_UNDEFINED_FRIEND);
PRINT_MACRO(_RWSTD_NO_UNINITIALIZED_STATIC_DEF);
PRINT_MACRO(_RWSTD_NO_WCHAR_H);
PRINT_MACRO(_RWSTD_NO_WCTYPE_H);
PRINT_MACRO(_RWSTD_NO_WIDE_CHAR);
PRINT_MACRO(_RWSTD_NO_WINT_TYPE);
PRINT_MACRO(_RWSTD_NO_WSTR);
PRINT_MACRO(_RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
PRINT_MACRO(_RWSTD_POSIX_D10_THREADS);
PRINT_MACRO(_RWSTD_POSIX_THREADS);
PRINT_MACRO(_RWSTD_REQUIRES_IEEEFP);
PRINT_MACRO(_RWSTD_SOLARIS_THREADS);
PRINT_MACRO(_RWSTD_STRUCT_TM_TZ);
PRINT_MACRO(_RWSTD_WIDE_STRING_NULL_PROBLEM);
#elif defined(__STD_RWCOMPILER_H__)
// Rogue Wave 1.x std lib:
PRINT_MACRO(__NO_EDG_EXCEPTION_CLASSES);
PRINT_MACRO(RWSTD_BAD_ALLOC_DEFINED);
PRINT_MACRO(RWSTD_BAD_EXCEPTION_DEFINED);
PRINT_MACRO(RWSTD_BOUNDS_CHECKING);
PRINT_MACRO(RWSTD_COMPILE_INSTANTIATE);
PRINT_MACRO(RWSTD_DEFAULT_PRECISION);
PRINT_MACRO(RWSTD_EXCEPTION_DEFINED);
PRINT_MACRO(RWSTD_EXCEPTION_HANDLER_IN_STD);
PRINT_MACRO(RWSTD_EXCEPTION_PREDEFINED);
PRINT_MACRO(RWSTD_FLT_ROUNDS_IS_CONSTANT);
PRINT_MACRO(RWSTD_LOCALIZED_ERRORS);
PRINT_MACRO(RWSTD_MESSAGE);
PRINT_MACRO(RWSTD_MUTEXATTR_DEFAULT);
PRINT_MACRO(RWSTD_NO_ANSI_SPRINTF);
PRINT_MACRO(RWSTD_NO_ARG_MATCH);
PRINT_MACRO(RWSTD_NO_BAD_CAST);
PRINT_MACRO(RWSTD_NO_BASE_CLASS_MATCH);
PRINT_MACRO(RWSTD_NO_BOOL);
PRINT_MACRO(RWSTD_NO_BUILTIN_CTOR);
PRINT_MACRO(RWSTD_NO_CATOPEN_CATGETS);
PRINT_MACRO(RWSTD_NO_CLASS_PARTIAL_SPEC);
PRINT_MACRO(RWSTD_NO_COMPLEX_DEFAULT_TEMPLATES);
PRINT_MACRO(RWSTD_NO_COMPLICATED_EXCEPTIONS);
PRINT_MACRO(RWSTD_NO_COMPLICATED_TYPEDEF);
PRINT_MACRO(RWSTD_NO_CONST_INST);
PRINT_MACRO(RWSTD_NO_CTOR_RETURN);
PRINT_MACRO(RWSTD_NO_DEFAULT_FOR_TPARAM);
PRINT_MACRO(RWSTD_NO_DEFAULT_TEMPLATE_ARGS);
PRINT_MACRO(RWSTD_NO_DESTROY_BUILTIN);
PRINT_MACRO(RWSTD_NO_DESTROY_NONBUILTIN);
PRINT_MACRO(RWSTD_NO_EMBEDDED_TYPEDEF);
PRINT_MACRO(RWSTD_NO_EX_SPEC);
PRINT_MACRO(RWSTD_NO_EXCEPTIONS);
PRINT_MACRO(RWSTD_NO_EXPLICIT);
PRINT_MACRO(RWSTD_NO_EXPLICIT_ARG);
PRINT_MACRO(RWSTD_NO_EXPLICIT_FUNC_INSTANTIATION);
PRINT_MACRO(RWSTD_NO_EXPLICIT_INSTANTIATION);
PRINT_MACRO(RWSTD_NO_EXTENSION);
PRINT_MACRO(RWSTD_NO_FORWARD_SPECIALIZATIONS);
PRINT_MACRO(RWSTD_NO_FPOS_T);
PRINT_MACRO(RWSTD_NO_FRIEND_TEMPLATES);
PRINT_MACRO(RWSTD_NO_FUNC_PARTIAL_SPEC);
PRINT_MACRO(RWSTD_NO_GETTIMEOFDAY);
PRINT_MACRO(RWSTD_NO_GLOBAL_TZ);
PRINT_MACRO(RWSTD_NO_INHERITED_TYPEDEFS);
PRINT_MACRO(RWSTD_NO_INIT_CONST_TEMPLATE_REF_ARG);
PRINT_MACRO(RWSTD_NO_INT_TYPEDEF);
PRINT_MACRO(RWSTD_NO_LDIV);
PRINT_MACRO(RWSTD_NO_LEADING_UNDERSCORE);
PRINT_MACRO(RWSTD_NO_LOCALE);
PRINT_MACRO(RWSTD_NO_LONG_NAME);
PRINT_MACRO(RWSTD_NO_LONGDOUBLE);
PRINT_MACRO(RWSTD_NO_MBSTATE_T);
PRINT_MACRO(RWSTD_NO_MEM_CLASS_TEMPLATES);
PRINT_MACRO(RWSTD_NO_MEMBER_TEMPLATES);
PRINT_MACRO(RWSTD_NO_MEMBER_TYPE_TPARAM);
PRINT_MACRO(RWSTD_NO_MEMBER_WO_DEF_CTOR);
PRINT_MACRO(RWSTD_NO_MEMMOVE);
PRINT_MACRO(RWSTD_NO_MULTI_DIM_ARRAY);
PRINT_MACRO(RWSTD_NO_MUTABLE);
PRINT_MACRO(RWSTD_NO_NAME_INJECTION);
PRINT_MACRO(RWSTD_NO_NAMESPACE);
PRINT_MACRO(RWSTD_NO_NESTING_TEMPLATES);
PRINT_MACRO(RWSTD_NO_NEW_BRACKETS);
PRINT_MACRO(RWSTD_NO_NEW_DECL);
PRINT_MACRO(RWSTD_NO_NEW_HEADER);
PRINT_MACRO(RWSTD_NO_NEW_TEMPLATE_SYNTAX);
PRINT_MACRO(RWSTD_NO_NONCLASS_ARROW_RETURN);
PRINT_MACRO(RWSTD_NO_NONTYPE_ARGS);
PRINT_MACRO(RWSTD_NO_ONLY_NEEDED_INSTANTIATION);
PRINT_MACRO(RWSTD_NO_OVERLOAD_C_POW);
PRINT_MACRO(RWSTD_NO_OVERLOAD_OF_TEMPLATE_FUNCTION);
PRINT_MACRO(RWSTD_NO_OVERLOAD_WCHAR);
PRINT_MACRO(RWSTD_NO_PART_SPEC_OVERLOAD);
PRINT_MACRO(RWSTD_NO_RET_TEMPLATE);
PRINT_MACRO(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES);
PRINT_MACRO(RWSTD_NO_STATIC_CAST);
PRINT_MACRO(RWSTD_NO_STATIC_DEF);
PRINT_MACRO(RWSTD_NO_STATIC_DEF2);
PRINT_MACRO(RWSTD_NO_STATIC_DEF3);
PRINT_MACRO(RWSTD_NO_STATIC_MEM_DEF);
PRINT_MACRO(RWSTD_NO_STI_SIMPLE);
PRINT_MACRO(RWSTD_NO_STI_TEMPLATE);
PRINT_MACRO(RWSTD_NO_STREAM_LONG_DOUBLE);
PRINT_MACRO(RWSTD_NO_STRFTIME_CAPC);
PRINT_MACRO(RWSTD_NO_STRICT_TEMPLATE_INSTANTIATE);
PRINT_MACRO(RWSTD_NO_SWPRINTF);
PRINT_MACRO(RWSTD_NO_TEMPLATE_ON_RETURN_TYPE);
PRINT_MACRO(RWSTD_NO_TEMPLATE_TEMPLATE);
PRINT_MACRO(RWSTD_NO_THREADS);
PRINT_MACRO(RWSTD_NO_THROW_SPEC_ON_NEW);
PRINT_MACRO(RWSTD_NO_THROW_WITH_SHARED);
PRINT_MACRO(RWSTD_NO_TYPEDEF_INST);
PRINT_MACRO(RWSTD_NO_TYPEDEF_OVERLOAD);
PRINT_MACRO(RWSTD_NO_TYPENAME);
PRINT_MACRO(RWSTD_NO_UNDEFINED_FRIEND);
PRINT_MACRO(RWSTD_NO_UNINITIALIZED_STATIC_DEF);
PRINT_MACRO(RWSTD_NO_WCHAR_H);
PRINT_MACRO(RWSTD_NO_WCTYPE_H);
PRINT_MACRO(RWSTD_NO_WIDE_CHAR);
PRINT_MACRO(RWSTD_NO_WINT_TYPE);
PRINT_MACRO(RWSTD_NO_WSTR);
PRINT_MACRO(RWSTD_NOT_ALL_WSTR_CFUNCTIONS);
PRINT_MACRO(RWSTD_POSIX_D10_THREADS);
PRINT_MACRO(RWSTD_POSIX_THREADS);
PRINT_MACRO(RWSTD_REQUIRES_IEEEFP);
PRINT_MACRO(RWSTD_SOLARIS_THREADS);
PRINT_MACRO(RWSTD_STRUCT_TM_TZ);
PRINT_MACRO(RWSTD_WIDE_STRING_NULL_PROBLEM);
#endif
// Dinkumware options:
PRINT_MACRO(_CPPLIB_VER);
PRINT_MACRO(_GLOBAL_USING);
PRINT_MACRO(_HAS_EXCEPTIONS);
PRINT_MACRO(_HAS_MEMBER_TEMPLATES_REBIND);
PRINT_MACRO(_HAS_TEMPLATE_PARTIAL_ORDERING);
// STLPort and generic SGI STL options:
PRINT_MACRO(__SGI_STL_NO_ARROW_OPERATOR);
PRINT_MACRO(__SGI_STL_OWN_IOSTREAMS);
PRINT_MACRO(__SGI_STL_PORT);
PRINT_MACRO(__STL_AUTOMATIC_TYPE_TRAITS);
PRINT_MACRO(__STL_BASE_MATCH_BUG);
PRINT_MACRO(__STL_BASE_TYPEDEF_BUG);
PRINT_MACRO(__STL_BASE_TYPEDEF_OUTSIDE_BUG);
PRINT_MACRO(__STL_BROKEN_USING_DIRECTIVE);
PRINT_MACRO(__STL_CONST_CONSTRUCTOR_BUG);
PRINT_MACRO(__STL_DEBUG);
PRINT_MACRO(__STL_DEBUG_ALLOC);
PRINT_MACRO(__STL_DEFAULT_CONSTRUCTOR_BUG);
PRINT_MACRO(__STL_DEFAULT_TYPE_PARAM);
PRINT_MACRO(__STL_DONT_REDEFINE_STD);
PRINT_MACRO(__STL_DONT_USE_BOOL_TYPEDEF);
PRINT_MACRO(__STL_HAS_NO_EXCEPTIONS);
PRINT_MACRO(__STL_HAS_NO_NAMESPACES);
PRINT_MACRO(__STL_HAS_NO_NEW_C_HEADERS);
PRINT_MACRO(__STL_HAS_NO_NEW_IOSTREAMS);
PRINT_MACRO(__STL_IMPORT_VENDOR_CSTD);
PRINT_MACRO(__STL_LIMITED_DEFAULT_TEMPLATES);
PRINT_MACRO(__STL_LINK_TIME_INSTANTIATION);
PRINT_MACRO(__STL_LONG_LONG);
PRINT_MACRO(__STL_LOOP_INLINE_PROBLEMS);
PRINT_MACRO(__STL_MEMBER_POINTER_PARAM_BUG);
PRINT_MACRO(__STL_NEED_EXPLICIT);
PRINT_MACRO(__STL_NEED_MUTABLE);
PRINT_MACRO(__STL_NEED_TYPENAME);
PRINT_MACRO(__STL_NESTED_TYPE_PARAM_BUG);
PRINT_MACRO(__STL_NO_BAD_ALLOC);
PRINT_MACRO(__STL_NO_BOOL);
PRINT_MACRO(__STL_NO_CLASS_PARTIAL_SPECIALIZATION);
PRINT_MACRO(__STL_NO_CSTD_FUNCTION_IMPORTS);
PRINT_MACRO(__STL_NO_DEFAULT_NON_TYPE_PARAM);
PRINT_MACRO(__STL_NO_EXCEPTION_HEADER);
PRINT_MACRO(__STL_NO_EXCEPTION_SPEC);
PRINT_MACRO(__STL_NO_EXCEPTIONS);
PRINT_MACRO(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
PRINT_MACRO(__STL_NO_FRIEND_TEMPLATES);
PRINT_MACRO(__STL_NO_FUNCTION_TMPL_PARTIAL_ORDER);
PRINT_MACRO(__STL_NO_IOSTREAMS);
PRINT_MACRO(__STL_NO_LONG_DOUBLE);
PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_CLASSES);
PRINT_MACRO(__STL_NO_MEMBER_TEMPLATE_KEYWORD);
PRINT_MACRO(__STL_NO_MEMBER_TEMPLATES);
PRINT_MACRO(__STL_NO_METHOD_SPECIALIZATION);
PRINT_MACRO(__STL_NO_NAMESPACES);
PRINT_MACRO(__STL_NO_NEW_IOSTREAMS);
PRINT_MACRO(__STL_NO_NEW_NEW_HEADER);
PRINT_MACRO(__STL_NO_NEW_STYLE_CASTS);
PRINT_MACRO(__STL_NO_PARTIAL_SPECIALIZATION_SYNTAX);
PRINT_MACRO(__STL_NO_QUALIFIED_FRIENDS);
PRINT_MACRO(__STL_NO_RELOPS_NAMESPACE);
PRINT_MACRO(__STL_NO_SGI_IOSTREAMS);
PRINT_MACRO(__STL_NO_STATIC_TEMPLATE_DATA);
PRINT_MACRO(__STL_NO_TEMPLATE_CONVERSIONS);
PRINT_MACRO(__STL_NO_WCHAR_T);
PRINT_MACRO(__STL_NON_TYPE_TMPL_PARAM_BUG);
PRINT_MACRO(__STL_NONTEMPL_BASE_MATCH_BUG);
PRINT_MACRO(__STL_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
PRINT_MACRO(__STL_RAND48);
PRINT_MACRO(__STL_STATIC_ARRAY_BUG);
PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
PRINT_MACRO(__STL_STATIC_CONST_INIT_BUG);
PRINT_MACRO(__STL_THROW_RETURN_BUG);
PRINT_MACRO(__STL_TRIVIAL_CONSTRUCTOR_BUG);
PRINT_MACRO(__STL_TRIVIAL_DESTRUCTOR_BUG);
PRINT_MACRO(__STL_UNINITIALIZABLE_PRIVATE);
PRINT_MACRO(__STL_USE_ABBREVS);
PRINT_MACRO(__STL_USE_DEFALLOC);
PRINT_MACRO(__STL_USE_MALLOC);
PRINT_MACRO(__STL_USE_NEW_C_HEADERS);
PRINT_MACRO(__STL_USE_NEW_IOSTREAMS);
PRINT_MACRO(__STL_USE_NEWALLOC);
PRINT_MACRO(__STL_USE_OWN_NAMESPACE);
PRINT_MACRO(__STL_USE_SGI_ALLOCATORS);
PRINT_MACRO(__STL_WCHAR_T_IS_USHORT);
PRINT_MACRO(__STL_WEAK_ATTRIBUTE);
PRINT_MACRO(__STL_YVALS_H);
PRINT_MACRO(_NOTHREADS);
PRINT_MACRO(_PTHREADS);
#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT > 0x0400)
PRINT_MACRO(_STLP_AUTOMATIC_TYPE_TRAITS);
PRINT_MACRO(_STLP_BASE_MATCH_BUG);
PRINT_MACRO(_STLP_BASE_TYPEDEF_BUG);
PRINT_MACRO(_STLP_BASE_TYPEDEF_OUTSIDE_BUG);
PRINT_MACRO(_STLP_BROKEN_USING_DIRECTIVE);
PRINT_MACRO(_STLP_CONST_CONSTRUCTOR_BUG);
PRINT_MACRO(_STLP_DEBUG);
PRINT_MACRO(_STLP_DEBUG_ALLOC);
PRINT_MACRO(_STLP_DEFAULT_CONSTRUCTOR_BUG);
PRINT_MACRO(_STLP_DEFAULT_TYPE_PARAM);
PRINT_MACRO(_STLP_DONT_REDEFINE_STD);
PRINT_MACRO(_STLP_DONT_USE_BOOL_TYPEDEF);
PRINT_MACRO(_STLP_HAS_NO_EXCEPTIONS);
PRINT_MACRO(_STLP_HAS_NO_NAMESPACES);
PRINT_MACRO(_STLP_HAS_NO_NEW_C_HEADERS);
PRINT_MACRO(_STLP_HAS_NO_NEW_IOSTREAMS);
PRINT_MACRO(_STLP_IMPORT_VENDOR_CSTD);
PRINT_MACRO(_STLP_LIMITED_DEFAULT_TEMPLATES);
PRINT_MACRO(_STLP_LINK_TIME_INSTANTIATION);
PRINT_MACRO(_STLP_LONG_LONG);
PRINT_MACRO(_STLP_LOOP_INLINE_PROBLEMS);
PRINT_MACRO(_STLP_MEMBER_POINTER_PARAM_BUG);
PRINT_MACRO(_STLP_NEED_EXPLICIT);
PRINT_MACRO(_STLP_NEED_MUTABLE);
PRINT_MACRO(_STLP_NEED_TYPENAME);
PRINT_MACRO(_STLP_NESTED_TYPE_PARAM_BUG);
PRINT_MACRO(_STLP_NO_ARROW_OPERATOR);
PRINT_MACRO(_STLP_NO_BAD_ALLOC);
PRINT_MACRO(_STLP_NO_BOOL);
PRINT_MACRO(_STLP_NO_CLASS_PARTIAL_SPECIALIZATION);
PRINT_MACRO(_STLP_NO_CSTD_FUNCTION_IMPORTS);
PRINT_MACRO(_STLP_NO_DEFAULT_NON_TYPE_PARAM);
PRINT_MACRO(_STLP_NO_EXCEPTION_HEADER);
PRINT_MACRO(_STLP_NO_EXCEPTION_SPEC);
PRINT_MACRO(_STLP_NO_EXCEPTIONS);
PRINT_MACRO(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS);
PRINT_MACRO(_STLP_NO_FRIEND_TEMPLATES);
PRINT_MACRO(_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER);
PRINT_MACRO(_STLP_NO_IOSTREAMS);
PRINT_MACRO(_STLP_NO_LONG_DOUBLE);
PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_CLASSES);
PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATE_KEYWORD);
PRINT_MACRO(_STLP_NO_MEMBER_TEMPLATES);
PRINT_MACRO(_STLP_NO_METHOD_SPECIALIZATION);
PRINT_MACRO(_STLP_NO_NAMESPACES);
PRINT_MACRO(_STLP_NO_NEW_IOSTREAMS);
PRINT_MACRO(_STLP_NO_NEW_NEW_HEADER);
PRINT_MACRO(_STLP_NO_NEW_STYLE_CASTS);
PRINT_MACRO(_STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX);
PRINT_MACRO(_STLP_NO_QUALIFIED_FRIENDS);
PRINT_MACRO(_STLP_NO_RELOPS_NAMESPACE);
PRINT_MACRO(_STLP_NO_SGI_IOSTREAMS);
PRINT_MACRO(_STLP_NO_STATIC_TEMPLATE_DATA);
PRINT_MACRO(_STLP_NO_TEMPLATE_CONVERSIONS);
PRINT_MACRO(_STLP_NO_WCHAR_T);
PRINT_MACRO(_STLP_NON_TYPE_TMPL_PARAM_BUG);
PRINT_MACRO(_STLP_NONTEMPL_BASE_MATCH_BUG);
PRINT_MACRO(_STLP_OWN_IOSTREAMS);
PRINT_MACRO(_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS);
PRINT_MACRO(_STLP_RAND48);
PRINT_MACRO(_STLP_STATIC_ARRAY_BUG);
PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
PRINT_MACRO(_STLP_STATIC_CONST_INIT_BUG);
PRINT_MACRO(_STLP_THROW_RETURN_BUG);
PRINT_MACRO(_STLP_TRIVIAL_CONSTRUCTOR_BUG);
PRINT_MACRO(_STLP_TRIVIAL_DESTRUCTOR_BUG);
PRINT_MACRO(_STLP_UNINITIALIZABLE_PRIVATE);
PRINT_MACRO(_STLP_USE_ABBREVS);
PRINT_MACRO(_STLP_USE_DEFALLOC);
PRINT_MACRO(_STLP_USE_MALLOC);
PRINT_MACRO(_STLP_USE_NEW_C_HEADERS);
PRINT_MACRO(_STLP_USE_NEWALLOC);
PRINT_MACRO(_STLP_USE_OWN_NAMESPACE);
PRINT_MACRO(_STLP_USE_SGI_ALLOCATORS);
PRINT_MACRO(_STLP_WCHAR_T_IS_USHORT);
PRINT_MACRO(_STLP_WEAK_ATTRIBUTE);
PRINT_MACRO(_STLP_YVALS_H);
#endif
PRINT_MACRO(__GLIBCPP__);
PRINT_MACRO(_GLIBCPP_USE_WCHAR_T);
PRINT_MACRO(_GLIBCPP_VERSION);
}
void print_platform_macros()
{
std::cout << "Detected Platform: " << BOOST_PLATFORM << std::endl;
// signedness:
PRINT_SIGN(char);
PRINT_SIGN(wchar_t);
// byte ordering:
PRINT_ORDER(short);
PRINT_ORDER(int);
PRINT_ORDER(long);
// sizes:
PRINT_EXPRESSION(sizeof(wchar_t));
PRINT_EXPRESSION(sizeof(short));
PRINT_EXPRESSION(sizeof(int));
PRINT_EXPRESSION(sizeof(long));
PRINT_EXPRESSION(sizeof(float));
PRINT_EXPRESSION(sizeof(double));
PRINT_EXPRESSION(sizeof(long double));
// limits:
PRINT_MACRO(CHAR_BIT);
PRINT_MACRO(CHAR_MAX);
PRINT_MACRO(WCHAR_MAX);
PRINT_MACRO(SHRT_MAX);
PRINT_MACRO(INT_MAX);
PRINT_MACRO(LONG_MAX);
PRINT_MACRO(LLONG_MAX);
PRINT_MACRO(LONG_LONG_MAX);
PRINT_MACRO(LONGLONG_MAX);
// general C99:
PRINT_MACRO(__STDC_IEC_559__);
PRINT_MACRO(__STDC_IEC_559_COMPLEX__);
PRINT_MACRO(__STDC_ISO_10646__);
// GNU:
PRINT_MACRO(__GLIBC__);
PRINT_MACRO(__GLIBC_MINOR__);
PRINT_MACRO(__GNU_LIBRARY__);
PRINT_MACRO(_BSD_SOURCE);
PRINT_MACRO(_FILE_OFFSET_BITS);
PRINT_MACRO(_GNU_SOURCE);
PRINT_MACRO(_ISOC99_SOURCE);
PRINT_MACRO(_ISOC9X_SOURCE);
PRINT_MACRO(_LARGEFILE_SOURCE);
PRINT_MACRO(_LARGEFILE64_SOURCE);
PRINT_MACRO(_SVID_SOURCE);
PRINT_MACRO(_THREAD_SAFE);
PRINT_MACRO(_XOPEN_SOURCE_EXTENDED);
PRINT_MACRO(XPG);
// POSIX:
PRINT_MACRO(_POSIX_ADVISORY_INFO);
PRINT_MACRO(_POSIX_ASYNCHRONOUS_IO);
PRINT_MACRO(_POSIX_BARRIERS);
PRINT_MACRO(_POSIX_C_SOURCE);
PRINT_MACRO(_POSIX_CHOWN_RESTRICTED);
PRINT_MACRO(_POSIX_CLOCK_SELECTION);
PRINT_MACRO(_POSIX_CPUTIME);
PRINT_MACRO(_POSIX_FSYNC);
PRINT_MACRO(_POSIX_JOB_CONTROL);
PRINT_MACRO(_POSIX_MAPPED_FILES);
PRINT_MACRO(_POSIX_MEMLOCK);
PRINT_MACRO(_POSIX_MEMLOCK_RANGE);
PRINT_MACRO(_POSIX_MEMORY_PROTECTION);
PRINT_MACRO(_POSIX_MESSAGE_PASSING);
PRINT_MACRO(_POSIX_MONOTONIC_CLOCK);
PRINT_MACRO(_POSIX_NO_TRUNC);
PRINT_MACRO(_POSIX_PRIORITIZED_IO);
PRINT_MACRO(_POSIX_PRIORITY_SCHEDULING);
PRINT_MACRO(_POSIX_RAW_SOCKETS);
PRINT_MACRO(_POSIX_READER_WRITER_LOCKS);
PRINT_MACRO(_POSIX_REALTIME_SIGNALS);
PRINT_MACRO(_POSIX_REGEXP);
PRINT_MACRO(_POSIX_SAVED_IDS);
PRINT_MACRO(_POSIX_SEMAPHORES);
PRINT_MACRO(_POSIX_SHARED_MEMORY_OBJECTS);
PRINT_MACRO(_POSIX_SHELL);
PRINT_MACRO(_POSIX_SOURCE);
PRINT_MACRO(_POSIX_SPAWN);
PRINT_MACRO(_POSIX_SPIN_LOCKS);
PRINT_MACRO(_POSIX_SPORADIC_SERVER);
PRINT_MACRO(_POSIX_SYNCHRONIZED_IO);
PRINT_MACRO(_POSIX_THREAD_ATTR_STACKADDR);
PRINT_MACRO(_POSIX_THREAD_ATTR_STACKSIZE);
PRINT_MACRO(_POSIX_THREAD_CPUTIME);
PRINT_MACRO(_POSIX_THREAD_PRIO_INHERIT);
PRINT_MACRO(_POSIX_THREAD_PRIO_PROTECT);
PRINT_MACRO(_POSIX_THREAD_PRIORITY_SCHEDULING);
PRINT_MACRO(_POSIX_THREAD_PROCESS_SHARED);
PRINT_MACRO(_POSIX_THREAD_SAFE_FUNCTIONS);
PRINT_MACRO(_POSIX_THREAD_SPORADIC_SERVER);
PRINT_MACRO(_POSIX_THREADS);
PRINT_MACRO(_POSIX_TIMEOUTS);
PRINT_MACRO(_POSIX_TIMERS);
PRINT_MACRO(_POSIX_TRACE);
PRINT_MACRO(_POSIX_TRACE_EVENT_FILTER);
PRINT_MACRO(_POSIX_TRACE_INHERIT);
PRINT_MACRO(_POSIX_TRACE_LOG);
PRINT_MACRO(_POSIX_TYPED_MEMORY_OBJECTS);
PRINT_MACRO(_POSIX_VDISABLE);
PRINT_MACRO(_POSIX_VERSION);
PRINT_MACRO(_POSIX2_C_BIND);
PRINT_MACRO(_POSIX2_C_DEV);
PRINT_MACRO(_POSIX2_CHAR_TERM);
PRINT_MACRO(_POSIX2_FORT_DEV);
PRINT_MACRO(_POSIX2_FORT_RUN);
PRINT_MACRO(_POSIX2_LOCALEDEF);
PRINT_MACRO(_POSIX2_PBS);
PRINT_MACRO(_POSIX2_PBS_ACCOUNTING);
PRINT_MACRO(_POSIX2_PBS_CHECKPOINT);
PRINT_MACRO(_POSIX2_PBS_LOCATE);
PRINT_MACRO(_POSIX2_PBS_MESSAGE);
PRINT_MACRO(_POSIX2_PBS_TRACK);
PRINT_MACRO(_POSIX2_SW_DEV);
PRINT_MACRO(_POSIX2_UPE);
PRINT_MACRO(_POSIX2_VERSION);
PRINT_MACRO(_V6_ILP32_OFF32);
PRINT_MACRO(_V6_ILP32_OFFBIG);
PRINT_MACRO(_V6_LP64_OFF64);
PRINT_MACRO(_V6_LPBIG_OFFBIG);
PRINT_MACRO(_XBS5_ILP32_OFF32);
PRINT_MACRO(_XBS5_ILP32_OFFBIG);
PRINT_MACRO(_XBS5_LP64_OFF64);
PRINT_MACRO(_XBS5_LPBIG_OFFBIG);
PRINT_MACRO(_XOPEN_CRYPT);
PRINT_MACRO(_XOPEN_ENH_I18N);
PRINT_MACRO(_XOPEN_LEGACY);
PRINT_MACRO(_XOPEN_REALTIME);
PRINT_MACRO(_XOPEN_REALTIME_THREADS);
PRINT_MACRO(_XOPEN_SHM);
PRINT_MACRO(_XOPEN_SOURCE);
PRINT_MACRO(_XOPEN_STREAMS);
PRINT_MACRO(_XOPEN_UNIX);
PRINT_MACRO(_XOPEN_VERSION);
}
void print_boost_macros()
{
std::cout << "Boost version " << BOOST_STRINGIZE(BOOST_VERSION) << std::endl;
PRINT_MACRO(BOOST_DECL);
PRINT_MACRO(BOOST_HAS_BETHREADS);
PRINT_MACRO(BOOST_HAS_HASH);
PRINT_MACRO(BOOST_HAS_MACRO_USE_FACET);
PRINT_MACRO(BOOST_HAS_NL_TYPES_H);
PRINT_MACRO(BOOST_HAS_PTHREADS);
PRINT_MACRO(BOOST_HAS_SLIST);
PRINT_MACRO(BOOST_HAS_STLP_USE_FACET);
PRINT_MACRO(BOOST_HAS_THREADS);
PRINT_MACRO(BOOST_HAS_TWO_ARG_USE_FACET);
PRINT_MACRO(BOOST_HAS_UNISTD_H);
PRINT_MACRO(BOOST_HAS_WINTHREADS);
PRINT_MACRO(BOOST_MSVC);
PRINT_MACRO(BOOST_MSVC_STD_ITERATOR);
PRINT_MACRO(BOOST_MSVC6_MEMBER_TEMPLATES);
PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP);
PRINT_MACRO(BOOST_NO_AUTO_PTR);
PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
PRINT_MACRO(BOOST_NO_CWCHAR);
PRINT_MACRO(BOOST_NO_CWCTYPE);
PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
PRINT_MACRO(BOOST_NO_HASH);
PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
PRINT_MACRO(BOOST_NO_INT64_T);
PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
PRINT_MACRO(BOOST_NO_LIMITS);
PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS);
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD);
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_FRIENDS);
PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATES);
PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE);
PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST);
PRINT_MACRO(BOOST_NO_PRIVATE_IN_AGGREGATE);
PRINT_MACRO(BOOST_NO_SLIST);
PRINT_MACRO(BOOST_NO_STD_ALLOCATOR);
PRINT_MACRO(BOOST_NO_STD_ITERATOR);
PRINT_MACRO(BOOST_NO_STD_ITERATOR_TRAITS);
PRINT_MACRO(BOOST_NO_STD_LOCALE);
PRINT_MACRO(BOOST_NO_STD_MESSAGES);
PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
PRINT_MACRO(BOOST_NO_STD_USE_FACET);
PRINT_MACRO(BOOST_NO_STD_WSTRING);
PRINT_MACRO(BOOST_NO_STDC_NAMESPACE);
PRINT_MACRO(BOOST_NO_STRINGSTREAM);
PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
PRINT_MACRO(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS);
PRINT_MACRO(BOOST_DISABLE_THREADS);
PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE);
PRINT_MACRO(BOOST_HAS_STDINT_H);
}
void print_separator()
{
std::cout <<
"\n\n*********************************************************************\n\n";
}
int main()
{
// boost compiler workaround defines
print_compiler_macros();
print_separator();
print_stdlib_macros();
print_separator();
print_platform_macros();
print_separator();
print_boost_macros();
return 0;
}

318
test/config_test.cpp Normal file
View File

@@ -0,0 +1,318 @@
// (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.
// Test file for config setup
// This file should compile, if it does not then
// one or more macros need to be defined.
// see boost_*.cxx for more details
// Do not edit this file, it was generated automatically by
// ../tools/generate from boost_*.cxx on
// Sun Sep 16 11:09:13 2001
#include <boost/config.hpp>
#define BOOST_INCLUDE_MAIN
#include <boost/test/test_tools.hpp>
#include "test.hpp"
#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
#include "boost_no_arg_dep_lookup.cxx"
#else
namespace boost_no_argument_dependent_lookup = empty_boost;
#endif
#ifndef BOOST_NO_AUTO_PTR
#include "boost_no_auto_ptr.cxx"
#else
namespace boost_no_auto_ptr = empty_boost;
#endif
#ifndef BOOST_NO_CV_SPECIALIZATIONS
#include "boost_no_cv_spec.cxx"
#else
namespace boost_no_cv_specializations = empty_boost;
#endif
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
#include "boost_no_cv_void_spec.cxx"
#else
namespace boost_no_cv_void_specializations = empty_boost;
#endif
#ifndef BOOST_NO_CWCHAR
#include "boost_no_cwchar.cxx"
#else
namespace boost_no_cwchar = empty_boost;
#endif
#ifndef BOOST_NO_CWCTYPE
#include "boost_no_cwctype.cxx"
#else
namespace boost_no_cwctype = empty_boost;
#endif
#ifndef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
#include "boost_no_dep_nested_class.cxx"
#else
namespace boost_no_dependent_nested_derivations = empty_boost;
#endif
#ifndef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
#include "boost_no_dep_val_param.cxx"
#else
namespace boost_no_dependent_types_in_template_value_parameters = empty_boost;
#endif
#ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
#include "boost_no_exp_func_tem_arg.cxx"
#else
namespace boost_no_explicit_function_template_arguments = empty_boost;
#endif
#ifndef BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING
#include "boost_no_func_tmp_order.cxx"
#else
namespace boost_weak_function_template_ordering = empty_boost;
#endif
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
#include "boost_no_inline_memb_init.cxx"
#else
namespace boost_no_inclass_member_initialization = empty_boost;
#endif
#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
#include "boost_no_iter_construct.cxx"
#else
namespace boost_no_templated_iterator_constructors = empty_boost;
#endif
#ifndef BOOST_NO_LIMITS
#include "boost_no_limits.cxx"
#else
namespace boost_no_limits = empty_boost;
#endif
#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
#include "boost_no_limits_const_exp.cxx"
#else
namespace boost_no_limits_compile_time_constants = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
#include "boost_no_mem_tem_keyword.cxx"
#else
namespace boost_no_member_template_keyword = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#include "boost_no_mem_templ_frnds.cxx"
#else
namespace boost_no_member_template_friends = empty_boost;
#endif
#ifndef BOOST_NO_MEMBER_TEMPLATES
#include "boost_no_mem_templates.cxx"
#else
namespace boost_no_member_templates = empty_boost;
#endif
#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE
#include "boost_no_ops_in_namespace.cxx"
#else
namespace boost_no_operators_in_namespace = empty_boost;
#endif
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#include "boost_no_partial_spec.cxx"
#else
namespace boost_no_template_partial_specialization = empty_boost;
#endif
#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
#include "boost_no_priv_aggregate.cxx"
#else
namespace boost_no_private_in_aggregate = empty_boost;
#endif
#ifndef BOOST_NO_POINTER_TO_MEMBER_CONST
#include "boost_no_ptr_mem_const.cxx"
#else
namespace boost_no_pointer_to_member_const = empty_boost;
#endif
#ifndef BOOST_NO_STRINGSTREAM
#include "boost_no_sstream.cxx"
#else
namespace boost_no_stringstream = empty_boost;
#endif
#ifndef BOOST_NO_STD_ALLOCATOR
#include "boost_no_std_allocator.cxx"
#else
namespace boost_no_std_allocator = empty_boost;
#endif
#ifndef BOOST_NO_STD_DISTANCE
#include "boost_no_std_distance.cxx"
#else
namespace boost_no_std_distance = empty_boost;
#endif
#ifndef BOOST_NO_STD_ITERATOR_TRAITS
#include "boost_no_std_iter_traits.cxx"
#else
namespace boost_no_std_iterator_traits = empty_boost;
#endif
#ifndef BOOST_NO_STD_ITERATOR
#include "boost_no_std_iterator.cxx"
#else
namespace boost_no_std_iterator = empty_boost;
#endif
#ifndef BOOST_NO_STD_LOCALE
#include "boost_no_std_locale.cxx"
#else
namespace boost_no_std_locale = empty_boost;
#endif
#ifndef BOOST_NO_STD_MESSAGES
#include "boost_no_std_messages.cxx"
#else
namespace boost_no_std_messages = empty_boost;
#endif
#ifndef BOOST_NO_STD_MIN_MAX
#include "boost_no_std_min_max.cxx"
#else
namespace boost_no_std_min_max = empty_boost;
#endif
#ifndef BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
#include "boost_no_std_oi_assign.cxx"
#else
namespace boost_no_std_output_iterator_assign = empty_boost;
#endif
#ifndef BOOST_NO_STD_USE_FACET
#include "boost_no_std_use_facet.cxx"
#else
namespace boost_no_std_use_facet = empty_boost;
#endif
#ifndef BOOST_NO_STD_WSTRING
#include "boost_no_std_wstring.cxx"
#else
namespace boost_no_std_wstring = empty_boost;
#endif
#ifndef BOOST_NO_STDC_NAMESPACE
#include "boost_no_stdc_namespace.cxx"
#else
namespace boost_no_stdc_namespace = empty_boost;
#endif
#ifndef BOOST_NO_SWPRINTF
#include "boost_no_swprintf.cxx"
#else
namespace boost_no_swprintf = empty_boost;
#endif
#ifndef BOOST_NO_USING_TEMPLATE
#include "boost_no_using_template.cxx"
#else
namespace boost_no_using_template = empty_boost;
#endif
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
#include "boost_no_wchar_t.cxx"
#else
namespace boost_no_intrinsic_wchar_t = empty_boost;
#endif
#ifdef BOOST_HAS_TWO_ARG_USE_FACET
#include "boost_has_2arg_use_facet.cxx"
#else
namespace boost_has_two_arg_use_facet = empty_boost;
#endif
#ifdef BOOST_HAS_BETHREADS
#include "boost_has_bethreads.cxx"
#else
namespace boost_has_bethreads = empty_boost;
#endif
#ifdef BOOST_HAS_HASH
#include "boost_has_hash.cxx"
#else
namespace boost_has_hash = empty_boost;
#endif
#ifdef BOOST_HAS_MACRO_USE_FACET
#include "boost_has_macro_use_facet.cxx"
#else
namespace boost_has_macro_use_facet = empty_boost;
#endif
#ifdef BOOST_HAS_NL_TYPES_H
#include "boost_has_nl_types_h.cxx"
#else
namespace boost_has_nl_types_h = empty_boost;
#endif
#ifdef BOOST_HAS_PTHREADS
#include "boost_has_pthreads.cxx"
#else
namespace boost_has_pthreads = empty_boost;
#endif
#ifdef BOOST_HAS_SLIST
#include "boost_has_slist.cxx"
#else
namespace boost_has_slist = empty_boost;
#endif
#ifdef BOOST_HAS_STDINT_H
#include "boost_has_stdint_h.cxx"
#else
namespace boost_has_stdint_h = empty_boost;
#endif
#ifdef BOOST_HAS_STLP_USE_FACET
#include "boost_has_stlp_use_facet.cxx"
#else
namespace boost_has_stlp_use_facet = empty_boost;
#endif
#ifdef BOOST_HAS_UNISTD_H
#include "boost_has_unistd_h.cxx"
#else
namespace boost_has_unistd_h = empty_boost;
#endif
#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
#include "boost_has_vc6_mem_templ.cxx"
#else
namespace boost_msvc6_member_templates = empty_boost;
#endif
#ifdef BOOST_MSVC_STD_ITERATOR
#include "boost_has_vc_iterator.cxx"
#else
namespace boost_msvc_std_iterator = empty_boost;
#endif
#ifdef BOOST_HAS_WINTHREADS
#include "boost_has_winthreads.cxx"
#else
namespace boost_has_winthreads = empty_boost;
#endif
int test_main( int, char *[] )
{
BOOST_TEST(0 == boost_no_intrinsic_wchar_t::test());
BOOST_TEST(0 == boost_no_using_template::test());
BOOST_TEST(0 == boost_no_swprintf::test());
BOOST_TEST(0 == boost_no_stdc_namespace::test());
BOOST_TEST(0 == boost_no_std_wstring::test());
BOOST_TEST(0 == boost_no_std_use_facet::test());
BOOST_TEST(0 == boost_no_std_output_iterator_assign::test());
BOOST_TEST(0 == boost_no_std_min_max::test());
BOOST_TEST(0 == boost_no_std_messages::test());
BOOST_TEST(0 == boost_no_std_locale::test());
BOOST_TEST(0 == boost_no_std_iterator::test());
BOOST_TEST(0 == boost_no_std_iterator_traits::test());
BOOST_TEST(0 == boost_no_std_distance::test());
BOOST_TEST(0 == boost_no_std_allocator::test());
BOOST_TEST(0 == boost_no_stringstream::test());
BOOST_TEST(0 == boost_no_pointer_to_member_const::test());
BOOST_TEST(0 == boost_no_private_in_aggregate::test());
BOOST_TEST(0 == boost_no_template_partial_specialization::test());
BOOST_TEST(0 == boost_no_operators_in_namespace::test());
BOOST_TEST(0 == boost_no_member_templates::test());
BOOST_TEST(0 == boost_no_member_template_friends::test());
BOOST_TEST(0 == boost_no_member_template_keyword::test());
BOOST_TEST(0 == boost_no_limits_compile_time_constants::test());
BOOST_TEST(0 == boost_no_limits::test());
BOOST_TEST(0 == boost_no_templated_iterator_constructors::test());
BOOST_TEST(0 == boost_no_inclass_member_initialization::test());
BOOST_TEST(0 == boost_weak_function_template_ordering::test());
BOOST_TEST(0 == boost_no_explicit_function_template_arguments::test());
BOOST_TEST(0 == boost_no_dependent_types_in_template_value_parameters::test());
BOOST_TEST(0 == boost_no_dependent_nested_derivations::test());
BOOST_TEST(0 == boost_no_cwctype::test());
BOOST_TEST(0 == boost_no_cwchar::test());
BOOST_TEST(0 == boost_no_cv_void_specializations::test());
BOOST_TEST(0 == boost_no_cv_specializations::test());
BOOST_TEST(0 == boost_no_auto_ptr::test());
BOOST_TEST(0 == boost_no_argument_dependent_lookup::test());
BOOST_TEST(0 == boost_has_winthreads::test());
BOOST_TEST(0 == boost_msvc_std_iterator::test());
BOOST_TEST(0 == boost_msvc6_member_templates::test());
BOOST_TEST(0 == boost_has_unistd_h::test());
BOOST_TEST(0 == boost_has_stlp_use_facet::test());
BOOST_TEST(0 == boost_has_stdint_h::test());
BOOST_TEST(0 == boost_has_slist::test());
BOOST_TEST(0 == boost_has_pthreads::test());
BOOST_TEST(0 == boost_has_nl_types_h::test());
BOOST_TEST(0 == boost_has_macro_use_facet::test());
BOOST_TEST(0 == boost_has_hash::test());
BOOST_TEST(0 == boost_has_bethreads::test());
BOOST_TEST(0 == boost_has_two_arg_use_facet::test());
return 0;
}

View File

@@ -0,0 +1,36 @@
// (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.
// Test file for macro BOOST_HAS_TWO_ARG_USE_FACET
// This file should not compile, if it does then
// BOOST_HAS_TWO_ARG_USE_FACET may be defined.
// see boost_has_2arg_use_facet.cxx for more details
// Do not edit this file, it was generated automatically by
// ../tools/generate from boost_has_2arg_use_facet.cxx on
// Mon Sep 10 12:18:12 2001
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include <boost/test/cpp_main.cpp>
#include "test.hpp"
#ifndef BOOST_HAS_TWO_ARG_USE_FACET
#include "boost_has_2arg_use_facet.cxx"
#else
#error "this file should not compile"
#endif
int cpp_main( int, char *[] )
{
return boost_has_two_arg_use_facet::test();
}

View File

@@ -0,0 +1,36 @@
// (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.
// Test file for macro BOOST_HAS_TWO_ARG_USE_FACET
// This file should compile, if it does not then
// BOOST_HAS_TWO_ARG_USE_FACET should not be defined.
// see boost_has_2arg_use_facet.cxx for more details
// Do not edit this file, it was generated automatically by
// ../tools/generate from boost_has_2arg_use_facet.cxx on
// Mon Sep 10 12:18:12 2001
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include <boost/test/cpp_main.cpp>
#include "test.hpp"
#ifdef BOOST_HAS_TWO_ARG_USE_FACET
#include "boost_has_2arg_use_facet.cxx"
#else
namespace boost_has_two_arg_use_facet = empty_boost;
#endif
int cpp_main( int, char *[] )
{
return boost_has_two_arg_use_facet::test();
}

View File

@@ -0,0 +1,36 @@
// (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.
// Test file for macro BOOST_HAS_BETHREADS
// This file should not compile, if it does then
// BOOST_HAS_BETHREADS may be defined.
// see boost_has_bethreads.cxx for more details
// Do not edit this file, it was generated automatically by
// ../tools/generate from boost_has_bethreads.cxx on
// Mon Sep 10 12:18:12 2001
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include <boost/test/cpp_main.cpp>
#include "test.hpp"
#ifndef BOOST_HAS_BETHREADS
#include "boost_has_bethreads.cxx"
#else
#error "this file should not compile"
#endif
int cpp_main( int, char *[] )
{
return boost_has_bethreads::test();
}

View File

@@ -0,0 +1,36 @@
// (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.
// Test file for macro BOOST_HAS_BETHREADS
// This file should compile, if it does not then
// BOOST_HAS_BETHREADS should not be defined.
// see boost_has_bethreads.cxx for more details
// Do not edit this file, it was generated automatically by
// ../tools/generate from boost_has_bethreads.cxx on
// Mon Sep 10 12:18:12 2001
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include <boost/test/cpp_main.cpp>
#include "test.hpp"
#ifdef BOOST_HAS_BETHREADS
#include "boost_has_bethreads.cxx"
#else
namespace boost_has_bethreads = empty_boost;
#endif
int cpp_main( int, char *[] )
{
return boost_has_bethreads::test();
}

36
test/has_hash_fail.cpp Normal file
View File

@@ -0,0 +1,36 @@
// (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.
// Test file for macro BOOST_HAS_HASH
// This file should not compile, if it does then
// BOOST_HAS_HASH may be defined.
// see boost_has_hash.cxx for more details
// Do not edit this file, it was generated automatically by
// ../tools/generate from boost_has_hash.cxx on
// Mon Sep 10 12:18:12 2001
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include <boost/test/cpp_main.cpp>
#include "test.hpp"
#ifndef BOOST_HAS_HASH
#include "boost_has_hash.cxx"
#else
#error "this file should not compile"
#endif
int cpp_main( int, char *[] )
{
return boost_has_hash::test();
}

Some files were not shown because too many files have changed in this diff Show More