diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp deleted file mode 100644 index 1045e499518..00000000000 --- a/include/boost/config/compiler/borland.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// (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: - -// Version 5.0 and below: -# 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 - -// Version 5.51 and below: -#if (__BORLANDC__ <= 0x551) -# define BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -#endif - -// Version 6.0 and below: -#if (__BORLANDC__ <= 0x560) || !defined(BOOST_STRICT_CONFIG) -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_SWPRINTF -# define BOOST_NO_USING_TEMPLATE - // we shouldn't really need this - but too many things choke - // without it, this needs more investigation: -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -#endif - -// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is -// defined, then we have 0x560 or greater with the Rogue Wave implementation -// which presumably has the std::DBL_MAX bug. -#if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) || defined(_USE_OLD_RW_STL) -// is partly broken, some macros define symbols that are really in -// namespace std, so you end up having to use illegal constructs like -// std::DBL_MAX, as a fix we'll just include float.h and have done with: -#include -#endif -// -// __int64: -// -#if __BORLANDC__ >= 0x530 -# define BOOST_HAS_MS_INT64 -#endif -// -// check for exception handling support: -// -#ifndef _CPPUNWIND -# define BOOST_NO_EXCEPTIONS -#endif -// -// Disable Win32 support in ANSI mode: -// -#pragma defineonoption BOOST_DISABLE_WIN32 -A - -#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.6: -#if (__BORLANDC__ > 0x560) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message( "Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - - diff --git a/include/boost/config/compiler/comeau.hpp b/include/boost/config/compiler/comeau.hpp deleted file mode 100644 index a0e8835a272..00000000000 --- a/include/boost/config/compiler/comeau.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// (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) -# if defined(_MSC_VER) && _MSC_VER <= 1300 -# define BOOST_NO_STDC_NAMESPACE -# define BOOST_NO_SWPRINTF -# if _MSC_VER > 100 - // only set this in non-strict mode: -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# endif -# endif - -// Void returns don't work when emulating VC 6 (Peter Dimov) - -# if defined(_MSC_VER) && (_MSC_VER == 1200) -# define BOOST_NO_VOID_RETURNS -# endif - - -#endif // version 4245 - -// -// enable __int64 support in VC emulation mode -// we should also set BOOST_HAS_LONG_LONG when that is -// supported, but there is no way we can detect it: -// -# if defined(_MSC_VER) && (_MSC_VER >= 1200) -# define BOOST_HAS_MS_INT64 -# endif - -// -// disable win32 support unless we are in VC emulation mode, -// (what does this do to Como on top of Borland?): -// -#if defined(_WIN32) && (_MSC_VER+0 < 1000) -# define BOOST_DISABLE_WIN32 -#endif - -#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) - -// -// versions check: -// we don't know Comeau prior to version 4245: -#if __COMO_VERSION__ < 4245 -# error "Compiler not configured - please reconfigure" -#endif -// -// last known and checked version is 4245: -#if (__COMO_VERSION__ > 4245) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp deleted file mode 100644 index c8522dd1677..00000000000 --- a/include/boost/config/compiler/common_edg.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// (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. - -#ifndef __EDG_VERSION__ -# error This file requires that __EDG_VERSION__ be defined. -#endif - -#if (__EDG_VERSION__ <= 238) -# define BOOST_NO_INTEGRAL_INT64_T -#endif - -#if (__EDG_VERSION__ <= 240) -# define BOOST_NO_VOID_RETURNS -#endif - -#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -#endif - -#ifdef c_plusplus -// EDG has "long long" in non-strict mode -// However, some libraries have insufficient "long long" support -// #define BOOST_HAS_LONG_LONG -#endif - diff --git a/include/boost/config/compiler/compaq_cxx.hpp b/include/boost/config/compiler/compaq_cxx.hpp deleted file mode 100644 index 8d09ff46485..00000000000 --- a/include/boost/config/compiler/compaq_cxx.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// Dec Alpha True64 C++ compiler setup: - -#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER) - -#include "boost/config/compiler/common_edg.hpp" - -// -// versions check: -// Nothing to do here? - - diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp deleted file mode 100644 index aed95465c9c..00000000000 --- a/include/boost/config/compiler/gcc.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// (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 shared_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 - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// -#define BOOST_HAS_THREADS - -// -// gcc has "long long" -// -#define BOOST_HAS_LONG_LONG - -#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.4: -#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 4)) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# warning "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/include/boost/config/compiler/greenhills.hpp b/include/boost/config/compiler/greenhills.hpp deleted file mode 100644 index 793ef5228ea..00000000000 --- a/include/boost/config/compiler/greenhills.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// Greenhills C++ compiler setup: - -#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) - -#include "boost/config/compiler/common_edg.hpp" - -// -// versions check: -// we don't support Greenhills prior to version 0: -#if __ghs < 0 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0: -#if (__ghs > 0) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - diff --git a/include/boost/config/compiler/hp_acc.hpp b/include/boost/config/compiler/hp_acc.hpp deleted file mode 100644 index 44f79c4f4b8..00000000000 --- a/include/boost/config/compiler/hp_acc.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// (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: - -#if (__HP_aCC <= 33100) -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# if !defined(_NAMESPACE_STD) -# define BOOST_NO_STD_LOCALE -# define BOOST_NO_STRINGSTREAM -# endif -#endif - -#if (__HP_aCC <= 33300) || !defined(BOOST_STRICT_CONFIG) -// member templates are sufficiently broken that we disable them for now -# define BOOST_NO_MEMBER_TEMPLATES -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -#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 < 33000 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0: -#if (__HP_aCC > 33300) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - diff --git a/include/boost/config/compiler/intel.hpp b/include/boost/config/compiler/intel.hpp deleted file mode 100644 index 1bfb383de44..00000000000 --- a/include/boost/config/compiler/intel.hpp +++ /dev/null @@ -1,82 +0,0 @@ -// (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 <= 500) && defined(_MSC_VER) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 600) || !defined(BOOST_STRICT_CONFIG) - -# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov) - - // Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup - // in the frontend even in "strict" mode, unless you use - // -Qoption,cpp,--arg_dep_lookup. (reported by Kirk Klobe & Thomas Witt) - // Similarly, -Qoption,cpp,--new_for_init enables new-style "for" loop - // variable scoping. (reported by Thomas Witt) - // 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_NO_SWPRINTF -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# endif - -// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov) - -# if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_VOID_RETURNS -# define BOOST_NO_INTEGRAL_INT64_T -# endif - -#endif - -#if _MSC_VER+0 >= 1000 -# ifndef _NATIVE_WCHAR_T_DEFINED -# define BOOST_NO_INTRINSIC_WCHAR_T -# endif -# if _MSC_VER >= 1200 -# define BOOST_HAS_MS_INT64 -# endif -# define BOOST_NO_SWPRINTF -#elif defined(_WIN32) -# define BOOST_DISABLE_WIN32 -#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 600: -#if (BOOST_INTEL_CXX_VERSION > 600) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# elif defined(_MSC_VER) -# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - - - - diff --git a/include/boost/config/compiler/kai.hpp b/include/boost/config/compiler/kai.hpp deleted file mode 100644 index 6b8ab84bc47..00000000000 --- a/include/boost/config/compiler/kai.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// Kai C++ compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) - // at least on Sun, the contents of is not in namespace std -# define BOOST_NO_STDC_NAMESPACE -# endif - -#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION) - -// -// last known and checked version is 4001: -#if (__KCC_VERSION > 4001) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp deleted file mode 100644 index 9d842eda3c3..00000000000 --- a/include/boost/config/compiler/metrowerks.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (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: - -// locale support is disabled when linking with the dynamic runtime -# ifdef _MSL_NO_LOCALE -# define BOOST_NO_STD_LOCALE -# endif - -# if __MWERKS__ <= 0x2301 // 5.3 -# define BOOST_NO_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_NO_FUNCTION_TEMPLATE_ORDERING -# endif - -# if(__MWERKS__ <= 0x2406) || !defined(BOOST_STRICT_CONFIG) // 7.0 & 7.1 -# 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 0x2406: -#if (__MWERKS__ > 0x2406) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - - - diff --git a/include/boost/config/compiler/mpw.hpp b/include/boost/config/compiler/mpw.hpp deleted file mode 100644 index 3cd979a0b11..00000000000 --- a/include/boost/config/compiler/mpw.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// MPW C++ compilers setup: - -# if defined(__SC__) -# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__) -# elif defined(__MRC__) -# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__) -# else -# error "Using MPW compiler configuration by mistake. Please update." -# endif - -// -// MPW 8.90: -// -#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG) -# define BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_INTRINSIC_WCHAR_T -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# define BOOST_NO_USING_TEMPLATE - -# define BOOST_NO_CWCHAR -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - -# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */ -#endif - -// -// versions check: -// we don't support MPW prior to version 8.9: -#if MPW_CPLUS < 0x890 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0x890: -#if (MPW_CPLUS > 0x890) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - diff --git a/include/boost/config/compiler/sgi_mipspro.hpp b/include/boost/config/compiler/sgi_mipspro.hpp deleted file mode 100644 index 51e9f6fe79b..00000000000 --- a/include/boost/config/compiler/sgi_mipspro.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// (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" - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// -#define BOOST_HAS_THREADS -// -// version check: -// probably nothing to do here? - diff --git a/include/boost/config/compiler/sunpro_cc.hpp b/include/boost/config/compiler/sunpro_cc.hpp deleted file mode 100644 index bc3915cdd4d..00000000000 --- a/include/boost/config/compiler/sunpro_cc.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// (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 <= 0x500 -# define BOOST_NO_MEMBER_TEMPLATES -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# endif - -# if (__SUNPRO_CC <= 0x520) - // - // Sunpro 5.2 and earler: - // - // although sunpro 5.2 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.2 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 <= 0x530) || !defined(BOOST_STRICT_CONFIG) - // SunPro 5.3 has better support for partial specialization, - // but breaks when compiling std::less > - // (Jens Maurer 4 Nov 2001). - - // std::less specialization fixed as reported by George - // Heintzelman; partial specialization re-enabled - // (Peter Dimov 17 Jan 2002) - -//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // integral constant expressions with 64 bit numbers fail -# define BOOST_NO_INTEGRAL_INT64_T -# 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 0x530: -#if (__SUNPRO_CC > 0x530) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp deleted file mode 100644 index 377f295a161..00000000000 --- a/include/boost/config/compiler/vacpp.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// (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 -// -// On AIX thread support seems to be indicated by _THREAD_SAFE: -// -#ifdef _THREAD_SAFE -# define BOOST_HAS_THREADS -#endif - -#define BOOST_COMPILER "IBM Visual Age" BOOST_STRINGIZE(__IBMCPP__) - -// -// versions check: -// we don't support Visual age prior to version 5: -#if __IBMCPP__ < 500 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 500: -#if (__IBMCPP__ > 500) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp deleted file mode 100644 index 54374bb9c8d..00000000000 --- a/include/boost/config/compiler/visualc.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// (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 : 4503 ) // warning: decorated name length exceeded - -#if _MSC_VER <= 1200 // 1200 == VC++ 6.0 -#pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_VOID_RETURNS - // disable min/max macro defines on vc6: - // -# ifndef NOMINMAX -# define NOMINMAX -# endif -#endif - -#if (_MSC_VER <= 1300) // || !defined(BOOST_STRICT_CONFIG) // VC7 Beta 2 or later - -#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -#endif - -# 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_NO_FUNCTION_TEMPLATE_ORDERING -# define BOOST_NO_USING_TEMPLATE -# define BOOST_NO_SWPRINTF - // - // disable min/max macros if defined: - // -# ifdef min -# undef min -# endif -# ifdef max -# undef max -# endif - -#endif - -#if _MSC_VER <= 1301 -# define BOOST_NO_SWPRINTF -#endif - -#ifndef _NATIVE_WCHAR_T_DEFINED -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -// -// check for exception handling support: -#ifndef _CPPUNWIND -# define BOOST_NO_EXCEPTIONS -#endif - -// -// __int64 support: -// -#if (_MSC_VER >= 1200) && defined(_MSC_EXTENSIONS) -# define BOOST_HAS_MS_INT64 -#endif -// -// disable Win32 API's if compiler extentions are -// turned off: -// -#ifndef _MSC_EXTENSIONS -# define BOOST_DISABLE_WIN32 -#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 1301: -#if (_MSC_VER > 1301) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - - - diff --git a/include/boost/config/platform/aix.hpp b/include/boost/config/platform/aix.hpp deleted file mode 100644 index 670bf0bcbb9..00000000000 --- a/include/boost/config/platform/aix.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (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 - -// Threading API's: -#define BOOST_HAS_PTHREAD_DELAY_NP -#define BOOST_HAS_PTHREAD_YIELD - -// boilerplate code: -#include - - - diff --git a/include/boost/config/platform/amigaos.hpp b/include/boost/config/platform/amigaos.hpp deleted file mode 100644 index 7aa85d19287..00000000000 --- a/include/boost/config/platform/amigaos.hpp +++ /dev/null @@ -1,15 +0,0 @@ - -// (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_PLATFORM "AmigaOS" - -#define BOOST_DISABLE_THREADS -#define BOOST_NO_CWCHAR -#define BOOST_NO_STD_WSTRING -#define BOOST_NO_INTRINSIC_WCHAR_T - diff --git a/include/boost/config/platform/beos.hpp b/include/boost/config/platform/beos.hpp deleted file mode 100644 index b2c0de5f38a..00000000000 --- a/include/boost/config/platform/beos.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// (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 - -// boilerplate code: -#include - - diff --git a/include/boost/config/platform/bsd.hpp b/include/boost/config/platform/bsd.hpp deleted file mode 100644 index 0af5364f52e..00000000000 --- a/include/boost/config/platform/bsd.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// generic BSD config options: - -#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) -#error "This platform is not BSD" -#endif - -#ifdef __FreeBSD__ -#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) -#elif defined(__NetBSD__) -#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) -#elif defined(__OpenBSD__) -#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) -#endif - -// -// is this the correct version check? -// FreeBSD has but does not -// advertise the fact in : -// -#if defined(__FreeBSD__) && (__FreeBSD__ >= 3) -# define BOOST_HAS_NL_TYPES_H -#endif - -// -// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in -// and not in -// -#if defined(__FreeBSD__) && (__FreeBSD__ <= 3) -# define BOOST_HAS_PTHREADS -#endif - -// -// No wide character support in the BSD header files: -// -#define BOOST_NO_CWCHAR - -// -// The BSD has macros only, no functions: -// -#define BOOST_NO_CTYPE_FUNCTIONS - -// -// thread API's not auto detected: -// -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - - diff --git a/include/boost/config/platform/cygwin.hpp b/include/boost/config/platform/cygwin.hpp deleted file mode 100644 index 6e77bb5b3e6..00000000000 --- a/include/boost/config/platform/cygwin.hpp +++ /dev/null @@ -1,37 +0,0 @@ -// (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 - -// -// Threading API: -// See if we have POSIX threads, if we do use them, otherwise -// revert to native Win threads. -#define BOOST_HAS_UNISTD_H -#include -#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) -# define BOOST_HAS_PTHREADS -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#else -# if !defined(BOOST_HAS_WINTHREADS) -# define BOOST_HAS_WINTHREADS -# endif -# define BOOST_HAS_FTIME -#endif - -// boilerplate code: -#include - - - diff --git a/include/boost/config/platform/hpux.hpp b/include/boost/config/platform/hpux.hpp deleted file mode 100644 index 776694610f5..00000000000 --- a/include/boost/config/platform/hpux.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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-UX" - -// In principle, HP-UX has a nice under the name -// However, it has the following problem: -// Use of UINT32_C(0) results in "0u l" for the preprocessed source -// (verifyable with gcc 2.95.3, assumed for HP aCC) -// #define BOOST_HAS_STDINT_H - -#define BOOST_NO_SWPRINTF -#define BOOST_NO_CWCTYPE - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - -#ifndef BOOST_HAS_GETTIMEOFDAY -// gettimeofday is always available -#define BOOST_HAS_GETTIMEOFDAY -#endif diff --git a/include/boost/config/platform/irix.hpp b/include/boost/config/platform/irix.hpp deleted file mode 100644 index d137ffc3997..00000000000 --- a/include/boost/config/platform/irix.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (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 -// -// these are not auto detected by POSIX feature tests: -// -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - - diff --git a/include/boost/config/platform/linux.hpp b/include/boost/config/platform/linux.hpp deleted file mode 100644 index 61fb23c2593..00000000000 --- a/include/boost/config/platform/linux.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// (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" - -// make sure we have __GLIBC_PREREQ if available at all -#include - -// -// added to glibc 2.1.1 -// We can only test for 2.1 though: -// -#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) - // defines int64_t unconditionally, but defines - // int64_t only if __GNUC__. Thus, assume a fully usable - // only when using GCC. -# if defined __GNUC__ -# define BOOST_HAS_STDINT_H -# endif -#endif - -// -// como on linux doesn't have std:: c functions: -// -#ifdef __COMO__ -# define BOOST_NO_STDC_NAMESPACE -#endif - -// -// If glibc is past version 2 then we definitely have -// gettimeofday, earlier versions may or may not have it: -// -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -# define BOOST_HAS_GETTIMEOFDAY -#endif - -#ifdef __USE_POSIX199309 -# define BOOST_HAS_NANOSLEEP -#endif - -#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) -// __GLIBC_PREREQ is available since 2.1.2 - - // swprintf is available since glibc 2.2.0 -# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98)) -# define BOOST_NO_SWPRINTF -# endif -#else -# define BOOST_NO_SWPRINTF -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - -#ifndef __GNUC__ -// -// if the compiler is not gcc we still need to be able to parse -// the GNU system headers, some of which (mainly ) -// use GNU specific extensions: -// -# ifndef __extension__ -# define __extension__ -# endif -# ifndef __const__ -# define __const__ const -# endif -# ifndef __volatile__ -# define __volatile__ volatile -# endif -# ifndef __signed__ -# define __signed__ signed -# endif -# ifndef __typeof__ -# define __typeof__ typeof -# endif -# ifndef __inline__ -# define __inline__ inline -# endif -#endif - diff --git a/include/boost/config/platform/macos.hpp b/include/boost/config/platform/macos.hpp deleted file mode 100644 index 51d030121e1..00000000000 --- a/include/boost/config/platform/macos.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// (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_NO_CTYPE_FUNCTIONS -# define BOOST_NO_CWCHAR -# ifndef BOOST_HAS_UNISTD_H -# define BOOST_HAS_UNISTD_H -# endif -// boilerplate code: -# include -# ifndef BOOST_HAS_STDINT_H -# define BOOST_HAS_STDINT_H -# endif - -// -// BSD runtime has pthreads, sched_yield and gettimeofday, -// of these only pthreads are advertised in , so set the -// other options explicitly: -// -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_GETTIMEOFDAY - -# ifndef __APPLE_CC__ - -// GCC strange "ignore std" mode works better if you pretend everything -// is in the std namespace, for the most part. - -# define BOOST_NO_STDC_NAMESPACE -# endif - -#else - -// We will eventually support threads in non-Carbon builds, but we do -// not support this yet. -# if TARGET_CARBON - -# define BOOST_HAS_MPTASKS - -// The MP task implementation of Boost Threads aims to replace MP-unsafe -// parts of the MSL, so we turn on threads unconditionally. -# define BOOST_HAS_THREADS - -// The remote call manager depends on this. -# define BOOST_BIND_ENABLE_PASCAL - -# endif - -#endif diff --git a/include/boost/config/platform/solaris.hpp b/include/boost/config/platform/solaris.hpp deleted file mode 100644 index fae4293d38e..00000000000 --- a/include/boost/config/platform/solaris.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// (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" - -#define BOOST_HAS_GETTIMEOFDAY - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - - - diff --git a/include/boost/config/platform/win32.hpp b/include/boost/config/platform/win32.hpp deleted file mode 100644 index 491b8c3d95d..00000000000 --- a/include/boost/config/platform/win32.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// (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 - -#ifndef BOOST_DISABLE_WIN32 -// -// Win32 will normally be using native Win32 threads, -// but there is a pthread library avaliable as an option: -// -#ifndef BOOST_HAS_PTHREADS -# define BOOST_HAS_WINTHREADS -#endif - -// WEK: Added -#define BOOST_HAS_FTIME - -#endif diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp deleted file mode 100644 index 5b13f7eafa1..00000000000 --- a/include/boost/config/stdlib/dinkumware.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// Dinkumware standard library config: - -#if !defined(_YVALS) && !defined(_CPPLIB_VER) -#include -#if !defined(_YVALS) && !defined(_CPPLIB_VER) -#error This is not the Dinkumware lib! -#endif -#endif - - -#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306) - // full dinkumware 3.06 and above - // fully conforming provided the compiler supports it: -# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(_STD) // can be defined in yvals.h -# define BOOST_NO_STDC_NAMESPACE -# endif -# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) -# define BOOST_NO_STD_ALLOCATOR -# 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 - // C lib functions aren't in namespace std either: -# define BOOST_NO_STDC_NAMESPACE -# endif -// 3.06 appears to have (non-sgi versions of) & , -// and no at all -#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) || !defined(_CPPLIB_VER) || _CPPLIB_VER < 306 - // if we're using a dinkum lib that's - // been configured for VC6 then there is - // no iterator traits (true even for icl) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -#ifdef _CPPLIB_VER -# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER) -#else -# define BOOST_STDLIB "Dinkumware standard library version 1.x" -#endif - - - - diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp deleted file mode 100644 index 7493677c077..00000000000 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (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 -# define BOOST_NO_STD_WSTRING -#endif - -#ifndef _GLIBCPP_USE_LONG_LONG -// May have been set by compiler/*.hpp, but "long long" without library -// support is useless. -# undef BOOST_HAS_LONG_LONG -#endif - diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp deleted file mode 100644 index 8d68cee5119..00000000000 --- a/include/boost/config/stdlib/modena.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// (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. - -// Modena C++ standard library (comes with KAI C++) - -#if !defined(MSIPL_COMPILE_H) -# include -# if !defined(__MSIPL_COMPILE_H) -# error "This is not the Modena C++ library!" -# endif -#endif - -#ifndef MSIPL_NL_TYPES -#define BOOST_NO_STD_MESSAGES -#endif - -#ifndef MSIPL_WCHART -#define BOOST_NO_STD_WSTRING -#endif - -#define BOOST_STDLIB "Modena C++ standard library" - - - - diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp deleted file mode 100644 index 009e779bf21..00000000000 --- a/include/boost/config/stdlib/msl.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// Metrowerks standard library: - -#ifndef __MSL_CPP__ -# include -# ifndef __MSL_CPP__ -# error This is not the MSL standard library! -# endif -#endif - -#if __MSL_CPP__ >= 0x6000 // Pro 6 -# define BOOST_HAS_HASH -# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks -#endif -#define BOOST_HAS_SLIST - -#if __MSL_CPP__ < 0x6209 -# define BOOST_NO_STD_MESSAGES -#endif - -// check C lib version for -#include - -#if defined(__MSL__) && (__MSL__ >= 0x5000) -# define BOOST_HAS_STDINT_H -# define BOOST_HAS_UNISTD_H - // boilerplate code: -# include -#endif - -#if _MWMT -# define BOOST_HAS_THREADS -#endif - - -#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) - - - - - - - - diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp deleted file mode 100644 index 07e37292806..00000000000 --- a/include/boost/config/stdlib/roguewave.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// Rogue Wave std lib: - -#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) -# include -# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) -# error This is not the Rogue Wave standard library -# endif -#endif -// -// figure out a consistent version number: -// -#ifndef _RWSTD_VER -# define BOOST_RWSTD_VER 0x010000 -#elif _RWSTD_VER < 0x010000 -# define BOOST_RWSTD_VER (_RWSTD_VER << 8) -#else -# define BOOST_RWSTD_VER _RWSTD_VER -#endif - -#ifndef _RWSTD_VER -# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)" -#else -# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER) -#endif - -// -// Prior to version 2.2.0 the primary template for std::numeric_limits -// does not have compile time constants, even though specializations 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 specialization: -// -#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 there 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 -// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR -// on HP aCC systems even though the allocator is in fact broken): -// -#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100) -# 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 specialization support: -// -#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - #define BOOST_NO_STD_DISTANCE -#endif - -// -// Some versions of the rogue wave library don't have assignable -// OutputIterators: -// -#if BOOST_RWSTD_VER < 0x020100 -# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN -#endif - - diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp deleted file mode 100644 index dd086c2c953..00000000000 --- a/include/boost/config/stdlib/sgi.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -// generic SGI STL: - -#if !defined(__STL_CONFIG_H) -# include -# if !defined(__STL_CONFIG_H) -# error "This is not the SGI STL!" -# endif -#endif - -// -// No std::iterator traits without partial specialisation: -// -#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// No std::stringstream with gcc < 3 -// -#if defined(__GNUC__) && (__GNUC__ < 3) && \ - ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \ - !defined(__STL_USE_NEW_IOSTREAMS) || \ - defined(__APPLE_CC__) - // Note that we only set this for GNU C++ prior to 2.95 since the - // latest patches for that release do contain a minimal - // If you are running a 2.95 release prior to 2.95.3 then this will need - // setting, but there is no way to detect that automatically (other - // than by running the configure script). - // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't - // have . -# define BOOST_NO_STRINGSTREAM -#endif - -// -// Assume no std::locale without own iostreams (this may be an -// incorrect assumption in some cases): -// -#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -#endif - -// -// Original native SGI streams have non-standard std::messages facet: -// -#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -#endif - -// -// SGI's new iostreams have missing "const" in messages<>::open -// -#if defined(__sgi) && (_COMPILER_VERSION <= 730) && defined(__STL_USE_NEW_IOSTREAMS) -# define BOOST_NO_STD_MESSAGES -#endif - -// -// No template iterator constructors, or std::allocator -// without member templates: -// -#if !defined(__STL_MEMBER_TEMPLATES) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// We always have SGI style hash_set, hash_map, and slist: -// -#define BOOST_HAS_HASH -#define BOOST_HAS_SLIST - -// -// If this is GNU libstdc++2, then no and no std::wstring: -// -#if (defined(__GNUC__) && (__GNUC__ < 3)) -# include -# if defined(__BASTRING__) -# define BOOST_NO_LIMITS -// Note: will provide compile-time constants -# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# 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 - -// -// Intrinsic type_traits support. -// The SGI STL has it's own __type_traits class, which -// has intrinsic compiler support with SGI's compilers. -// Whatever map SGI style type traits to boost equivalents: -// -#define BOOST_HAS_SGI_TYPE_TRAITS - -#define BOOST_STDLIB "SGI standard library" - diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp deleted file mode 100644 index 5742e3f0dd3..00000000000 --- a/include/boost/config/stdlib/stlport.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// (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) && !defined(_STLPORT_VERSION) -# include -# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -# 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 - -// -// If the streams are not native, and we have a "using ::x" compiler bug -// then the io stream facets are not available in namespace std:: -// -#if !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) -# define BOOST_NO_STD_LOCALE -#endif -#if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) -# define BOOST_NO_STD_LOCALE -#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 - -#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) -# 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: -// -// -// Harold Howe says: -// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with -// BCB6 does cause problems. If we detect BCB6, then don't define -// BOOST_NO_STDC_NAMESPACE -// -#if !defined(__BORLANDC__) || (__BORLANDC__ < 0x560) -# 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 -#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 )) -// disable this for now, it causes too many problems, we need a better -// fix for broken reverse iterators: -// # 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 - -// -// If STLport thinks there are no wide functions, etc. is not working; but -// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import -// into std:: ourselves). -// -#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE) -# define BOOST_NO_CWCHAR -# define BOOST_NO_CWTYPE -#endif - -// -// Borland ships a version of STLport with C++ Builder 6 that lacks -// hashtables and the like: -// -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) -# undef BOOST_HAS_HASH -#endif - - -#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) - - - - diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp deleted file mode 100644 index ad4d2fc470f..00000000000 --- a/include/boost/config/stdlib/vacpp.hpp +++ /dev/null @@ -1,13 +0,0 @@ -// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and -// distribute this software is granted provided this copyright notice appears -// in all copies. This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. - -// See http://www.boost.org for most recent version. - -#define BOOST_HAS_MACRO_USE_FACET -#define BOOST_NO_STD_ALLOCATOR - -#define BOOST_STDLIB "Visual Age default standard library" - - diff --git a/include/boost/type_traits/alignment_traits.hpp b/include/boost/type_traits/alignment_traits.hpp deleted file mode 100644 index b509f673619..00000000000 --- a/include/boost/type_traits/alignment_traits.hpp +++ /dev/null @@ -1,208 +0,0 @@ - -// (C) Copyright John Maddock 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. - -// -// defines alignment_of: - -#ifndef ALIGNMENT_TYPE_TRAITS_HPP -#define ALIGNMENT_TYPE_TRAITS_HPP - -#include -#include -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#include -#include -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4121) // alignment is sensitive to packing -#endif - -namespace boost{ -template struct alignment_of; - -// -// get the alignment of some arbitrary type: -namespace detail{ - -template -struct alignment_of_hack -{ - char c; - T t; - alignment_of_hack(); -}; - - -template -struct alignment_logic -{ - BOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S); -}; - -} // namespace detail - -template -struct alignment_of -{ - BOOST_STATIC_CONSTANT(std::size_t, value = - (::boost::detail::alignment_logic< - sizeof(detail::alignment_of_hack) - sizeof(T), - sizeof(T) - >::value)); -}; - -// -// references have to be treated specially, assume -// that a reference is just a special pointer: -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct alignment_of -{ -public: - BOOST_STATIC_CONSTANT(std::size_t, value = ::boost::alignment_of::value); -}; -#endif -// -// void has to be treated specially: -template <> -struct alignment_of -{ BOOST_STATIC_CONSTANT(std::size_t, value = 0); }; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct alignment_of -{ BOOST_STATIC_CONSTANT(std::size_t, value = 0); }; -template <> -struct alignment_of -{ BOOST_STATIC_CONSTANT(std::size_t, value = 0); }; -template <> -struct alignment_of -{ BOOST_STATIC_CONSTANT(std::size_t, value = 0); }; -#endif - -namespace detail { -class alignment_dummy; -typedef void (*function_ptr)(); -typedef int (alignment_dummy::*member_ptr); -typedef int (alignment_dummy::*member_function_ptr)(); - -/* - * The ct_if implementation is temporary code. It will be replaced with MPL - * in the future... - */ -struct select_then -{ - template - struct result - { - typedef Then type; - }; -}; - -struct select_else -{ - template - struct result - { - typedef Else type; - }; -}; - -template -struct ct_if_selector -{ - typedef select_then type; -}; - -template<> -struct ct_if_selector -{ - typedef select_else type; -}; - -template -struct ct_if -{ - typedef typename ct_if_selector::type select; - typedef typename select::template result::type type; -}; - -#define BOOST_TT_ALIGNMENT_TYPES BOOST_PP_TUPLE_TO_LIST( \ - 11, ( \ - char, short, int, long, float, double, long double \ - , void*, function_ptr, member_ptr, member_function_ptr)) - -#define BOOST_TT_CHOOSE_LOWER_ALIGNMENT(R,P,I,T) \ - typename ct_if< \ - alignment_of::value <= target, T, char>::type BOOST_PP_CAT(t,I); - -#define BOOST_TT_CHOOSE_T(R,P,I,T) T BOOST_PP_CAT(t,I); - -template -union lower_alignment -{ - BOOST_PP_LIST_FOR_EACH_I( - BOOST_TT_CHOOSE_LOWER_ALIGNMENT - , ignored, BOOST_TT_ALIGNMENT_TYPES) -}; - -union max_align -{ - BOOST_PP_LIST_FOR_EACH_I( - BOOST_TT_CHOOSE_T - , ignored, BOOST_TT_ALIGNMENT_TYPES) -}; - -#undef BOOST_TT_ALIGNMENT_TYPES -#undef BOOST_TT_CHOOSE_LOWER_ALIGNMENT -#undef BOOST_TT_CHOOSE_T - -template -struct is_aligned -{ - BOOST_STATIC_CONSTANT(bool, - value = (TAlign >= Align) & (TAlign % Align == 0)); -}; - -} - -// This alignment method originally due to Brian Parker, implemented by David -// Abrahams, and then ported here by Doug Gregor. -template -class type_with_alignment -{ - typedef detail::lower_alignment t1; - - typedef type_with_alignment this_type; - - typedef typename detail::ct_if< - (detail::is_aligned<(alignment_of::value), Align>::value) - , t1 - , detail::max_align - >::type align_t; - - BOOST_STATIC_CONSTANT(std::size_t, found = alignment_of::value); - - BOOST_STATIC_ASSERT(found >= Align); - BOOST_STATIC_ASSERT(found % Align == 0); - -public: - typedef align_t type; -}; - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // ALIGNMENT_TYPE_TRAITS_HPP diff --git a/include/boost/type_traits/arithmetic_traits.hpp b/include/boost/type_traits/arithmetic_traits.hpp deleted file mode 100644 index 1d111c4b984..00000000000 --- a/include/boost/type_traits/arithmetic_traits.hpp +++ /dev/null @@ -1,266 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 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 most recent version including documentation. -// -// defines traits classes for arithmetic types: -// is_void, is_integral, is_float, is_arithmetic, is_fundamental. -// - -// Revision History: -// Feb 19 2001 Added #include (David Abrahams) - -#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP -#define BOOST_ARITHMETIC_TYPE_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif - -#include // for ULLONG_MAX/ULONG_LONG_MAX - -namespace boost{ - -//* is a type T void - is_void -template struct is_void{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template <> struct is_void{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3) -// as an extention we include long long, as this is likely to be added to the -// standard at a later date -template struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -# if defined(BOOST_HAS_LONG_LONG) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#elif defined(BOOST_HAS_MS_INT64) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral<__int64> -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif - -//* is a type T a floating-point type described in the standard (3.9.1p8) -template struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -// -// declare cv-qualified specialisations of these templates only -// if BOOST_NO_CV_SPECIALIZATIONS is not defined: -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct is_void -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_void -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_void -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -#ifndef BOOST_NO_CV_SPECIALIZATIONS -// const-variations: -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -# if defined(BOOST_HAS_LONG_LONG) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#elif defined(BOOST_HAS_MS_INT64) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif //__int64 - -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -// volatile-variations: -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -# if defined(BOOST_HAS_LONG_LONG) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#elif defined(BOOST_HAS_MS_INT64) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif //__int64 - -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -// const-volatile-variations: -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -# if defined(BOOST_HAS_LONG_LONG) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#elif defined(BOOST_HAS_MS_INT64) -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_integral -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif //__int64 - -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> struct is_float -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -#endif // BOOST_NO_CV_SPECIALIZATIONS - -//* is a type T an arithmetic type described in the standard (3.9.1p8) -template -struct is_arithmetic -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - ::boost::is_integral::value, - ::boost::is_float::value - >::value)); -}; - -//* is a type T a fundamental type described in the standard (3.9.1) -template -struct is_fundamental -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - ::boost::is_arithmetic::value, - ::boost::is_void::value - >::value)); -}; - -} // namespace boost - -#endif - - - - - - - diff --git a/include/boost/type_traits/array_traits.hpp b/include/boost/type_traits/array_traits.hpp deleted file mode 100644 index 04f8488522e..00000000000 --- a/include/boost/type_traits/array_traits.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 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 most recent version including documentation. -// -#ifndef BOOST_TT_ARRAY_TRAITS_HPP -# define BOOST_TT_ARRAY_TRAITS_HPP -# include - -namespace boost { - -/********************************************** - * - * is_array - * - **********************************************/ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template struct is_array -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_array -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_array -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_array -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_array -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -namespace detail -{ - using ::boost::type_traits::yes_type; - using ::boost::type_traits::no_type; - using ::boost::type_traits::wrap; - - template T(* is_array_helper1(wrap) )(wrap); - char is_array_helper1(...); - - template no_type is_array_helper2(T(*)(wrap)); - yes_type is_array_helper2(...); -} - -template -struct is_array -{ -public: - BOOST_STATIC_CONSTANT( - bool, value = sizeof( - ::boost::detail::is_array_helper2( - ::boost::detail::is_array_helper1( - ::boost::type_traits::wrap()))) == 1 - ); -}; - -template <> -struct is_array -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -# ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_array -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_array -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_array -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -# endif -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace boost - -#endif // BOOST_TT_ARRAY_TRAITS_HPP diff --git a/include/boost/type_traits/composite_traits.hpp b/include/boost/type_traits/composite_traits.hpp deleted file mode 100644 index 4a4980ec2b2..00000000000 --- a/include/boost/type_traits/composite_traits.hpp +++ /dev/null @@ -1,990 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 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 most recent version including documentation. -// -// defines traits classes for composite types: -// is_array, is_pointer, is_reference, is_member_pointer, is_enum, is_union. -// -// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). -// Fixes for is_array are based on a newgroup posting by Jonathan Lundquist. - -// -// Revision History: -// 21st March 2001: -// Fixed is_enum so that it works with incomplete types. - -#ifndef BOOST_COMPOSITE_TYPE_TRAITS_HPP -#define BOOST_COMPOSITE_TYPE_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -# include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -# include -#endif -#ifndef BOOST_CONVERSION_TYPE_TRAITS_HPP -# include -#endif -#ifndef BOOST_CV_TYPE_TRAITS_HPP -# include -#endif -#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP -# include -#endif -#ifndef BOOST_TRANSFORM_TRAITS_HPP -# include -#endif -#ifndef BOOST_TT_REFERENCE_TRAITS_HPP -# include -#endif -#ifndef BOOST_TT_ARRAY_TRAITS_HPP -# include -#endif -#ifndef BOOST_TYPE_TRAITS_IS_CLASS_HPP -# include -#endif - -namespace boost{ - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -namespace detail{ - - struct pointer_helper - { - pointer_helper(const volatile void*); - }; - yes_type BOOST_TT_DECL is_pointer_helper(pointer_helper); - no_type BOOST_TT_DECL is_pointer_helper(...); - -::boost::type_traits::no_type BOOST_TT_DECL is_function_tester(...); -template -::boost::type_traits::yes_type is_function_tester(R (*)(void)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28)); -template -::boost::type_traits::yes_type is_function_tester(R (*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29)); -} // namespace detail -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -namespace detail -{ - // Utility metafunction which returns true if its argument is not an - // array and not a reference. - template - struct neither_array_nor_reference : ::boost::type_traits::ice_not< - ::boost::type_traits::ice_or< - ::boost::is_reference::value - , ::boost::is_array::value - >::value> - {}; -} - -/********************************************** - * - * is_pointer - * - **********************************************/ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -namespace detail{ -template struct is_pointer_helper -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_pointer_helper -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_pointer_helper -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_pointer_helper -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_pointer_helper -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -} // namespace detail -template struct is_pointer -{ BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper::value, ::boost::type_traits::ice_not< ::boost::is_member_pointer::value >::value >::value)); }; -#else - -namespace detail -{ - // is_pointer implementation - template - struct is_pointer_select : ::boost::type_traits::false_unary_metafunction - { - }; - - template <> - struct is_pointer_select - { - template - struct apply - { - static T& make_t(); - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - (1 == sizeof(is_pointer_helper(make_t()))), - (1 == sizeof(is_function_tester(make_t()))) - >::value)); - }; - }; -} - -template -struct is_pointer : ::boost::detail::is_pointer_select< - ::boost::detail::neither_array_nor_reference::value ->::template apply -{}; - -template <> -struct is_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#endif -#endif - -/********************************************** - * - * is_union - * - **********************************************/ -template struct is_union -{ -private: - typedef typename remove_cv::type cvt; -public: - BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt)); -}; - -/********************************************** - * - * is_enum - * - **********************************************/ -namespace detail -{ - struct int_convertible - { - int_convertible(int); - }; - - // Don't evaluate convertibility to int_convertible unless the type - // is non-arithmetic. This suppresses warnings with GCC. - template - struct is_enum_helper - { - template - struct type - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - }; - - template <> - struct is_enum_helper - { - template - struct type - : ::boost::is_convertible - { - }; - }; -} // namespace detail -#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551)) -template struct is_enum -{ -private: - typedef ::boost::add_reference ar_t; - typedef typename ar_t::type r_type; - -# if (defined(__MWERKS__) && __MWERKS__ >= 0x3000) || BOOST_MSVC > 1301 || defined(BOOST_NO_COMPILER_CONFIG) - BOOST_STATIC_CONSTANT(bool, selector = - (::boost::type_traits::ice_or< - ::boost::is_arithmetic::value - , ::boost::is_reference::value - // We MUST do this on conforming compilers in order to - // correctly deduce that noncopyable types are not enums (dwa - // 2002/04/15)... - , ::boost::is_class::value - >::value)); -# else - BOOST_STATIC_CONSTANT(bool, selector = - (::boost::type_traits::ice_or< - ::boost::is_arithmetic::value - , ::boost::is_reference::value - // However, not doing this on non-conforming compilers prevents - // a dependency recursion. - >::value)); -# endif -#ifdef __BORLANDC__ - typedef ::boost::detail::is_enum_helper< ::boost::is_enum::selector> se_t; -#else - typedef ::boost::detail::is_enum_helper se_t; -#endif - typedef typename se_t::template type helper; -public: - BOOST_STATIC_CONSTANT(bool, value = helper::value); -}; - -// Specializations suppress some nasty warnings with GCC -template<> -struct is_enum -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template<> -struct is_enum -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template<> -struct is_enum -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#else // __BORLANDC__ -// -// buggy is_convertible prevents working -// implementation of is_enum: -template struct is_enum -{ -public: - BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_ENUM(T)); -}; -#endif - -/********************************************** - * - * is_member_pointer - * - **********************************************/ -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__) -template struct is_member_pointer -{ BOOST_STATIC_CONSTANT(bool, value = ::boost::is_member_function_pointer::value); }; -template struct is_member_pointer -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -/********************************************** - * - * is_member_function_pointer - * - **********************************************/ -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = false); }; - -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -// Metrowerks thinks this creates ambiguities -# if !defined(__MWERKS__) || __MWERKS__ >= 0x3000 - -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_member_function_pointer{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -# endif // __MWERKS__ < 0x3000 -#else - -namespace detail{ -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(void)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28)); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29)); - -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(void) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28) const); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29) const); - -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(void) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28) volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29) volatile); - -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(void) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28) const volatile); -template -::boost::type_traits::yes_type is_member_function_pointer_helper(R (T::*)(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29) const volatile); -::boost::type_traits::no_type BOOST_TT_DECL is_member_function_pointer_helper(...); - -template -::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_helper(R T::*); -::boost::type_traits::no_type BOOST_TT_DECL is_member_pointer_helper(...); - -} - -namespace detail -{ - template - struct is_member_function_pointer_select - : ::boost::type_traits::false_unary_metafunction - { - }; - - template <> - struct is_member_function_pointer_select - { - template - struct apply - { - static T& make_t(); - - BOOST_STATIC_CONSTANT( - bool, value = (1 == sizeof(detail::is_member_function_pointer_helper(make_t()))) ); - }; - }; -} - -template -struct is_member_function_pointer : ::boost::detail::is_member_function_pointer_select< - ::boost::detail::neither_array_nor_reference::value ->::template apply -{}; - -template <> -struct is_member_function_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_member_function_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_member_function_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_member_function_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#endif -#ifdef __BORLANDC__ -template struct is_member_pointer -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_member_pointer -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#else - -namespace detail -{ - template - struct is_member_pointer_select - : ::boost::type_traits::false_unary_metafunction - { - }; - - template <> - struct is_member_pointer_select - { - template - struct apply - { - static T& make_t(); - - BOOST_STATIC_CONSTANT( - bool, value = - (::boost::type_traits::ice_or< - (1 == sizeof(detail::is_member_function_pointer_helper(make_t()))), - (1 == sizeof(detail::is_member_pointer_helper(make_t()))) - >::value) ); - }; - }; -} - -template -struct is_member_pointer : ::boost::detail::is_member_pointer_select< - ::boost::detail::neither_array_nor_reference::value ->::template apply -{}; - -template <> -struct is_member_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_member_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_member_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_member_pointer -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#endif -#endif // __BORLANDC__ - -#endif - - -} // namespace boost - -#endif // BOOST_COMPOSITE_TYPE_TRAITS_HPP - - - - - diff --git a/include/boost/type_traits/conversion_traits.hpp b/include/boost/type_traits/conversion_traits.hpp deleted file mode 100644 index d8c01987560..00000000000 --- a/include/boost/type_traits/conversion_traits.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright (C) 2000 John Maddock (john_maddock@compuserve.com) -// Copyright (C) 2000 Jeremy Siek (jsiek@lsc.nd.edu) -// Copyright (C) 1999, 2000 Jaakko J„rvi (jaakko.jarvi@cs.utu.fi) -// -// Permission to copy and use this software is granted, -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted, -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. -// - -#ifndef BOOST_CONVERSION_TYPE_TRAITS_HPP -#define BOOST_CONVERSION_TYPE_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP -#include -#endif -// -// is one type convertable to another? -// -// there are multiple versions of the is_convertible -// template, almost every compiler seems to require its -// own version. -// -// Thanks to Andrei Alexandrescu for the original version of the -// conversion detection technique! -// - -namespace boost{ - -#ifdef BOOST_MSVC - -// -// MS specific version: -// -namespace detail{ - - // This workaround is necessary to handle when From is void - // which is normally taken care of by the partial specialization - // of the is_convertible class. - using ::boost::type_traits::yes_type; - using ::boost::type_traits::no_type; - - struct from_not_void_conversion { - template - struct n_bind { - static no_type BOOST_TT_DECL _m_check(...); - static yes_type BOOST_TT_DECL _m_check(To); - public: - void foo(); // avoid warning about all members being private - static From _m_from; - enum { exists = sizeof( _m_check(_m_from) ) == sizeof(yes_type) }; - }; - }; - struct from_is_void_conversion { - template - struct n_bind { - enum { exists = ::boost::is_void::value }; - }; - }; - - template - struct conversion_helper { - typedef from_not_void_conversion type; - }; - template <> - struct conversion_helper { - typedef from_is_void_conversion type; - }; -} // namespace detail - -template -struct is_convertible -{ - typedef typename detail::conversion_helper::type Selector; - typedef typename Selector::template n_bind Conversion; -public: - enum { value = Conversion::exists }; -}; - -#elif defined(__BORLANDC__) -// -// special version for Borland compilers -// this version breaks when used for some -// UDT conversions: -// -template -struct is_convertible -{ -private: -#pragma option push -w-8074 - // This workaround for Borland breaks the EDG C++ frontend, - // so we only use it for Borland. - template - struct checker - { - static type_traits::no_type BOOST_TT_DECL _m_check(...); - static type_traits::yes_type BOOST_TT_DECL _m_check(T); - }; - static From _m_from; -public: - static const bool value = sizeof( checker::_m_check(_m_from) ) == sizeof(type_traits::yes_type); - - void foo(); // avoid warning about all members being private -#pragma option pop -}; - -#elif defined(__GNUC__) -// -// special version for gcc compiler -// -namespace detail{ - struct any_conversion - { - template - any_conversion(const T&); - template - any_conversion(T&); - }; - template - struct checker - { - static boost::type_traits::no_type _m_check(any_conversion ...); - static boost::type_traits::yes_type _m_check(T, int); - }; -} // namespace detail -template -struct is_convertible -{ -private: - static From _m_from; -public: - static const bool value = sizeof( detail::checker::_m_check(_m_from, 0) ) == sizeof(type_traits::yes_type); - - void foo(); // avoid warning about all members being private -}; - -// Declare specializations of is_convertible for all of the floating -// types to all of the integral types. This suppresses some nasty -// warnings - -# define BOOST_IS_CONVERTIBLE(T1,T2) template<>struct is_convertible{static const bool value=true;}; -# define BOOST_IS_CONVERTIBLE2(T1,T2) \ - BOOST_IS_CONVERTIBLE(T1,signed T2) \ - BOOST_IS_CONVERTIBLE(T1,unsigned T2) - -# define BOOST_FLOAT_IS_CONVERTIBLE(F) \ - BOOST_IS_CONVERTIBLE(F,char) \ - BOOST_IS_CONVERTIBLE2(F,char) \ - BOOST_IS_CONVERTIBLE2(F,short) \ - BOOST_IS_CONVERTIBLE2(F,int) \ - BOOST_IS_CONVERTIBLE2(F,long) \ - BOOST_IS_CONVERTIBLE2(F,long long) - -BOOST_FLOAT_IS_CONVERTIBLE(float) -BOOST_FLOAT_IS_CONVERTIBLE(double) -BOOST_FLOAT_IS_CONVERTIBLE(long double) -BOOST_FLOAT_IS_CONVERTIBLE(float const) -BOOST_FLOAT_IS_CONVERTIBLE(double const) -BOOST_FLOAT_IS_CONVERTIBLE(long double const) -BOOST_FLOAT_IS_CONVERTIBLE(float volatile) -BOOST_FLOAT_IS_CONVERTIBLE(double volatile) -BOOST_FLOAT_IS_CONVERTIBLE(long double volatile) -BOOST_FLOAT_IS_CONVERTIBLE(float const volatile) -BOOST_FLOAT_IS_CONVERTIBLE(double const volatile) -BOOST_FLOAT_IS_CONVERTIBLE(long double const volatile) -# undef BOOST_FLOAT_IS_CONVERTIBLE -# undef BOOST_IS_CONVERTIBLE2 -# undef BOOST_IS_CONVERTIBLE -#else - -template -struct is_convertible -{ -private: - static type_traits::no_type BOOST_TT_DECL _m_check(...); - static type_traits::yes_type BOOST_TT_DECL _m_check(To); - static From _m_from; -public: - BOOST_STATIC_CONSTANT(bool, value = sizeof( _m_check(_m_from) ) == sizeof(type_traits::yes_type)); - void foo(); // avoid warning about all members being private -}; - -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -// A definition is required even for integral static constants -template -const bool is_convertible::value; -#endif - - -#endif // is_convertible - -// -// Now add the full and partial specialisations -// for void types, these are common to all the -// implementation above: -// -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS - -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#endif -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_convertible -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -#endif - -} // namespace boost - -#endif // include guard - - diff --git a/include/boost/type_traits/cv_traits.hpp b/include/boost/type_traits/cv_traits.hpp deleted file mode 100644 index b10eac689b7..00000000000 --- a/include/boost/type_traits/cv_traits.hpp +++ /dev/null @@ -1,399 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 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 most recent version including documentation. -// -// defines traits classes for cv-qualified types: -// is_const, is_volatile, remove_const, remove_volatile, remove_cv. -// -// Revision History: -// 24th March 2001: -// Fixed is_const/is_volatile so that they work with reference types - -#ifndef BOOST_CV_TYPE_TRAITS_HPP -#define BOOST_CV_TYPE_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_TT_REFERENCE_TRAITS_HPP -# include -#endif -#ifndef BOOST_TT_ARRAY_TRAITS_HPP -# include -#endif -#ifndef BOOST_TT_UTILITY_HPP -# include -#endif - -namespace boost{ - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -namespace detail{ -// -// implementation helper: -// -template -struct cv_traits_imp{}; - -template -struct cv_traits_imp -{ - BOOST_STATIC_CONSTANT(bool, is_const = false); - BOOST_STATIC_CONSTANT(bool, is_volatile = false); - typedef T unqualified_type; -}; - -template -struct cv_traits_imp -{ - BOOST_STATIC_CONSTANT(bool, is_const = true); - BOOST_STATIC_CONSTANT(bool, is_volatile = false); - typedef T unqualified_type; -}; - -template -struct cv_traits_imp -{ - BOOST_STATIC_CONSTANT(bool, is_const = false); - BOOST_STATIC_CONSTANT(bool, is_volatile = true); - typedef T unqualified_type; -}; - -template -struct cv_traits_imp -{ - BOOST_STATIC_CONSTANT(bool, is_const = true); - BOOST_STATIC_CONSTANT(bool, is_volatile = true); - typedef T unqualified_type; -}; - -template -struct remove_const_helper -{ - typedef T type; -}; -template -struct remove_const_helper -{ - typedef volatile T type; -}; - -template -struct remove_volatile_helper -{ - typedef T type; -}; -template -struct remove_volatile_helper -{ - typedef const T type; -}; - -} // namespace detail - -// * convert a type T to a non-volatile type - remove_volatile -template -struct remove_volatile -{ - typedef typename detail::cv_traits_imp::unqualified_type uq_type; - typedef typename detail::remove_volatile_helper::value>::type type; -}; -template struct remove_volatile{ typedef T& type; }; -template struct remove_volatile{ typedef T type[N]; }; -template struct remove_volatile{ typedef const T type[N]; }; - -// * convert a type T to non-const type - remove_const -template -struct remove_const -{ - typedef typename detail::cv_traits_imp::unqualified_type uq_type; - typedef typename detail::remove_const_helper::value>::type type; -}; -template struct remove_const{ typedef T& type; }; -template struct remove_const{ typedef T type[N]; }; -template struct remove_const{ typedef volatile T type[N]; }; - -// convert a type T to a non-cv-qualified type - remove_cv -template -struct remove_cv -{ - typedef typename detail::cv_traits_imp::unqualified_type type; -}; -template struct remove_cv{ typedef T& type; }; -template struct remove_cv{ typedef T type[N]; }; -template struct remove_cv{ typedef T type[N]; }; -template struct remove_cv{ typedef T type[N]; }; - -//* is a type T declared const - is_const -template -struct is_const -{ - BOOST_STATIC_CONSTANT(bool, value = detail::cv_traits_imp::is_const); -}; -template struct is_const -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -#if defined(__BORLANDC__) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template struct is_const -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_const -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_const -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -#endif - -//* is a type T declared volatile - is_volatile -template -struct is_volatile -{ - BOOST_STATIC_CONSTANT(bool, value = detail::cv_traits_imp::is_volatile); -}; -template struct is_volatile -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -#if defined(__BORLANDC__) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template struct is_volatile -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_volatile -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_volatile -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -// The following three don't work: -template struct remove_volatile{ typedef T type; }; -template struct remove_const{ typedef T type; }; -template struct remove_cv{ typedef T type; }; - -namespace detail{ - using ::boost::type_traits::yes_type; - using ::boost::type_traits::no_type; - yes_type is_const_helper(const volatile void*); - no_type is_const_helper(volatile void *); - yes_type is_volatile_helper(const volatile void*); - no_type is_volatile_helper(const void *); -} - -namespace detail -{ - template - struct is_const_impl - : ::boost::type_traits::false_unary_metafunction - {}; - - template <> - struct is_const_impl - { - template - struct apply - { - private: - static T* t; - public: - BOOST_STATIC_CONSTANT(bool, value = (sizeof(detail::yes_type) == sizeof(detail::is_const_helper(t)))); - }; - }; - - template <> - struct is_const_impl - { - template - struct apply - { - private: - static T t; - public: - BOOST_STATIC_CONSTANT(bool, value = (sizeof(detail::yes_type) == sizeof(detail::is_const_helper(&t)))); - }; - }; -} - -template -struct is_const - : ::boost::detail::is_const_impl< - is_reference::value - , is_array::value - >::template apply -{ -}; - -template <> -struct is_const -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_const -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_const -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_const -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -#endif - -namespace detail -{ - template - struct is_volatile_impl - : ::boost::type_traits::false_unary_metafunction - {}; - - template <> - struct is_volatile_impl - { - template - struct apply - { - private: - static T* t; - public: - BOOST_STATIC_CONSTANT(bool, value = (sizeof(detail::yes_type) == sizeof(detail::is_volatile_helper(t)))); - }; - }; - - template <> - struct is_volatile_impl - { - template - struct apply - { - private: - static T t; - public: - BOOST_STATIC_CONSTANT(bool, value = (sizeof(detail::yes_type) == sizeof(detail::is_volatile_helper(&t)))); - }; - }; -} - -template -struct is_volatile - : ::boost::detail::is_volatile_impl< - is_reference::value - , is_array::value - >::template apply -{ -}; - - -template <> -struct is_volatile -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> -struct is_volatile -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct is_volatile -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct is_volatile -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -#endif - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -// * convert a type T to const type - add_const -// this is not required since the result is always -// the same as "T const", but it does suppress warnings -// from some compilers: -template -struct add_const -{ -#if defined(BOOST_MSVC) - // This bogus warning will appear when add_const is applied to a - // const volatile reference because we can't detect const volatile - // references with MSVC6. -# pragma warning(push) -# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored -#endif - typedef T const type; -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif -}; -// * convert a type T to volatile type - add_volatile -// this is not required since the result is always -// the same as "T volatile", but it does suppress warnings -// from some compilers: -template -struct add_volatile -{ -#if defined(BOOST_MSVC) - // This bogus warning will appear when add_volatile is applied to a - // const volatile reference because we can't detect const volatile - // references with MSVC6. -# pragma warning(push) -# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored -#endif - typedef T volatile type; -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif -}; -// * convert a type T to a const volatile type - add_cv -// this is not required since the result is always -// the same as "T const volatile", but it does suppress warnings -// from some compilers: -template -struct add_cv -{ -#if defined(BOOST_MSVC) - // This bogus warning will appear when add_volatile is applied to a - // const volatile reference because we can't detect const volatile - // references with MSVC6. -# pragma warning(push) -# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored -#endif - typedef T const volatile type; -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif -}; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct add_const{ typedef T& type; }; -template -struct add_volatile{ typedef T& type; }; -template -struct add_cv{ typedef T& type; }; -#endif - -} // namespace boost - - -#endif // BOOST_CV_TYPE_TRAITS_HPP - - - diff --git a/include/boost/type_traits/function_traits.hpp b/include/boost/type_traits/function_traits.hpp deleted file mode 100644 index df098456ee2..00000000000 --- a/include/boost/type_traits/function_traits.hpp +++ /dev/null @@ -1,153 +0,0 @@ - -// Copyright (C) 2000 John Maddock (john_maddock@compuserve.com) -// -// Permission to copy and use this software is granted, -// provided this copyright notice appears in all copies. -// Permission to modify the code and to distribute modified code is granted, -// provided this copyright notice appears in all copies, and a notice -// that the code was modified is included with the copyright notice. -// -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. - -#ifndef BOOST_FUNCTION_TYPE_TRAITS_HPP -#define BOOST_FUNCTION_TYPE_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_COMPOSITE_TYPE_TRAITS_HPP -#include -#endif -// -// is a type a function? -// Please note that this implementation is unnecessarily complex: -// we could just use !is_convertible::value, -// except that some compilers erroneously allow conversions from -// function pointers to void*. -// -namespace boost{ -namespace detail{ - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_helper_base{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_function_helper : is_function_helper_base{}; - -#else - -template -struct is_function_helper -{ - static T* t; - BOOST_STATIC_CONSTANT(bool, value = sizeof(is_function_tester(t)) == sizeof(::boost::type_traits::yes_type)); - //BOOST_STATIC_CONSTANT(bool, value = (!::boost::is_convertible::value)); -}; - -#endif - -template -struct is_function_ref_helper -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template -struct is_function_chooser -{ - typedef is_function_helper type; -}; -template -struct is_function_chooser -{ - typedef is_function_ref_helper type; -}; -#endif -} // namespace detail - -template -struct is_function -{ -private: -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - typedef typename detail::is_function_chooser::value>::type m_type; -#else - // without partial specialistaion we can't use is_reference on - // function types, that leaves this template broken in the case that - // T is a reference: - typedef detail::is_function_helper m_type; -#endif -public: - BOOST_STATIC_CONSTANT(bool, value = m_type::value); -}; - -} // boost - -#endif // BOOST_FUNCTION_TYPE_TRAITS_HPP diff --git a/include/boost/type_traits/fwd.hpp b/include/boost/type_traits/fwd.hpp deleted file mode 100644 index c58dd9c484d..00000000000 --- a/include/boost/type_traits/fwd.hpp +++ /dev/null @@ -1,201 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 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 most recent version including documentation. -// -// forward declarations of type_traits classes -// -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#define BOOST_FWD_TYPE_TRAITS_HPP - -#include -#include - -#ifndef BOOST_CONFIG_HPP -#include -#endif - -// -// Helper macros for builtin compiler support. -// If your compiler has builtin support for any of the following -// traits concepts, then redefine the appropriate macros to pick -// up on the compiler support: -// -// (these should largely ignore cv-qualifiers) -// BOOST_IS_CLASS(T) should evaluate to true if T is a class or struct type -// BOOST_IS_ENUM(T) should evaluate to true if T is an enumerator type -// BOOST_IS_UNION(T) should evaluate to true if T is a union type -// BOOST_IS_POD(T) should evaluate to true if T is a POD type -// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty struct or union -// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect -// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy -// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy -// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect - -#ifdef BOOST_HAS_SGI_TYPE_TRAITS -# define BOOST_IS_POD(T) ::boost::is_same< typename ::__type_traits::is_POD_type, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_default_constructor, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits::has_trivial_copy_constructor, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits::has_trivial_assignment_operator, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_destructor, ::__true_type>::value -#endif - -#ifndef BOOST_IS_CLASS -# define BOOST_IS_CLASS(T) false -#endif - -#ifndef BOOST_IS_ENUM -# define BOOST_IS_ENUM(T) false -#endif - -#ifndef BOOST_IS_UNION -# define BOOST_IS_UNION(T) false -#endif - -#ifndef BOOST_IS_POD -# define BOOST_IS_POD(T) false -#endif - -#ifndef BOOST_IS_EMPTY -# define BOOST_IS_EMPTY(T) false -#endif - -#ifndef BOOST_HAS_TRIVIAL_CONSTRUCTOR -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) false -#endif - -#ifndef BOOST_HAS_TRIVIAL_COPY -# define BOOST_HAS_TRIVIAL_COPY(T) false -#endif - -#ifndef BOOST_HAS_TRIVIAL_ASSIGN -# define BOOST_HAS_TRIVIAL_ASSIGN(T) false -#endif - -#ifndef BOOST_HAS_TRIVIAL_DESTRUCTOR -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) false -#endif - -// -// whenever we have a conversion function with elipses -// it needs to be declared __cdecl to suppress compiler -// warnings from MS and Borland compilers: -#if defined(BOOST_MSVC) || defined(__BORLANDC__) -#define BOOST_TT_DECL __cdecl -#else -#define BOOST_TT_DECL -#endif - - -namespace boost{ -// -// forward declare all type traits templates here -// -// conversion_traits.hpp: -template -struct is_convertible; -// alignment_traits.hpp: -template -struct alignment_of; -// arithmetic_traits.hpp: -template -struct is_void; -template -struct is_integral; -template -struct is_float; -template -struct is_arithmetic; -template -struct is_fundamental; - -// cv_traits.hpp: -template -struct is_const; -template -struct is_volatile; -template -struct remove_const; -template -struct remove_volatile; -template -struct remove_cv; -template -struct add_const; -template -struct add_volatile; -template -struct add_cv; - -// composite_traits.hpp: -template -struct is_array; -template -struct is_pointer; -template -struct is_reference; -template -struct is_member_pointer; -template -struct is_member_function_pointer; -template -struct is_enum; -template -struct is_union; - -// object_traits.hpp: -template -struct is_object; -template -struct is_scalar; -template -struct is_class; -template -struct is_compound; -template -struct is_POD; -template -struct has_trivial_constructor; -template -struct has_trivial_copy; -template -struct has_trivial_assign; -template -struct has_trivial_destructor; -template -struct has_nothrow_constructor; -template -struct has_nothrow_copy; -template -struct has_nothrow_assign; -template -struct is_empty; -template -struct is_base_and_derived; - -// transform_traits.hpp: -template -struct remove_reference; -template -struct add_reference; -template -struct remove_bounds; -template -struct remove_pointer; -template -struct add_pointer; - -// same_traits.hpp: -template -struct is_same; - -} // namespace boost - -#endif // BOOST_FWD_TYPE_TRAITS_HPP - - - - diff --git a/include/boost/type_traits/ice.hpp b/include/boost/type_traits/ice.hpp deleted file mode 100644 index 36e0e2ecc59..00000000000 --- a/include/boost/type_traits/ice.hpp +++ /dev/null @@ -1,87 +0,0 @@ - -// (C) Copyright John Maddock and Steve Cleary 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 most recent version including documentation. -// -// macros and helpers for working with integral-constant-expressions. - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#define BOOST_ICE_TYPE_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -#include -#endif - - -namespace boost{ -namespace type_traits{ - -typedef char yes_type; -typedef double no_type; - -template -struct ice_not -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template <> -struct ice_not -{ BOOST_STATIC_CONSTANT(bool, value = false); }; - -template -struct ice_or; -template -struct ice_or -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; -template <> -struct ice_or -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct ice_and; -template -struct ice_and -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template <> -struct ice_and -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template -struct ice_eq -{ - BOOST_STATIC_CONSTANT(bool, value = (b1 == b2)); -}; - -template -struct ice_ne -{ - BOOST_STATIC_CONSTANT(bool, value = (b1 != b2)); -}; - -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -template -const bool ice_eq::value; -template -const bool ice_ne::value; -#endif - -} // namespace type_traits - -} // namespace boost - -#endif // BOOST_ICE_TYPE_TRAITS_HPP - - - - - diff --git a/include/boost/type_traits/is_class.hpp b/include/boost/type_traits/is_class.hpp deleted file mode 100644 index 4dceaf214cb..00000000000 --- a/include/boost/type_traits/is_class.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in 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 including documentation. -// -#ifndef BOOST_TYPE_TRAITS_IS_CLASS_HPP -# define BOOST_TYPE_TRAITS_IS_CLASS_HPP - -# if (defined(__MWERKS__) && __MWERKS__ >= 0x3000) || defined(BOOST_MSVC) && _MSC_FULL_VER > 13012108 || defined(BOOST_NO_COMPILER_CONFIG) -# ifndef BOOST_ICE_TYPE_TRAITS_HPP -# include -# endif - -# define BOOST_TYPE_TRAITS_IS_CLASS_DEFINED -namespace boost { - -template -struct is_class -{ - // This is actually the conforming implementation which works with - // abstract classes. However, enough compilers have trouble with - // it that most will use the one in - // boost/type_traits/object_traits.hpp. This implementation - // actually works with VC7.0, but other interactions seem to fail - // when we use it. - -// is_class<> metafunction due to Paul Mensonides -// (leavings@attbi.com). For more details: -// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1 - private: - template static ::boost::type_traits::yes_type is_class_helper(void(U::*)(void)); - template static ::boost::type_traits::no_type is_class_helper(...); - public: - BOOST_STATIC_CONSTANT( - bool, value = sizeof( - is_class_helper(0) - ) == sizeof(::boost::type_traits::yes_type)); -}; -} - -# else // nonconforming compilers will use a different impelementation, in object_traits.hpp - -# endif // nonconforming implementations - -#endif // BOOST_TYPE_TRAITS_IS_CLASS_HPP diff --git a/include/boost/type_traits/object_traits.hpp b/include/boost/type_traits/object_traits.hpp deleted file mode 100644 index 4386e9cfbd0..00000000000 --- a/include/boost/type_traits/object_traits.hpp +++ /dev/null @@ -1,562 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 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 most recent version including documentation. -// -// defines object traits classes: -// is_object, is_scalar, is_class, is_compound, is_POD, -// has_trivial_constructor, has_trivial_copy, has_trivial_assign, -// has_trivial_destructor, is_empty. -// - -#ifndef BOOST_OBJECT_TYPE_TRAITS_HPP -#define BOOST_OBJECT_TYPE_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_COMPOSITE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FUNCTION_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_TYPE_TRAITS_IS_CLASS_HPP -# include -#endif - -#ifdef BOOST_HAS_SGI_TYPE_TRAITS -# include -# include -#endif - -namespace boost{ - -/********************************************** - * - * is_object - * - **********************************************/ -template -struct is_object -{ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_reference::value>::value, - ::boost::type_traits::ice_not< ::boost::is_void::value>::value, - ::boost::type_traits::ice_not< ::boost::is_function::value>::value - >::value)); -#else - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_reference::value>::value, - ::boost::type_traits::ice_not< ::boost::is_void::value>::value - >::value)); -#endif -}; - -/********************************************** - * - * is_scalar - * - **********************************************/ -template -struct is_scalar -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - ::boost::is_arithmetic::value, - ::boost::is_enum::value, - ::boost::is_pointer::value, - ::boost::is_member_pointer::value - >::value)); -}; - -# ifndef BOOST_TYPE_TRAITS_IS_CLASS_DEFINED -// conforming compilers use the implementation in -/********************************************** - * - * is_class - * - **********************************************/ -template -struct is_class -{ -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_union::value >::value, - ::boost::type_traits::ice_not< ::boost::is_scalar::value >::value, - ::boost::type_traits::ice_not< ::boost::is_array::value >::value, - ::boost::type_traits::ice_not< ::boost::is_reference::value>::value, - ::boost::type_traits::ice_not< ::boost::is_void::value >::value, - ::boost::type_traits::ice_not< ::boost::is_function::value >::value - >::value)); -# else - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< ::boost::is_union::value >::value, - ::boost::type_traits::ice_not< ::boost::is_scalar::value >::value, - ::boost::type_traits::ice_not< ::boost::is_array::value >::value, - ::boost::type_traits::ice_not< ::boost::is_reference::value>::value, - ::boost::type_traits::ice_not< ::boost::is_void::value >::value - >::value)); -# endif -}; -# endif // nonconforming implementations -/********************************************** - * - * is_compound - * - **********************************************/ -template struct is_compound -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - ::boost::is_array::value, - ::boost::is_pointer::value, - ::boost::is_reference::value, - ::boost::is_class::value, - ::boost::is_union::value, - ::boost::is_enum::value, - ::boost::is_member_pointer::value - >::value)); -}; - -/********************************************** - * - * is_POD - * - **********************************************/ - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template struct is_POD -{ - BOOST_STATIC_CONSTANT( - bool, value = - (::boost::type_traits::ice_or< - ::boost::is_scalar::value, - ::boost::is_void::value, - BOOST_IS_POD(T) - >::value)); -}; - -template -struct is_POD -{ - BOOST_STATIC_CONSTANT(bool, value = ::boost::is_POD::value); -}; -#else -namespace detail -{ - template struct is_POD_helper; -} - -template struct is_POD -{ - BOOST_STATIC_CONSTANT( - bool, value = ( - ::boost::detail::is_POD_helper< - ::boost::is_array::value - >::template apply::value - ) - ); -}; - -namespace detail -{ - template - struct is_POD_helper - { - template struct apply - { - BOOST_STATIC_CONSTANT( - bool, value = - (::boost::type_traits::ice_or< - ::boost::is_scalar::value, - ::boost::is_void::value, - BOOST_IS_POD(T) - >::value)); - }; - }; - - template - struct bool_to_type - { - typedef ::boost::type_traits::no_type type; - }; - - template <> - struct bool_to_type - { - typedef ::boost::type_traits::yes_type type; - }; - - template - struct is_POD_array_helper - { - typedef -#if !defined(__BORLANDC__) || __BORLANDC__ > 0x551 - typename -#endif - ::boost::detail::bool_to_type<(::boost::is_POD::value)>::type type; - - type instance() const; - }; - - template - is_POD_array_helper is_POD_array(T*); - - template <> - struct is_POD_helper - { - template struct apply - { - static T& help(); - - BOOST_STATIC_CONSTANT( - bool, value = - sizeof(is_POD_array(help()).instance()) == sizeof(::boost::type_traits::yes_type)); - }; - }; -} -#endif - -/********************************************** - * - * has_trivial_constructor - * - **********************************************/ -template -struct has_trivial_constructor -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - ::boost::is_POD::value, - BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) - >::value)); -}; - -/********************************************** - * - * has_trivial_copy - * - **********************************************/ -template -struct has_trivial_copy -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_or< - ::boost::is_POD::value, - BOOST_HAS_TRIVIAL_COPY(T) - >::value, - ::boost::type_traits::ice_not< ::boost::is_volatile::value >::value - >::value)); -}; - -/********************************************** - * - * has_trivial_assign - * - **********************************************/ -template -struct has_trivial_assign -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::type_traits::ice_or< - ::boost::is_POD::value, - BOOST_HAS_TRIVIAL_ASSIGN(T) - >::value, - ::boost::type_traits::ice_not< ::boost::is_const::value >::value, - ::boost::type_traits::ice_not< ::boost::is_volatile::value >::value - >::value)); -}; - -/********************************************** - * - * has_trivial_destructor - * - **********************************************/ -template -struct has_trivial_destructor -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or< - ::boost::is_POD::value, - BOOST_HAS_TRIVIAL_DESTRUCTOR(T) - >::value)); -}; - -/********************************************** - * - * has_nothrow_constructor - * - **********************************************/ -template -struct has_nothrow_constructor -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::has_trivial_constructor::value)); -}; - -/********************************************** - * - * has_nothrow_copy - * - **********************************************/ -template -struct has_nothrow_copy -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::has_trivial_copy::value)); -}; - -/********************************************** - * - * has_nothrow_assign - * - **********************************************/ -template -struct has_nothrow_assign -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::has_trivial_assign::value)); -}; - -/********************************************** - * - * is_empty - * - **********************************************/ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -namespace detail -{ - template - struct empty_helper_t1 : public T - { -//#ifdef __MWERKS__ - empty_helper_t1(); // hh compiler bug workaround -//#endif - int i[256]; - }; - struct empty_helper_t2 { int i[256]; }; -} - -# ifndef __BORLANDC__ -namespace detail -{ - template - struct empty_helper{ BOOST_STATIC_CONSTANT(bool, value = false); }; - - template - struct empty_helper - { - BOOST_STATIC_CONSTANT( - bool, value = (sizeof(empty_helper_t1) == sizeof(empty_helper_t2))); - }; -} - -template -struct is_empty -{ - private: - typedef typename remove_cv::type cvt; - - public: - BOOST_STATIC_CONSTANT( - bool, value = ( - ::boost::type_traits::ice_or< - ::boost::detail::empty_helper::value>::value - , BOOST_IS_EMPTY(cvt) - >::value - )); -}; - -# else // __BORLANDC__ - -namespace detail -{ - template - struct empty_helper{ BOOST_STATIC_CONSTANT(bool, value = false); }; - - template - struct empty_helper - { - BOOST_STATIC_CONSTANT(bool, value = - (sizeof(empty_helper_t1) == sizeof(empty_helper_t2))); - }; -} - -template -struct is_empty -{ -private: - typedef typename remove_cv::type cvt; - typedef typename add_reference::type r_type; -public: - BOOST_STATIC_CONSTANT( - bool, value = ( - ::boost::type_traits::ice_or< - ::boost::detail::empty_helper< - T - , ::boost::is_class::value - , ::boost::is_convertible< r_type,int>::value - >::value - , BOOST_IS_EMPTY(cvt) - >::value)); -}; -# endif // __BORLANDC__ - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -#ifdef BOOST_MSVC6_MEMBER_TEMPLATES - -namespace detail{ - -template -struct empty_helper_t1 : public T -{ - empty_helper_t1(); - int i[256]; -}; -struct empty_helper_t2 { int i[256]; }; - -template -struct empty_helper_base -{ - enum{ value = (sizeof(empty_helper_t1) == sizeof(empty_helper_t2)) }; -}; - -template -struct empty_helper_nonbase -{ - enum{ value = false }; -}; - -template -struct empty_helper_chooser -{ - template - struct rebind - { - typedef empty_helper_nonbase type; - }; -}; - -template <> -struct empty_helper_chooser -{ - template - struct rebind - { - typedef empty_helper_base type; - }; -}; - -} // namespace detail - -template -struct is_empty -{ -private: - typedef ::boost::detail::empty_helper_chooser< - ::boost::type_traits::ice_and< - ::boost::type_traits::ice_not< - ::boost::is_reference::value>::value, - ::boost::type_traits::ice_not< - ::boost::is_convertible::value>::value, - ::boost::type_traits::ice_not< - ::boost::is_pointer::value>::value, - ::boost::type_traits::ice_not< - ::boost::is_member_pointer::value>::value, - ::boost::type_traits::ice_not< - ::boost::is_array::value>::value, - ::boost::type_traits::ice_not< - ::boost::is_void::value>::value, - ::boost::type_traits::ice_not< - ::boost::is_convertible::value>::value - >::value> chooser; - typedef typename chooser::template rebind bound_type; - typedef typename bound_type::type eh_type; -public: - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_or::value)); -}; - -#else -template struct is_empty -{ enum{ value = BOOST_IS_EMPTY(T) }; }; -#endif // BOOST_MSVC6_MEMBER_TEMPLATES - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -/********************************************** - * - * is_stateless - * - **********************************************/ -template -struct is_stateless -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::has_trivial_constructor::value, - ::boost::has_trivial_copy::value, - ::boost::has_trivial_destructor::value, - ::boost::is_class::value, - ::boost::is_empty::value - >::value)); -}; - -template -struct is_base_and_derived -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::is_convertible::value, - ::boost::is_class::value, - ::boost::is_class::value - >::value) - ); -}; - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct is_base_and_derived -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template -struct is_base_and_derived -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -template -struct is_base_and_derived -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#endif - -} // namespace boost - -#endif // BOOST_OBJECT_TYPE_TRAITS_HPP - - - - - - - diff --git a/include/boost/type_traits/reference_traits.hpp b/include/boost/type_traits/reference_traits.hpp deleted file mode 100644 index b9df72a93f3..00000000000 --- a/include/boost/type_traits/reference_traits.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// (C) Copyright David Abrahams Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in 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 including documentation. -// -#ifndef BOOST_TT_REFERENCE_TRAITS_HPP -# define BOOST_TT_REFERENCE_TRAITS_HPP - -# ifndef BOOST_TT_UTILITY_HPP -# include -# endif // BOOST_TT_UTILITY_HPP - -namespace boost { - -/********************************************** - * - * is_reference - * - **********************************************/ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#if defined(__BORLANDC__) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -template struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -#else -# ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4181) -#endif // BOOST_MSVC - -namespace detail -{ - using ::boost::type_traits::yes_type; - using ::boost::type_traits::no_type; - using ::boost::type_traits::wrap; - - template T&(* is_reference_helper1(wrap) )(wrap); - char is_reference_helper1(...); - - template no_type is_reference_helper2(T&(*)(wrap)); - yes_type is_reference_helper2(...); -} - -template -struct is_reference -{ - BOOST_STATIC_CONSTANT( - bool, value = sizeof( - ::boost::detail::is_reference_helper2( - ::boost::detail::is_reference_helper1(::boost::type_traits::wrap()))) == 1 - ); -}; - -template <> struct is_reference -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template <> struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -template <> struct is_reference -{ BOOST_STATIC_CONSTANT(bool, value = false); }; -#endif - -# ifdef BOOST_MSVC -# pragma warning(pop) -# endif // BOOST_MSVC -#endif - -} // namespace boost::type_traits - -#endif // BOOST_TT_REFERENCE_TRAITS_HPP diff --git a/include/boost/type_traits/same_traits.hpp b/include/boost/type_traits/same_traits.hpp deleted file mode 100644 index fc3c555b39e..00000000000 --- a/include/boost/type_traits/same_traits.hpp +++ /dev/null @@ -1,108 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 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 most recent version including documentation. -// -// defines is_same: - -// Revision History -// 19 Feb 2001 Fixed for MSVC (David Abrahams) - -#ifndef BOOST_SAME_TRAITS_HPP -#define BOOST_SAME_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif -#if !defined(BOOST_COMPOSITE_TYPE_TRAITS_HPP) && defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC) -#include -#endif - -namespace boost{ - -/********************************************** - * - * is_same - * - **********************************************/ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template -struct is_same -{ BOOST_STATIC_CONSTANT(bool, value = false); }; - -template -struct is_same -{ BOOST_STATIC_CONSTANT(bool, value = true); }; - -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -// A definition is required even for integral static constants -template -const bool is_same::value; - -template -const bool is_same::value; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#ifdef BOOST_MSVC -// -// the following VC6 specific implementation is *NOT* legal -// C++, but has the advantage that it works for incomplete -// types. -// -namespace detail{ - -template -struct is_same_part_1 { - template struct part_2 { enum { value = false }; }; - template<> struct part_2 { enum { value = true }; }; -}; - -} // namespace detail - -template -struct is_same { - enum { value = detail::is_same_part_1::template part_2::value }; -}; - -#else // BOOST_MSVC - -namespace detail{ - template - ::boost::type_traits::yes_type BOOST_TT_DECL is_same_helper(T*, T*); - ::boost::type_traits::no_type BOOST_TT_DECL is_same_helper(...); -} - -template -struct is_same -{ -private: - static T t; - static U u; -public: - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - (sizeof(type_traits::yes_type) == sizeof(detail::is_same_helper(&t,&u))), - (::boost::is_reference::value == ::boost::is_reference::value), - (sizeof(T) == sizeof(U)) - >::value)); -}; - -#endif // BOOST_MSVC - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace boost - -#endif // BOOST_SAME_TRAITS_HPP - - - diff --git a/include/boost/type_traits/transform_traits.hpp b/include/boost/type_traits/transform_traits.hpp deleted file mode 100644 index 6cc0536e4e7..00000000000 --- a/include/boost/type_traits/transform_traits.hpp +++ /dev/null @@ -1,199 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 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 most recent version including documentation. -// -// defines traits classes for transforming one type to another: -// remove_reference, add_reference, remove_bounds, remove_pointer. -// -// Revision History: -// 21st March 2001 -// Added void specialisations to add_reference. - -#ifndef BOOST_TRANSFORM_TRAITS_HPP -#define BOOST_TRANSFORM_TRAITS_HPP - -#ifndef BOOST_ICE_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_FWD_TYPE_TRAITS_HPP -#include -#endif -#if !defined(BOOST_COMPOSITE_TYPE_TRAITS_HPP) && defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -#include -#endif - -namespace boost{ - -/********************************************** - * - * remove_reference - * - **********************************************/ -template -struct remove_reference -{ typedef T type; }; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct remove_reference -{ typedef T type; }; -#endif -#if defined(__BORLANDC__) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template -struct remove_reference -{ typedef T type; }; -template -struct remove_reference -{ typedef T type; }; -template -struct remove_reference -{ typedef T type; }; -#endif - -/********************************************** - * - * add_reference - * - **********************************************/ -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct add_reference -{ typedef T& type; }; -template -struct add_reference -{ typedef T& type; }; -#elif defined(BOOST_MSVC6_MEMBER_TEMPLATES) -namespace detail{ - -template -struct reference_adder -{ - template - struct rebind - { - typedef T& type; - }; -}; - -template <> -struct reference_adder -{ - template - struct rebind - { - typedef T type; - }; -}; - -} // namespace detail - -template -struct add_reference -{ -private: - typedef typename detail::reference_adder< ::boost::is_reference::value>::template rebind binder; -public: - typedef typename binder::type type; -}; - -#else -template -struct add_reference -{ typedef T& type; }; -#endif - -// -// these full specialisations are always required: -template <> struct add_reference{ typedef void type; }; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct add_reference{ typedef const volatile void type; }; -template <> struct add_reference{ typedef const void type; }; -template <> struct add_reference{ typedef volatile void type; }; -#endif - - -/********************************************** - * - * remove_bounds - * - **********************************************/ -template -struct remove_bounds -{ typedef T type; }; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct remove_bounds -{ typedef T type; }; -template -struct remove_bounds -{ typedef const T type; }; -template -struct remove_bounds -{ typedef volatile T type; }; -template -struct remove_bounds -{ typedef const volatile T type; }; -#endif - -/********************************************** - * - * remove_pointer - * - **********************************************/ -template -struct remove_pointer -{ typedef T type; }; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct remove_pointer -{ typedef T type; }; -template -struct remove_pointer -{ typedef T type; }; -template -struct remove_pointer -{ typedef T type; }; -template -struct remove_pointer -{ typedef T type; }; -#endif - -/********************************************** - * - * add_pointer - * - **********************************************/ -template -struct add_pointer -{ -private: - typedef typename remove_reference::type no_ref_type; -public: - typedef no_ref_type* type; -}; - -} // namespace boost - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -// -// if there is no partial specialisation support -// include a bunch of full specialisations as a workaround: -// -#include -#else -#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(x) -#endif - -#endif // BOOST_TRANSFORM_TRAITS_HPP - - - - - diff --git a/include/boost/type_traits/transform_traits_spec.hpp b/include/boost/type_traits/transform_traits_spec.hpp deleted file mode 100644 index e9fd0cbf8a1..00000000000 --- a/include/boost/type_traits/transform_traits_spec.hpp +++ /dev/null @@ -1,78 +0,0 @@ - -// Copyright (c) 2001 Aleksey Gurtovoy. -// Permission to copy, use, modify, sell and distribute this software is -// granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied warranty, -// and with no claim as to its suitability for any purpose. - -#ifndef BOOST_TT_TRANSFORM_TRAITS_SPEC_HPP -#define BOOST_TT_TRANSFORM_TRAITS_SPEC_HPP - -#ifndef TRANSFORM_TRAITS_HPP -#include -#endif - -#define BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_CONST_VOLATILE_RANK1(T) \ -template<> struct remove_const { typedef T type; }; \ -template<> struct remove_const { typedef T volatile type; }; \ -template<> struct remove_volatile { typedef T type; }; \ -template<> struct remove_volatile { typedef T const type; }; \ -template<> struct remove_cv { typedef T type; }; \ -template<> struct remove_cv { typedef T type; }; \ -template<> struct remove_cv { typedef T type; }; \ -/**/ - -#define BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_1(T) \ -template<> struct remove_pointer { typedef T type; }; \ -template<> struct remove_reference { typedef T type; }; \ -/**/ - -#define BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_2(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_1(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_1(T const) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_1(T volatile) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_1(T const volatile) \ -/**/ - -#define BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_1(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_PTR_REF_RANK_2(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_CONST_VOLATILE_RANK1(T) \ -/**/ - -#define BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_2(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_1(T*) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_1(T const*) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_1(T volatile*) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_1(T const volatile*) \ -/**/ - -#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \ -namespace boost { \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_1(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_2(T) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_2(T*) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_2(T const*) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_2(T volatile*) \ -BOOST_TYPE_TRAITS_SPECIALIZATION_REMOVE_ALL_RANK_2(T const volatile*) \ -} \ -/**/ - -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(bool) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(char) -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(wchar_t) -#endif -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(signed char) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(unsigned char) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(signed short) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(unsigned short) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(signed int) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(unsigned int) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(signed long) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(unsigned long) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(float) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(double) -BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(long double) - -#endif // BOOST_TT_TRANSFORM_TRAITS_SPEC_HPP - diff --git a/include/boost/type_traits/type_traits_test.hpp b/include/boost/type_traits/type_traits_test.hpp deleted file mode 100644 index b87d2782572..00000000000 --- a/include/boost/type_traits/type_traits_test.hpp +++ /dev/null @@ -1,434 +0,0 @@ -// (C) Copyright John Maddock 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. - -// common test code for type-traits tests -// WARNING: contains code as well as declarations! - - -#ifndef BOOST_TYPE_TRAITS_TEST_HPP -#define BOOST_TYPE_TRAITS_TEST_HPP -#include -#include -#include -#include -#include -// -// define tests here -unsigned failures = 0; -unsigned test_count = 0; -// -// This must get defined within the test file. -// All compilers have bugs, set this to the number of -// regressions *expected* from a given compiler, -// if there are no workarounds for the bugs, *and* -// the regressions have been investigated. -// -extern unsigned int expected_failures; -// -// proc check_result() -// Checks that there were no regressions: -// -int check_result(int argc, char** argv) -{ - std::cout << test_count << " tests completed, " - << failures << " failures found, " - << expected_failures << " failures expected from this compiler." << std::endl; - if((argc == 2) - && (argv[1][0] == '-') - && (argv[1][1] == 'a') - && (argv[1][2] == 0)) - { - std::cout << "Press any key to continue..."; - std::cin.get(); - } - return (failures == expected_failures) - ? 0 - : (failures != 0) ? static_cast(failures) : -1; -} - - -// -// this one is to verify that a constant is indeed a -// constant-integral-expression: -// -// HP aCC cannot deal with missing names for template value parameters -template -struct checker -{ - static void check(bool, bool, const char*, bool){ ++test_count; } -}; - -template <> -struct checker -{ - static void check(bool o, bool n, const char* name, bool soft) - { - ++test_count; - ++failures; - // if this is a soft test, then failure is expected, - // or may depend upon factors outside our control - // (like compiler options)... - if(soft)++expected_failures; - std::cout << "checking value of " << name << "...failed" << std::endl; - std::cout << "\tfound: " << n << " expected " << o << std::endl; - } -}; - -template -struct typify{}; - -template -struct type_checker -{ - static void check(const char* TT, const char*, const char* expression) - { - ++test_count; - if(typeid(typify) != typeid(typify)) - { - ++failures; - std::cout << "checking type of " << expression << "...failed" << std::endl; - std::cout << " evaluating: type_checker<" << TT << "," << expression << ">" << std::endl; - std::cout << " expected: type_checker<" << TT << "," << TT << ">" << std::endl; - std::cout << " but got: " << typeid(type_checker).name() << std::endl; - } - } -}; - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct type_checker -{ - static void check(const char*, const char*, const char*) - { - ++test_count; - } -}; -#endif - - -#define value_test(v, x) checker<(v == x)>::check(v, x, #x, false); -#define soft_value_test(v, x) checker<(v == x)>::check(v, x, #x, true); - -#define value_fail(v, x) \ - ++test_count; \ - ++failures; \ - ++expected_failures;\ - std::cout << "checking value of " << #x << "...failed" << std::endl; \ - std::cout << " " #x " does not compile on this compiler" << std::endl; - - -#define type_test(v, x) type_checker::check(#v, #x, #x); -#define type_test3(v, x, z) type_checker::check(#v, #x "," #z, #x "," #z); -#ifndef SHORT_TRANSFORM_TEST -#define transform_check(name, from_suffix, to_suffix)\ - type_test(bool to_suffix, name::type);\ - type_test(char to_suffix, name::type);\ - type_test(wchar_t to_suffix, name::type);\ - type_test(signed char to_suffix, name::type);\ - type_test(unsigned char to_suffix, name::type);\ - type_test(short to_suffix, name::type);\ - type_test(unsigned short to_suffix, name::type);\ - type_test(int to_suffix, name::type);\ - type_test(unsigned int to_suffix, name::type);\ - type_test(long to_suffix, name::type);\ - type_test(unsigned long to_suffix, name::type);\ - type_test(float to_suffix, name::type);\ - type_test(long double to_suffix, name::type);\ - type_test(double to_suffix, name::type);\ - type_test(UDT to_suffix, name::type);\ - type_test(enum1 to_suffix, name::type); -#else -#define transform_check(name, from_suffix, to_suffix)\ - type_test(int to_suffix, name::type);\ - type_test(UDT to_suffix, name::type);\ - type_test(enum1 to_suffix, name::type); -#endif - -#define boost_dummy_macro_param - -template -struct test_align -{ - struct padded - { - char c; - T t; - }; - static void do_it() - { - padded p; - unsigned a = reinterpret_cast(&(p.t)) - reinterpret_cast(&p); - ++test_count; - // only fail if we do not have a multiple of the actual value: - if((a > ::boost::alignment_of::value) || (a % ::boost::alignment_of::value)) - { - ++failures; - std::cout << "checking value of " << typeid(boost::alignment_of).name() << "...failed" << std::endl; - std::cout << "\tfound: " << boost::alignment_of::value << " expected " << a << std::endl; - } - // suppress warnings about unused variables: - (void)p; - (void)a; - } -}; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct test_align -{ - static void do_it() - { - // - // we can't do the usual test because we can't take the address - // of a reference, so check that the result is the same as for a - // pointer type instead: - unsigned a = boost::alignment_of::value; - ++test_count; - if(a != boost::alignment_of::value) - { - ++failures; - std::cout << "checking value of " << typeid(boost::alignment_of).name() << "...failed" << std::endl; - std::cout << "\tfound: " << boost::alignment_of::value << " expected " << a << std::endl; - } - } -}; -#endif - -#define align_test(T) test_align::do_it() - -template -struct test_type_with_align -{ - typedef typename boost::type_with_alignment< - (boost::alignment_of::value)>::type - align_t; - - static void do_it() - { - int align = boost::alignment_of::value; - int new_align = boost::alignment_of::value; - ++test_count; - if (new_align % align != 0) { - ++failures; - std::cerr << "checking for an object with same alignment as " - << typeid(T).name() << "...failed" << std::endl; - std::cerr << "\tfound: " << typeid(align_t).name() << std::endl; - } - } -}; - -#define type_with_align_test(T) test_type_with_align::do_it() - -// -// the following code allows us to test that a particular -// template functions correctly when instanciated inside another template -// (some bugs only show up in that situation). For each template -// we declare one NESTED_DECL(classname) that sets up the template class -// and multiple NESTED_TEST(classname, template-arg) declarations, to carry -// the actual tests: -template -struct nested_test -{ - typedef nested_test type; - bool run_time_value; - const char* what; - nested_test(bool b2, const char* w) : run_time_value(b2), what(w) { check(); } - void check() - { - ++test_count; - if(b != run_time_value) - { - ++failures; - std::cerr << "Mismatch between runtime and compile time values in " << what << std::endl; - } - } -}; - -#ifndef __SUNPRO_CC -#define NESTED_DECL(what)\ -template \ -struct BOOST_TT_JOIN(nested_tester_,what){\ - nested_test< (::boost::type_traits::ice_ne<0, ::boost::what::value>::value)> tester;\ - BOOST_TT_JOIN(nested_tester_,what)(const char* s) : tester(::boost::what::value, s){}\ -}; -#define NESTED_TEST(what, with)\ -{BOOST_TT_JOIN(nested_tester_,what) check(#what "<" #with ">"); (void)check;} -#else -#define NESTED_DECL(what) -#define NESTED_TEST(what, with) -#endif - -#define BOOST_TT_JOIN( X, Y ) BOOST_DO_TT_JOIN( X, Y ) -#define BOOST_DO_TT_JOIN( X, Y ) X##Y - - - -// -// define some types to test with: -// -enum enum_UDT{ one, two, three }; -struct UDT -{ - UDT(){}; - ~UDT(){}; - UDT(const UDT&); - UDT& operator=(const UDT&); - int i; - - void f1(); - int f2(); - int f3(int); - int f4(int, float); -}; - -typedef void(*f1)(); -typedef int(*f2)(int); -typedef int(*f3)(int, bool); -typedef void (UDT::*mf1)(); -typedef int (UDT::*mf2)(); -typedef int (UDT::*mf3)(int); -typedef int (UDT::*mf4)(int, float); -typedef int (UDT::*mp); -typedef int (UDT::*cmf)(int) const; - -// cv-qualifiers applied to reference types should have no effect -// declare these here for later use with is_reference and remove_reference: -# ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4181) -# elif defined(__ICL) -# pragma warning(push) -# pragma warning(disable: 21) -# endif -// -// This is intentional: -// r_type and cr_type should be the same type -// but some compilers wrongly apply cv-qualifiers -// to reference types (this may generate a warning -// on some compilers): -// -typedef int& r_type; -typedef const r_type cr_type; -# ifdef BOOST_MSVC -# pragma warning(pop) -# elif defined(__ICL) -# pragma warning(pop) -# pragma warning(disable: 985) // identifier truncated in debug information -# endif - -struct POD_UDT { int x; }; -struct empty_UDT -{ - ~empty_UDT(){}; - empty_UDT& operator=(const empty_UDT&){ return *this; } - bool operator==(const empty_UDT&)const - { return true; } -}; -struct empty_POD_UDT -{ - empty_POD_UDT& operator=(const empty_POD_UDT&){ return *this; } - bool operator==(const empty_POD_UDT&)const - { return true; } -}; -union union_UDT -{ - int x; - double y; - ~union_UDT(); -}; -union POD_union_UDT -{ - int x; - double y; -}; -union empty_union_UDT -{ - ~empty_union_UDT(); -}; -union empty_POD_union_UDT{}; - -class Base { }; - -class Derived : public Base { }; - -class NonDerived { }; - -enum enum1 -{ - one_,two_ -}; - -enum enum2 -{ - three_,four_ -}; - -struct VB -{ - virtual ~VB(){}; -}; - -struct VD : VB -{ - ~VD(){}; -}; -// -// struct non_pointer: -// used to verify that is_pointer does not return -// true for class types that implement operator void*() -// -struct non_pointer -{ - operator void*(){return this;} -}; -struct non_int_pointer -{ - int i; - operator int*(){return &i;} -}; -struct int_constructible -{ - int_constructible(int); -}; -struct int_convertible -{ - operator int(); -}; -// -// struct non_empty: -// used to verify that is_empty does not emit -// spurious warnings or errors. -// -struct non_empty : private boost::noncopyable -{ - int i; -}; -// -// abstract base classes: -struct test_abc1 -{ - virtual void foo() = 0; - virtual void foo2() = 0; -}; - -struct test_abc2 -{ - virtual void foo() = 0; - virtual void foo2() = 0; -}; - -struct incomplete_type; - - -#endif // BOOST_TYPE_TRAITS_TEST_HPP - - - - - - - - - - diff --git a/include/boost/type_traits/utility.hpp b/include/boost/type_traits/utility.hpp deleted file mode 100644 index a51c2d9155b..00000000000 --- a/include/boost/type_traits/utility.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright David Abrahams 2002. Permission to copy, use, -// modify, sell and distribute this software is granted provided this -// copyright notice appears in all copies. This software is provided -// "as is" without express or implied warranty, and with no claim as -// to its suitability for any purpose. -#ifndef BOOST_TT_UTILITY_HPP -# define BOOST_TT_UTILITY_HPP - -namespace boost { namespace type_traits -{ - // Utility metafunction class which always returns false - struct false_unary_metafunction - { - template - struct apply - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - }; - - template struct wrap {}; -}} // namespace boost::type_traits - -#endif // BOOST_TT_UTILITY_HPP