forked from boostorg/config
commit of split-config, including any changes required to existing libraries (mainly regex).
[SVN r11138]
This commit is contained in:
1264
config.htm
Normal file
1264
config.htm
Normal file
File diff suppressed because it is too large
Load Diff
196
config_test.cpp
196
config_test.cpp
@@ -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;
|
||||
}
|
@@ -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
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
// Compiler-specific checks -------------------------------------------------//
|
||||
// Compilers are listed in alphabetic order by vendor name
|
||||
// (except VC++ must be last - see below)
|
||||
|
||||
// Borland ------------------------------------------------------------------//
|
||||
|
||||
#if defined __BORLANDC__
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
// pull in standard library version:
|
||||
# include <memory>
|
||||
# if __BORLANDC__ <= 0x0551
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
# endif
|
||||
# if __BORLANDC__ <= 0x0550
|
||||
// Borland C++ Builder 4 and 5:
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# if __BORLANDC__ == 0x0550
|
||||
// Borland C++ Builder 5, command-line compiler 5.5:
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# endif
|
||||
# endif
|
||||
# if defined BOOST_DECL_EXPORTS
|
||||
# if defined BOOST_DECL_IMPORTS
|
||||
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
|
||||
# endif
|
||||
# define BOOST_DECL __declspec(dllexport)
|
||||
# elif defined BOOST_DECL_IMPORTS
|
||||
# define BOOST_DECL __declspec(dllimport)
|
||||
# else
|
||||
# define BOOST_DECL
|
||||
# endif
|
||||
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
|
||||
// <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>
|
||||
// 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
|
||||
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||
|
||||
// Comeau C++ ----------------------------------------------------------------//
|
||||
|
||||
# elif defined __COMO__
|
||||
# if __COMO_VERSION__ <= 4245
|
||||
# define BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
|
||||
# if defined(_MSC_VER) && _MSC_VER <= 1200
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# endif
|
||||
# endif
|
||||
|
||||
// Compaq Tru64 Unix cxx ---------------------------------------------------
|
||||
|
||||
# elif defined __DECCXX
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
|
||||
// GNU CC (also known as GCC and G++) --------------------------------------//
|
||||
|
||||
# elif defined __GNUC__
|
||||
# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
|
||||
// egcs 1.1 won't parse smart_ptr.hpp without this:
|
||||
# define BOOST_NO_AUTO_PTR
|
||||
# endif
|
||||
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
|
||||
# include <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
|
||||
// include it first:
|
||||
#ifdef BOOST_USER_CONFIG
|
||||
# include BOOST_USER_CONFIG
|
||||
#endif
|
||||
|
||||
#if defined(__hpux)
|
||||
// HP-UX has a nice stdint.h in a different location, see boost/cstdint.hpp
|
||||
# define BOOST_SYSTEM_HAS_STDINT_H
|
||||
// if we don't have a compiler config set, try and find one:
|
||||
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||
# include <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
|
||||
|
||||
#ifdef __APPLE_CC__
|
||||
#define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
|
||||
// if we have a compiler config, include it now:
|
||||
#ifdef BOOST_COMPILER_CONFIG
|
||||
# include BOOST_COMPILER_CONFIG
|
||||
#endif
|
||||
// if we have a std library config, include it now:
|
||||
#ifdef BOOST_STDLIB_CONFIG
|
||||
# include BOOST_STDLIB_CONFIG
|
||||
#endif
|
||||
// if we have a platform config, include it now:
|
||||
#ifdef BOOST_PLATFORM_CONFIG
|
||||
# include BOOST_PLATFORM_CONFIG
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_STD_EXTENSION_NAMESPACE
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE std
|
||||
#endif
|
||||
|
||||
// Check for old name "BOOST_NMEMBER_TEMPLATES" for compatibility -----------//
|
||||
// Don't use BOOST_NMEMBER_TEMPLATES. It is deprecated and will be removed soon.
|
||||
#if defined( BOOST_NMEMBER_TEMPLATES ) && !defined( BOOST_NO_MEMBER_TEMPLATES )
|
||||
#define BOOST_NO_MEMBER_TEMPLATES
|
||||
#endif
|
||||
|
||||
// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
|
||||
//
|
||||
// Because std::size_t usage is so common, even in boost headers which do not
|
||||
// otherwise use the C library, the <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 {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
55
include/boost/config/compiler/borland.hpp
Normal file
55
include/boost/config/compiler/borland.hpp
Normal 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
|
||||
|
||||
|
36
include/boost/config/compiler/comeau.hpp
Normal file
36
include/boost/config/compiler/comeau.hpp
Normal 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
|
||||
|
||||
|
||||
|
18
include/boost/config/compiler/common_edg.hpp
Normal file
18
include/boost/config/compiler/common_edg.hpp
Normal 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
|
||||
|
||||
|
18
include/boost/config/compiler/compaq_cxx.hpp
Normal file
18
include/boost/config/compiler/compaq_cxx.hpp
Normal 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?
|
||||
|
||||
|
59
include/boost/config/compiler/gcc.hpp
Normal file
59
include/boost/config/compiler/gcc.hpp
Normal 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
|
||||
|
||||
|
||||
|
||||
|
27
include/boost/config/compiler/greenhills.hpp
Normal file
27
include/boost/config/compiler/greenhills.hpp
Normal 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
|
||||
|
36
include/boost/config/compiler/hp_acc.hpp
Normal file
36
include/boost/config/compiler/hp_acc.hpp
Normal 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
|
||||
|
56
include/boost/config/compiler/intel.hpp
Normal file
56
include/boost/config/compiler/intel.hpp
Normal 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
|
||||
|
||||
|
27
include/boost/config/compiler/kai.hpp
Normal file
27
include/boost/config/compiler/kai.hpp
Normal 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
|
||||
|
||||
|
50
include/boost/config/compiler/metrowerks.hpp
Normal file
50
include/boost/config/compiler/metrowerks.hpp
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
49
include/boost/config/compiler/mpw.hpp
Normal file
49
include/boost/config/compiler/mpw.hpp
Normal 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
|
||||
|
16
include/boost/config/compiler/sgi_mipspro.hpp
Normal file
16
include/boost/config/compiler/sgi_mipspro.hpp
Normal 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?
|
47
include/boost/config/compiler/sunpro_cc.hpp
Normal file
47
include/boost/config/compiler/sunpro_cc.hpp
Normal 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
|
||||
|
||||
|
30
include/boost/config/compiler/vacpp.hpp
Normal file
30
include/boost/config/compiler/vacpp.hpp
Normal 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
|
||||
|
||||
|
||||
|
75
include/boost/config/compiler/visualc.hpp
Normal file
75
include/boost/config/compiler/visualc.hpp
Normal 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
|
||||
|
16
include/boost/config/platform/aix.hpp
Normal file
16
include/boost/config/platform/aix.hpp
Normal 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
|
||||
|
||||
|
23
include/boost/config/platform/beos.hpp
Normal file
23
include/boost/config/platform/beos.hpp
Normal 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
|
||||
|
||||
|
||||
|
36
include/boost/config/platform/bsd.hpp
Normal file
36
include/boost/config/platform/bsd.hpp
Normal 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
|
||||
|
||||
|
16
include/boost/config/platform/cygwin.hpp
Normal file
16
include/boost/config/platform/cygwin.hpp
Normal 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
|
||||
|
||||
|
||||
|
14
include/boost/config/platform/hpux.hpp
Normal file
14
include/boost/config/platform/hpux.hpp
Normal 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
|
||||
|
13
include/boost/config/platform/irix.hpp
Normal file
13
include/boost/config/platform/irix.hpp
Normal 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
|
||||
|
50
include/boost/config/platform/linux.hpp
Normal file
50
include/boost/config/platform/linux.hpp
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
26
include/boost/config/platform/macos.hpp
Normal file
26
include/boost/config/platform/macos.hpp
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
13
include/boost/config/platform/sunpro.hpp
Normal file
13
include/boost/config/platform/sunpro.hpp
Normal 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"
|
||||
|
||||
|
||||
|
28
include/boost/config/platform/win32.hpp
Normal file
28
include/boost/config/platform/win32.hpp
Normal 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
|
||||
|
33
include/boost/config/posix_features.hpp
Normal file
33
include/boost/config/posix_features.hpp
Normal 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
|
77
include/boost/config/select_compiler_config.hpp
Normal file
77
include/boost/config/select_compiler_config.hpp
Normal 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
|
62
include/boost/config/select_platform_config.hpp
Normal file
62
include/boost/config/select_platform_config.hpp
Normal 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
|
||||
|
||||
|
57
include/boost/config/select_stdlib_config.hpp
Normal file
57
include/boost/config/select_stdlib_config.hpp
Normal 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
|
||||
|
||||
|
68
include/boost/config/stdlib/dinkumware.hpp
Normal file
68
include/boost/config/stdlib/dinkumware.hpp
Normal 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
|
||||
|
||||
|
||||
|
||||
|
19
include/boost/config/stdlib/libstdcpp3.hpp
Normal file
19
include/boost/config/stdlib/libstdcpp3.hpp
Normal 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
|
||||
|
||||
|
||||
|
46
include/boost/config/stdlib/msl.hpp
Normal file
46
include/boost/config/stdlib/msl.hpp
Normal 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__)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
102
include/boost/config/stdlib/roguewave.hpp
Normal file
102
include/boost/config/stdlib/roguewave.hpp
Normal 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
|
||||
|
81
include/boost/config/stdlib/sgi.hpp
Normal file
81
include/boost/config/stdlib/sgi.hpp
Normal 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"
|
||||
|
||||
|
||||
|
||||
|
91
include/boost/config/stdlib/stlport.hpp
Normal file
91
include/boost/config/stdlib/stlport.hpp
Normal 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)
|
||||
|
||||
|
13
include/boost/config/stdlib/vacpp.hpp
Normal file
13
include/boost/config/stdlib/vacpp.hpp
Normal 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"
|
||||
|
||||
|
293
include/boost/config/suffix.hpp
Normal file
293
include/boost/config/suffix.hpp
Normal 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
|
||||
|
58
include/boost/config/user.hpp
Normal file
58
include/boost/config/user.hpp
Normal 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
26
include/boost/version.hpp
Normal 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
|
||||
|
89
index.htm
89
index.htm
@@ -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 <climits>, etc.</li>
|
||||
<li>If configuration information can be deduced from standard headers such as
|
||||
<climits>, 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>
|
28
test/boost_has_2arg_use_facet.ipp
Normal file
28
test/boost_has_2arg_use_facet.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
31
test/boost_has_bethreads.ipp
Normal file
31
test/boost_has_bethreads.ipp
Normal 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
44
test/boost_has_hash.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
32
test/boost_has_macro_use_facet.ipp
Normal file
32
test/boost_has_macro_use_facet.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
26
test/boost_has_nl_types_h.ipp
Normal file
26
test/boost_has_nl_types_h.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
32
test/boost_has_pthreads.ipp
Normal file
32
test/boost_has_pthreads.ipp
Normal 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
36
test/boost_has_slist.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
36
test/boost_has_stdint_h.ipp
Normal file
36
test/boost_has_stdint_h.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
28
test/boost_has_stlp_use_facet.ipp
Normal file
28
test/boost_has_stlp_use_facet.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
23
test/boost_has_unistd_h.ipp
Normal file
23
test/boost_has_unistd_h.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
55
test/boost_has_vc6_mem_templ.ipp
Normal file
55
test/boost_has_vc6_mem_templ.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
37
test/boost_has_vc_iterator.ipp
Normal file
37
test/boost_has_vc_iterator.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
31
test/boost_has_winthreads.ipp
Normal file
31
test/boost_has_winthreads.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
34
test/boost_no_arg_dep_lookup.ipp
Normal file
34
test/boost_no_arg_dep_lookup.ipp
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
50
test/boost_no_auto_ptr.ipp
Normal file
50
test/boost_no_auto_ptr.ipp
Normal 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
44
test/boost_no_cv_spec.ipp
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
42
test/boost_no_cv_void_spec.ipp
Normal file
42
test/boost_no_cv_void_spec.ipp
Normal 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
30
test/boost_no_cwchar.ipp
Normal 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
44
test/boost_no_cwctype.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
55
test/boost_no_dep_nested_class.ipp
Normal file
55
test/boost_no_dep_nested_class.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
33
test/boost_no_dep_val_param.ipp
Normal file
33
test/boost_no_dep_val_param.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
35
test/boost_no_exp_func_tem_arg.ipp
Normal file
35
test/boost_no_exp_func_tem_arg.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
46
test/boost_no_func_tmp_order.ipp
Normal file
46
test/boost_no_func_tmp_order.ipp
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
52
test/boost_no_inline_memb_init.ipp
Normal file
52
test/boost_no_inline_memb_init.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
35
test/boost_no_iter_construct.ipp
Normal file
35
test/boost_no_iter_construct.ipp
Normal 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
31
test/boost_no_limits.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
39
test/boost_no_limits_const_exp.ipp
Normal file
39
test/boost_no_limits_const_exp.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
65
test/boost_no_mem_tem_keyword.ipp
Normal file
65
test/boost_no_mem_tem_keyword.ipp
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
67
test/boost_no_mem_templ_frnds.ipp
Normal file
67
test/boost_no_mem_templ_frnds.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
60
test/boost_no_mem_templates.ipp
Normal file
60
test/boost_no_mem_templates.ipp
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
80
test/boost_no_ops_in_namespace.ipp
Normal file
80
test/boost_no_ops_in_namespace.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
53
test/boost_no_partial_spec.ipp
Normal file
53
test/boost_no_partial_spec.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
34
test/boost_no_priv_aggregate.ipp
Normal file
34
test/boost_no_priv_aggregate.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
91
test/boost_no_ptr_mem_const.ipp
Normal file
91
test/boost_no_ptr_mem_const.ipp
Normal 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
26
test/boost_no_sstream.ipp
Normal 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");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
66
test/boost_no_std_allocator.ipp
Normal file
66
test/boost_no_std_allocator.ipp
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
28
test/boost_no_std_distance.ipp
Normal file
28
test/boost_no_std_distance.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
76
test/boost_no_std_iter_traits.ipp
Normal file
76
test/boost_no_std_iter_traits.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
64
test/boost_no_std_iterator.ipp
Normal file
64
test/boost_no_std_iterator.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
33
test/boost_no_std_locale.ipp
Normal file
33
test/boost_no_std_locale.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
26
test/boost_no_std_messages.ipp
Normal file
26
test/boost_no_std_messages.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
30
test/boost_no_std_min_max.ipp
Normal file
30
test/boost_no_std_min_max.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
37
test/boost_no_std_oi_assign.ipp
Normal file
37
test/boost_no_std_oi_assign.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
26
test/boost_no_std_use_facet.ipp
Normal file
26
test/boost_no_std_use_facet.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
25
test/boost_no_std_wstring.ipp
Normal file
25
test/boost_no_std_wstring.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
41
test/boost_no_stdc_namespace.ipp
Normal file
41
test/boost_no_stdc_namespace.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
28
test/boost_no_swprintf.ipp
Normal file
28
test/boost_no_swprintf.ipp
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
43
test/boost_no_using_template.ipp
Normal file
43
test/boost_no_using_template.ipp
Normal 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
40
test/boost_no_wchar_t.ipp
Normal 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
862
test/config_info.cpp
Normal 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
318
test/config_test.cpp
Normal 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;
|
||||
}
|
36
test/has_2arg_use_facet_fail.cpp
Normal file
36
test/has_2arg_use_facet_fail.cpp
Normal 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();
|
||||
}
|
||||
|
36
test/has_2arg_use_facet_pass.cpp
Normal file
36
test/has_2arg_use_facet_pass.cpp
Normal 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();
|
||||
}
|
||||
|
36
test/has_bethreads_fail.cpp
Normal file
36
test/has_bethreads_fail.cpp
Normal 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();
|
||||
}
|
||||
|
36
test/has_bethreads_pass.cpp
Normal file
36
test/has_bethreads_pass.cpp
Normal 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
36
test/has_hash_fail.cpp
Normal 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
Reference in New Issue
Block a user