From 6d726df91c8ee0292476f858cb21c3182d14d870 Mon Sep 17 00:00:00 2001 From: Beman Dawes Date: Wed, 25 Feb 2009 18:04:27 +0000 Subject: [PATCH] Merge branches/cpp0x into trunk, enabling a bunch of BOOST_NO_* macros for C++0x early adopter feature tests [SVN r51444] --- doc/html/boost_config/acknowledgements.html | 4 +- .../boost_config/boost_macro_reference.html | 4 +- .../guidelines_for_boost_authors.html | 4 +- doc/html/boost_config/rationale.html | 4 +- doc/html/index.html | 8 +- include/boost/config/compiler/borland.hpp | 33 +++- include/boost/config/compiler/common_edg.hpp | 21 +++ include/boost/config/compiler/digitalmars.hpp | 17 ++ include/boost/config/compiler/gcc.hpp | 35 ++-- include/boost/config/compiler/hp_acc.hpp | 20 +++ include/boost/config/compiler/intel.hpp | 20 +++ include/boost/config/compiler/metrowerks.hpp | 17 ++ include/boost/config/compiler/mpw.hpp | 20 +++ include/boost/config/compiler/pgi.hpp | 20 +++ include/boost/config/compiler/sgi_mipspro.hpp | 20 +++ include/boost/config/compiler/sunpro_cc.hpp | 30 +++- include/boost/config/compiler/vacpp.hpp | 19 +++ include/boost/config/compiler/visualc.hpp | 21 +++ test/all/Jamfile.v2 | 47 +++++- test/boost_no_constexpr.ipp | 23 +++ test/boost_no_defaulted_functions.ipp | 24 +++ test/boost_no_deleted_functions.ipp | 24 +++ test/boost_no_explicit_cvt_ops.ipp | 26 +++ test/boost_no_raw_literals.ipp | 22 +++ test/config_info.cpp | 52 ++---- test/config_test.cpp | 152 +++++++++++++++++- ...ordered_fail.cpp => no_constexpr_fail.cpp} | 16 +- test/no_constexpr_pass.cpp | 37 +++++ test/no_defaulted_functions_fail.cpp | 37 +++++ test/no_defaulted_functions_pass.cpp | 37 +++++ test/no_deleted_functions_fail.cpp | 37 +++++ test/no_deleted_functions_pass.cpp | 37 +++++ test/no_explicit_cvt_ops_fail.cpp | 37 +++++ test/no_explicit_cvt_ops_pass.cpp | 37 +++++ test/no_raw_literals_fail.cpp | 37 +++++ test/no_raw_literals_pass.cpp | 37 +++++ 36 files changed, 955 insertions(+), 81 deletions(-) create mode 100644 test/boost_no_constexpr.ipp create mode 100644 test/boost_no_defaulted_functions.ipp create mode 100644 test/boost_no_deleted_functions.ipp create mode 100644 test/boost_no_explicit_cvt_ops.ipp create mode 100644 test/boost_no_raw_literals.ipp rename test/{no_std_unordered_fail.cpp => no_constexpr_fail.cpp} (63%) create mode 100644 test/no_constexpr_pass.cpp create mode 100644 test/no_defaulted_functions_fail.cpp create mode 100644 test/no_defaulted_functions_pass.cpp create mode 100644 test/no_deleted_functions_fail.cpp create mode 100644 test/no_deleted_functions_pass.cpp create mode 100644 test/no_explicit_cvt_ops_fail.cpp create mode 100644 test/no_explicit_cvt_ops_pass.cpp create mode 100644 test/no_raw_literals_fail.cpp create mode 100644 test/no_raw_literals_pass.cpp diff --git a/doc/html/boost_config/acknowledgements.html b/doc/html/boost_config/acknowledgements.html index a1c5517b..b02bda6a 100644 --- a/doc/html/boost_config/acknowledgements.html +++ b/doc/html/boost_config/acknowledgements.html @@ -3,8 +3,8 @@ Acknowledgements - - + + diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index 11932b66..56da61f0 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -3,8 +3,8 @@ Boost Macro Reference - - + + diff --git a/doc/html/boost_config/guidelines_for_boost_authors.html b/doc/html/boost_config/guidelines_for_boost_authors.html index 17a76c72..2e16141f 100644 --- a/doc/html/boost_config/guidelines_for_boost_authors.html +++ b/doc/html/boost_config/guidelines_for_boost_authors.html @@ -3,8 +3,8 @@ Guidelines for Boost Authors - - + + diff --git a/doc/html/boost_config/rationale.html b/doc/html/boost_config/rationale.html index fe45071e..cdd610f0 100644 --- a/doc/html/boost_config/rationale.html +++ b/doc/html/boost_config/rationale.html @@ -3,8 +3,8 @@ Rationale - - + + diff --git a/doc/html/index.html b/doc/html/index.html index 8b25ea4b..10868480 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,8 +3,8 @@ Boost.Config - - + + @@ -28,7 +28,7 @@
-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -960,7 +960,7 @@
- +

Last revised: December 21, 2008 at 17:07:02 GMT

Last revised: February 21, 2009 at 13:17:03 GMT


diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp index 4d2afb46..c0280601 100644 --- a/include/boost/config/compiler/borland.hpp +++ b/include/boost/config/compiler/borland.hpp @@ -16,9 +16,8 @@ # error "Compiler not supported or configured - please reconfigure" #endif -// last known and checked version is 0x600 (Builder X preview) -// or 0x593 (CodeGear C++ Builder 2007 December 2007 update): -#if (__BORLANDC__ > 0x593) && (__BORLANDC__ != 0x600) +// last known compiler version: +#if (__BORLANDC__ > 0x610) //# if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" //# else @@ -109,7 +108,8 @@ #endif // Borland C++ Builder 2007 December 2007 Update and below: -#if (__BORLANDC__ <= 0x593) +//#if (__BORLANDC__ <= 0x593) +#if (__BORLANDC__ <= 0x610) // Beman has asked Alisdair for more info // we shouldn't really need this - but too many things choke // without it, this needs more investigation: # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS @@ -171,6 +171,8 @@ #if __BORLANDC__ >= 0x561 # ifndef __NO_LONG_LONG # define BOOST_HAS_LONG_LONG +# else +# define BOOST_NO_LONG_LONG # endif // On non-Win32 platforms let the platform config figure this out: # ifdef _WIN32 @@ -211,6 +213,29 @@ #ifndef __STRICT_ANSI__ # define BOOST_HAS_DECLSPEC #endif + +// +// C++0x features +// +// See above for BOOST_NO_LONG_LONG + +#if __BORLANDC__ < 0x0610 +# define BOOST_NO_CHAR16_T +# define BOOST_NO_CHAR32_T +# define BOOST_NO_DECLTYPE +# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +# define BOOST_NO_EXTERN_TEMPLATE +# define BOOST_NO_SCOPED_ENUMS +# define BOOST_NO_STATIC_ASSERT +# define BOOST_NO_RVALUE_REFERENCES +# define BOOST_NO_VARIADIC_TEMPLATES +#endif + +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_RAW_LITERALS +# define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported // // ABI fixing headers: // diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp index cba8b2ae..8d31e332 100644 --- a/include/boost/config/compiler/common_edg.hpp +++ b/include/boost/config/compiler/common_edg.hpp @@ -55,8 +55,29 @@ # if !defined(__NO_LONG_LONG) # define BOOST_HAS_LONG_LONG +# else +# define BOOST_NO_LONG_LONG # endif +// +// C++0x features +// +// See above for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES #ifdef c_plusplus // EDG has "long long" in non-strict mode // However, some libraries have insufficient "long long" support diff --git a/include/boost/config/compiler/digitalmars.hpp b/include/boost/config/compiler/digitalmars.hpp index a87af904..43fa2352 100644 --- a/include/boost/config/compiler/digitalmars.hpp +++ b/include/boost/config/compiler/digitalmars.hpp @@ -56,6 +56,23 @@ # define BOOST_NO_EXCEPTIONS #endif +// +// C++0x features +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES #if __DMC__ < 0x800 #error "Compiler not supported or configured - please reconfigure" #endif diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index 639d9700..671fa229 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -104,30 +104,41 @@ // // C++0x features // -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2) + +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_UNICODE_LITERALS + +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__) // C++0x features are only enabled when -std=c++0x or -std=gnu++0x are // passed on the command line, which in turn defines -// __GXX_EXPERIMENTAL_CXX0X__. -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_HAS_STATIC_ASSERT -# define BOOST_HAS_VARIADIC_TMPL -# define BOOST_HAS_RVALUE_REFS -# define BOOST_HAS_DECLTYPE -# endif +// __GXX_EXPERIMENTAL_CXX0X__. +# define BOOST_HAS_DECLTYPE +# define BOOST_HAS_RVALUE_REFS +# define BOOST_HAS_STATIC_ASSERT +#else +# define BOOST_NO_DECLTYPE +# define BOOST_NO_RVALUE_REFERENCES +# define BOOST_NO_STATIC_ASSERT #endif #if !defined(__GXX_EXPERIMENTAL_CXX0X__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) # define BOOST_NO_INITIALIZER_LISTS #endif -// -// Potential C++0x features -// - // Variadic templates compiler: // http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html #ifdef __VARIADIC_TEMPLATES # define BOOST_HAS_VARIADIC_TMPL +#else +# define BOOST_NO_VARIADIC_TEMPLATES #endif // ConceptGCC compiler: diff --git a/include/boost/config/compiler/hp_acc.hpp b/include/boost/config/compiler/hp_acc.hpp index 5a766c59..fe8bcdd9 100644 --- a/include/boost/config/compiler/hp_acc.hpp +++ b/include/boost/config/compiler/hp_acc.hpp @@ -85,6 +85,26 @@ # endif //PA-RISC #endif +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES + // // last known and checked version for HP-UX/ia64 is 61300 // last known and checked version for PA-RISC is 38000 diff --git a/include/boost/config/compiler/intel.hpp b/include/boost/config/compiler/intel.hpp index 1ab029ed..b7b918c1 100644 --- a/include/boost/config/compiler/intel.hpp +++ b/include/boost/config/compiler/intel.hpp @@ -157,6 +157,26 @@ template<> struct assert_intrinsic_wchar_t {}; # define BOOST_NO_TWO_PHASE_NAME_LOOKUP #endif +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES + // // last known and checked version: #if (BOOST_INTEL_CXX_VERSION > 1100) diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp index cbb588fe..a3464fd9 100644 --- a/include/boost/config/compiler/metrowerks.hpp +++ b/include/boost/config/compiler/metrowerks.hpp @@ -84,9 +84,26 @@ // // C++0x features // +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// #if __MWERKS__ > 0x3206 && __option(rvalue_refs) # define BOOST_HAS_RVALUE_REFS +#else +# define BOOST_NO_RVALUE_REFERENCES #endif +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) diff --git a/include/boost/config/compiler/mpw.hpp b/include/boost/config/compiler/mpw.hpp index cfe9461e..b3eeb5cf 100644 --- a/include/boost/config/compiler/mpw.hpp +++ b/include/boost/config/compiler/mpw.hpp @@ -36,6 +36,26 @@ # define BOOST_NO_INITIALIZER_LISTS #endif +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES + // // versions check: // we don't support MPW prior to version 8.9: diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp index 2cb89b89..ec007162 100644 --- a/include/boost/config/compiler/pgi.hpp +++ b/include/boost/config/compiler/pgi.hpp @@ -28,6 +28,26 @@ # error "Pgi compiler not configured - please reconfigure" #endif +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES + // // version check: // probably nothing to do here? diff --git a/include/boost/config/compiler/sgi_mipspro.hpp b/include/boost/config/compiler/sgi_mipspro.hpp index 8e578d71..b237f85b 100644 --- a/include/boost/config/compiler/sgi_mipspro.hpp +++ b/include/boost/config/compiler/sgi_mipspro.hpp @@ -23,6 +23,26 @@ #undef BOOST_DEDUCED_TYPENAME #define BOOST_NO_INITIALIZER_LISTS +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES + // // 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 index bee32277..f650ece9 100644 --- a/include/boost/config/compiler/sunpro_cc.hpp +++ b/include/boost/config/compiler/sunpro_cc.hpp @@ -76,10 +76,34 @@ #define BOOST_NO_ADL_BARRIER #define BOOST_NO_INITIALIZER_LISTS +// +// C++0x features +// + #if(__SUNPRO_CC >= 0x590) # define BOOST_HAS_LONG_LONG +#else +# define BOOST_NO_LONG_LONG #endif +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES + +// +// Version +// #define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) @@ -96,9 +120,3 @@ # 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 index ece883f6..3d0be10b 100644 --- a/include/boost/config/compiler/vacpp.hpp +++ b/include/boost/config/compiler/vacpp.hpp @@ -56,6 +56,25 @@ // Some versions of the compiler have issues with default arguments on partial specializations #define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +// +// C++0x features +// +// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG +// +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index d6a474a9..7da5ee3d 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -121,6 +121,8 @@ #endif #if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS) # define BOOST_HAS_LONG_LONG +#else +# define BOOST_NO_LONG_LONG #endif #if (_MSC_VER >= 1400) && !defined(_DEBUG) # define BOOST_HAS_NRVO @@ -141,6 +143,25 @@ // #define BOOST_HAS_DECLSPEC // +// C++0x features +// +// See above for BOOST_NO_LONG_LONG + +#define BOOST_NO_CHAR16_T +#define BOOST_NO_CHAR32_T +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_DECLTYPE +#define BOOST_NO_DEFAULTED_FUNCTIONS +#define BOOST_NO_DELETED_FUNCTIONS +#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_EXTERN_TEMPLATE +#define BOOST_NO_RAW_LITERALS +#define BOOST_NO_RVALUE_REFERENCES +#define BOOST_NO_SCOPED_ENUMS +#define BOOST_NO_STATIC_ASSERT +#define BOOST_NO_UNICODE_LITERALS +#define BOOST_NO_VARIADIC_TEMPLATES +// // prefix and suffix headers: // #ifndef BOOST_ABI_PREFIX diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index fd81f976..69e7eb69 100644 --- a/test/all/Jamfile.v2 +++ b/test/all/Jamfile.v2 @@ -1,7 +1,7 @@ # # Regression test Jamfile for boost configuration setup. # *** DO NOT EDIT THIS FILE BY HAND *** -# This file was automatically generated on Tue Dec 16 16:41:41 2008 +# This file was automatically generated on Fri Feb 20 21:15:18 2009 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -190,6 +190,15 @@ test-suite "BOOST_NO_AUTO_PTR" : test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" : [ run ../no_bcb_partial_spec_pass.cpp ] [ compile-fail ../no_bcb_partial_spec_fail.cpp ] ; +test-suite "BOOST_NO_CHAR16_T" : +[ run ../no_char16_t_pass.cpp ] +[ compile-fail ../no_char16_t_fail.cpp ] ; +test-suite "BOOST_NO_CHAR32_T" : +[ run ../no_char32_t_pass.cpp ] +[ compile-fail ../no_char32_t_fail.cpp ] ; +test-suite "BOOST_NO_CONSTEXPR" : +[ run ../no_constexpr_pass.cpp ] +[ compile-fail ../no_constexpr_fail.cpp ] ; test-suite "BOOST_NO_CTYPE_FUNCTIONS" : [ run ../no_ctype_functions_pass.cpp ] [ compile-fail ../no_ctype_functions_fail.cpp ] ; @@ -205,9 +214,18 @@ test-suite "BOOST_NO_CWCHAR" : test-suite "BOOST_NO_CWCTYPE" : [ run ../no_cwctype_pass.cpp ] [ compile-fail ../no_cwctype_fail.cpp ] ; +test-suite "BOOST_NO_DECLTYPE" : +[ run ../no_decltype_pass.cpp ] +[ compile-fail ../no_decltype_fail.cpp ] ; test-suite "BOOST_DEDUCED_TYPENAME" : [ run ../no_ded_typename_pass.cpp ] [ compile-fail ../no_ded_typename_fail.cpp ] ; +test-suite "BOOST_NO_DEFAULTED_FUNCTIONS" : +[ run ../no_defaulted_functions_pass.cpp ] +[ compile-fail ../no_defaulted_functions_fail.cpp ] ; +test-suite "BOOST_NO_DELETED_FUNCTIONS" : +[ run ../no_deleted_functions_pass.cpp ] +[ compile-fail ../no_deleted_functions_fail.cpp ] ; test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" : [ run ../no_dep_nested_class_pass.cpp ] [ compile-fail ../no_dep_nested_class_fail.cpp ] ; @@ -220,9 +238,15 @@ test-suite "BOOST_NO_EXCEPTIONS" : test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" : [ run ../no_excep_std_pass.cpp ] [ compile-fail ../no_excep_std_fail.cpp ] ; +test-suite "BOOST_NO_EXPLICIT_CONVERSION_OPERATORS" : +[ run ../no_explicit_cvt_ops_pass.cpp ] +[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ; test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" : [ run ../no_exp_func_tem_arg_pass.cpp ] [ compile-fail ../no_exp_func_tem_arg_fail.cpp ] ; +test-suite "BOOST_NO_EXTERN_TEMPLATE" : +[ run ../no_extern_template_pass.cpp ] +[ compile-fail ../no_extern_template_fail.cpp ] ; test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" : [ run ../no_function_type_spec_pass.cpp ] [ compile-fail ../no_function_type_spec_fail.cpp ] ; @@ -262,6 +286,9 @@ test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" : test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" : [ run ../no_ll_limits_pass.cpp ] [ compile-fail ../no_ll_limits_fail.cpp ] ; +test-suite "BOOST_NO_LONG_LONG" : +[ run ../no_long_long_pass.cpp ] +[ compile-fail ../no_long_long_fail.cpp ] ; test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" : [ run ../no_mem_func_spec_pass.cpp ] [ compile-fail ../no_mem_func_spec_fail.cpp ] ; @@ -295,18 +322,30 @@ test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" : test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" : [ run ../no_ptr_mem_const_pass.cpp ] [ compile-fail ../no_ptr_mem_const_fail.cpp ] ; +test-suite "BOOST_NO_RAW_LITERALS" : +[ run ../no_raw_literals_pass.cpp ] +[ compile-fail ../no_raw_literals_fail.cpp ] ; test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" : [ run ../no_ret_det_pass.cpp ] [ compile-fail ../no_ret_det_fail.cpp ] ; test-suite "BOOST_NO_RTTI" : [ run ../no_rtti_pass.cpp ] [ compile-fail ../no_rtti_fail.cpp ] ; +test-suite "BOOST_NO_RVALUE_REFERENCES" : +[ run ../no_rvalue_references_pass.cpp ] +[ compile-fail ../no_rvalue_references_fail.cpp ] ; +test-suite "BOOST_NO_SCOPED_ENUMS" : +[ run ../no_scoped_enums_pass.cpp ] +[ compile-fail ../no_scoped_enums_fail.cpp ] ; test-suite "BOOST_NO_SFINAE" : [ run ../no_sfinae_pass.cpp ] [ compile-fail ../no_sfinae_fail.cpp ] ; test-suite "BOOST_NO_STRINGSTREAM" : [ run ../no_sstream_pass.cpp ] [ compile-fail ../no_sstream_fail.cpp ] ; +test-suite "BOOST_NO_STATIC_ASSERT" : +[ run ../no_static_assert_pass.cpp ] +[ compile-fail ../no_static_assert_fail.cpp ] ; test-suite "BOOST_NO_STDC_NAMESPACE" : [ run ../no_stdc_namespace_pass.cpp ] [ compile-fail ../no_stdc_namespace_fail.cpp ] ; @@ -367,6 +406,9 @@ test-suite "BOOST_NO_TYPEID" : test-suite "BOOST_NO_TYPENAME_WITH_CTOR" : [ run ../no_typename_with_ctor_pass.cpp ] [ compile-fail ../no_typename_with_ctor_fail.cpp ] ; +test-suite "BOOST_NO_UNICODE_LITERALS" : +[ run ../no_unicode_literals_pass.cpp ] +[ compile-fail ../no_unicode_literals_fail.cpp ] ; test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" : [ run ../no_using_breaks_adl_pass.cpp ] [ compile-fail ../no_using_breaks_adl_fail.cpp ] ; @@ -376,6 +418,9 @@ test-suite "BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE" : test-suite "BOOST_NO_USING_TEMPLATE" : [ run ../no_using_template_pass.cpp ] [ compile-fail ../no_using_template_fail.cpp ] ; +test-suite "BOOST_NO_VARIADIC_TEMPLATES" : +[ run ../no_variadic_templates_pass.cpp ] +[ compile-fail ../no_variadic_templates_fail.cpp ] ; test-suite "BOOST_NO_VOID_RETURNS" : [ run ../no_void_returns_pass.cpp ] [ compile-fail ../no_void_returns_fail.cpp ] ; diff --git a/test/boost_no_constexpr.ipp b/test/boost_no_constexpr.ipp new file mode 100644 index 00000000..4ab80a02 --- /dev/null +++ b/test/boost_no_constexpr.ipp @@ -0,0 +1,23 @@ +// (C) Copyright Beman Dawes 2008 + +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for more information. + +// MACRO: BOOST_NO_CONSTEXPR +// TITLE: C++0x constexpr unavailable +// DESCRIPTION: The compiler does not support C++0x constexpr + +namespace boost_no_constexpr { + +constexpr int square(int x) { return x * x; } // from N2235 + +int test() +{ + int i = square(5); + return 0; +} + +} diff --git a/test/boost_no_defaulted_functions.ipp b/test/boost_no_defaulted_functions.ipp new file mode 100644 index 00000000..b7c5c9a7 --- /dev/null +++ b/test/boost_no_defaulted_functions.ipp @@ -0,0 +1,24 @@ +// (C) Copyright Beman Dawes 2008 + +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for more information. + +// MACRO: BOOST_NO_DEFAULTED_FUNCTIONS +// TITLE: C++0x defaulted functions unavailable +// DESCRIPTION: The compiler does not support C++0x defaulted functions + +namespace boost_no_defaulted_functions { + + struct foo { + foo() = default; + }; + +int test() +{ + return 0; +} + +} diff --git a/test/boost_no_deleted_functions.ipp b/test/boost_no_deleted_functions.ipp new file mode 100644 index 00000000..043fcda0 --- /dev/null +++ b/test/boost_no_deleted_functions.ipp @@ -0,0 +1,24 @@ +// (C) Copyright Beman Dawes 2008 + +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for more information. + +// MACRO: BOOST_NO_DELETED_FUNCTIONS +// TITLE: C++0x delete functions unavailable +// DESCRIPTION: The compiler does not support C++0x delete functions + +namespace boost_no_constexpr { + + struct foo { + foo() = delete; + }; + +int test() +{ + return 0; +} + +} diff --git a/test/boost_no_explicit_cvt_ops.ipp b/test/boost_no_explicit_cvt_ops.ipp new file mode 100644 index 00000000..2293c247 --- /dev/null +++ b/test/boost_no_explicit_cvt_ops.ipp @@ -0,0 +1,26 @@ +// (C) Copyright Beman Dawes 2008 + +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for more information. + +// MACRO: BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +// TITLE: C++0x explicit conversion operators unavailable +// DESCRIPTION: The compiler does not support C++0x explicit conversion operators + +namespace boost_no_explicit_conversion_operators { + + struct foo { + explicit operator int() { return 1; } + }; + +int test() +{ + foo f; + int i = int(f); + return 0; +} + +} diff --git a/test/boost_no_raw_literals.ipp b/test/boost_no_raw_literals.ipp new file mode 100644 index 00000000..54d22042 --- /dev/null +++ b/test/boost_no_raw_literals.ipp @@ -0,0 +1,22 @@ +// (C) Copyright Beman Dawes 2008 + +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for more information. + +// MACRO: BOOST_NO_RAW_LITERALS +// TITLE: C++0x raw string literals unavailable +// DESCRIPTION: The compiler does not support C++0x raw string literals + +namespace boost_no_raw_literals { + +int test() +{ + const char* s = R"[abc]"; + const wchar_t* ws = LR"[abc]"; + return 0; +} + +} diff --git a/test/config_info.cpp b/test/config_info.cpp index eb12b9c1..1b75f8cf 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -956,16 +956,24 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP); PRINT_MACRO(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS); PRINT_MACRO(BOOST_NO_AUTO_PTR); + PRINT_MACRO(BOOST_NO_CHAR16_T); + PRINT_MACRO(BOOST_NO_CHAR32_T); + PRINT_MACRO(BOOST_NO_CONSTEXPR); PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS); PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS); PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS); PRINT_MACRO(BOOST_NO_CWCHAR); PRINT_MACRO(BOOST_NO_CWCTYPE); + PRINT_MACRO(BOOST_NO_DECLTYPE); + PRINT_MACRO(BOOST_NO_DEFAULTED_FUNCTIONS); + PRINT_MACRO(BOOST_NO_DELETED_FUNCTIONS); PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS); PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS); PRINT_MACRO(BOOST_NO_EXCEPTIONS); PRINT_MACRO(BOOST_NO_EXCEPTION_STD_NAMESPACE); + PRINT_MACRO(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS); PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS); + PRINT_MACRO(BOOST_NO_EXTERN_TEMPLATE); PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING); PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS); PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION); @@ -977,6 +985,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_IS_ABSTRACT); PRINT_MACRO(BOOST_NO_LIMITS); PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS); + PRINT_MACRO(BOOST_NO_LONG_LONG); PRINT_MACRO(BOOST_NO_LONG_LONG_NUMERIC_LIMITS); PRINT_MACRO(BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS); PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATES); @@ -989,8 +998,12 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST); PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS); PRINT_MACRO(BOOST_NO_PRIVATE_IN_AGGREGATE); + PRINT_MACRO(BOOST_NO_RAW_LITERALS); PRINT_MACRO(BOOST_NO_RTTI); + PRINT_MACRO(BOOST_NO_RVALUE_REFERENCES); + PRINT_MACRO(BOOST_NO_SCOPED_ENUMS); PRINT_MACRO(BOOST_NO_SFINAE); + PRINT_MACRO(BOOST_NO_STATIC_ASSERT); PRINT_MACRO(BOOST_NO_STDC_NAMESPACE); PRINT_MACRO(BOOST_NO_STD_ALLOCATOR); PRINT_MACRO(BOOST_NO_STD_DISTANCE); @@ -1014,37 +1027,13 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP); PRINT_MACRO(BOOST_NO_TYPEID); PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR); + PRINT_MACRO(BOOST_NO_UNICODE_LITERALS); PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION); PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE); PRINT_MACRO(BOOST_NO_USING_TEMPLATE); + PRINT_MACRO(BOOST_NO_VARIADIC_TEMPLATES); PRINT_MACRO(BOOST_NO_VOID_RETURNS); - - - - - - - - - - - - - - - - - - - - - - - - - - // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); @@ -1073,14 +1062,3 @@ int main() return 0; } - - - - - - - - - - - diff --git a/test/config_test.cpp b/test/config_test.cpp index c542a82f..f9677e03 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Tue Dec 16 16:41:41 2008 +// This file was automatically generated on Fri Feb 20 21:15:18 2009 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -47,6 +47,21 @@ namespace boost_no_auto_ptr = empty_boost; #else namespace boost_bcb_partial_specialization_bug = empty_boost; #endif +#ifndef BOOST_NO_CHAR16_T +#include "boost_no_char16_t.ipp" +#else +namespace boost_no_char16_t = empty_boost; +#endif +#ifndef BOOST_NO_CHAR32_T +#include "boost_no_char32_t.ipp" +#else +namespace boost_no_char32_t = empty_boost; +#endif +#ifndef BOOST_NO_CONSTEXPR +#include "boost_no_constexpr.ipp" +#else +namespace boost_no_constexpr = empty_boost; +#endif #ifndef BOOST_NO_CTYPE_FUNCTIONS #include "boost_no_ctype_functions.ipp" #else @@ -72,11 +87,26 @@ namespace boost_no_cwchar = empty_boost; #else namespace boost_no_cwctype = empty_boost; #endif +#ifndef BOOST_NO_DECLTYPE +#include "boost_no_decltype.ipp" +#else +namespace boost_no_decltype = empty_boost; +#endif #ifndef BOOST_DEDUCED_TYPENAME #include "boost_no_ded_typename.ipp" #else namespace boost_deduced_typename = empty_boost; #endif +#ifndef BOOST_NO_DEFAULTED_FUNCTIONS +#include "boost_no_defaulted_functions.ipp" +#else +namespace boost_no_defaulted_functions = empty_boost; +#endif +#ifndef BOOST_NO_DELETED_FUNCTIONS +#include "boost_no_deleted_functions.ipp" +#else +namespace boost_no_deleted_functions = empty_boost; +#endif #ifndef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS #include "boost_no_dep_nested_class.ipp" #else @@ -97,11 +127,21 @@ namespace boost_no_exceptions = empty_boost; #else namespace boost_no_exception_std_namespace = empty_boost; #endif +#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#include "boost_no_explicit_cvt_ops.ipp" +#else +namespace boost_no_explicit_conversion_operators = empty_boost; +#endif #ifndef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS #include "boost_no_exp_func_tem_arg.ipp" #else namespace boost_no_explicit_function_template_arguments = empty_boost; #endif +#ifndef BOOST_NO_EXTERN_TEMPLATE +#include "boost_no_extern_template.ipp" +#else +namespace boost_no_extern_template = empty_boost; +#endif #ifndef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS #include "boost_no_function_type_spec.ipp" #else @@ -167,6 +207,11 @@ namespace boost_no_limits_compile_time_constants = empty_boost; #else namespace boost_no_long_long_numeric_limits = empty_boost; #endif +#ifndef BOOST_NO_LONG_LONG +#include "boost_no_long_long.ipp" +#else +namespace boost_no_long_long = empty_boost; +#endif #ifndef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS #include "boost_no_mem_func_spec.ipp" #else @@ -222,6 +267,11 @@ namespace boost_no_private_in_aggregate = empty_boost; #else namespace boost_no_pointer_to_member_const = empty_boost; #endif +#ifndef BOOST_NO_RAW_LITERALS +#include "boost_no_raw_literals.ipp" +#else +namespace boost_no_raw_literals = empty_boost; +#endif #ifndef BOOST_NO_UNREACHABLE_RETURN_DETECTION #include "boost_no_ret_det.ipp" #else @@ -232,6 +282,16 @@ namespace boost_no_unreachable_return_detection = empty_boost; #else namespace boost_no_rtti = empty_boost; #endif +#ifndef BOOST_NO_RVALUE_REFERENCES +#include "boost_no_rvalue_references.ipp" +#else +namespace boost_no_rvalue_references = empty_boost; +#endif +#ifndef BOOST_NO_SCOPED_ENUMS +#include "boost_no_scoped_enums.ipp" +#else +namespace boost_no_scoped_enums = empty_boost; +#endif #ifndef BOOST_NO_SFINAE #include "boost_no_sfinae.ipp" #else @@ -242,6 +302,11 @@ namespace boost_no_sfinae = empty_boost; #else namespace boost_no_stringstream = empty_boost; #endif +#ifndef BOOST_NO_STATIC_ASSERT +#include "boost_no_static_assert.ipp" +#else +namespace boost_no_static_assert = empty_boost; +#endif #ifndef BOOST_NO_STDC_NAMESPACE #include "boost_no_stdc_namespace.ipp" #else @@ -342,6 +407,11 @@ namespace boost_no_typeid = empty_boost; #else namespace boost_no_typename_with_ctor = empty_boost; #endif +#ifndef BOOST_NO_UNICODE_LITERALS +#include "boost_no_unicode_literals.ipp" +#else +namespace boost_no_unicode_literals = empty_boost; +#endif #ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #include "boost_no_using_breaks_adl.ipp" #else @@ -357,6 +427,11 @@ namespace boost_no_using_declaration_overloads_from_typename_base = empty_boost; #else namespace boost_no_using_template = empty_boost; #endif +#ifndef BOOST_NO_VARIADIC_TEMPLATES +#include "boost_no_variadic_templates.ipp" +#else +namespace boost_no_variadic_templates = empty_boost; +#endif #ifndef BOOST_NO_VOID_RETURNS #include "boost_no_void_returns.ipp" #else @@ -906,6 +981,21 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_BCB_PARTIAL_SPECIALIZATION_BUG at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_char16_t::test()) + { + std::cerr << "Failed test for BOOST_NO_CHAR16_T at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } + if(0 != boost_no_char32_t::test()) + { + std::cerr << "Failed test for BOOST_NO_CHAR32_T at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } + if(0 != boost_no_constexpr::test()) + { + std::cerr << "Failed test for BOOST_NO_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_ctype_functions::test()) { std::cerr << "Failed test for BOOST_NO_CTYPE_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -931,11 +1021,26 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_decltype::test()) + { + std::cerr << "Failed test for BOOST_NO_DECLTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_deduced_typename::test()) { std::cerr << "Failed test for BOOST_DEDUCED_TYPENAME at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_defaulted_functions::test()) + { + std::cerr << "Failed test for BOOST_NO_DEFAULTED_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } + if(0 != boost_no_deleted_functions::test()) + { + std::cerr << "Failed test for BOOST_NO_DELETED_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_dependent_nested_derivations::test()) { std::cerr << "Failed test for BOOST_NO_DEPENDENT_NESTED_DERIVATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -956,11 +1061,21 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_EXCEPTION_STD_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_explicit_conversion_operators::test()) + { + std::cerr << "Failed test for BOOST_NO_EXPLICIT_CONVERSION_OPERATORS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_explicit_function_template_arguments::test()) { std::cerr << "Failed test for BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_extern_template::test()) + { + std::cerr << "Failed test for BOOST_NO_EXTERN_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_function_type_specializations::test()) { std::cerr << "Failed test for BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1026,6 +1141,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_LONG_LONG_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_long_long::test()) + { + std::cerr << "Failed test for BOOST_NO_LONG_LONG at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_member_function_specializations::test()) { std::cerr << "Failed test for BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1081,6 +1201,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_POINTER_TO_MEMBER_CONST at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_raw_literals::test()) + { + std::cerr << "Failed test for BOOST_NO_RAW_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_unreachable_return_detection::test()) { std::cerr << "Failed test for BOOST_NO_UNREACHABLE_RETURN_DETECTION at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1091,6 +1216,16 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_RTTI at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_rvalue_references::test()) + { + std::cerr << "Failed test for BOOST_NO_RVALUE_REFERENCES at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } + if(0 != boost_no_scoped_enums::test()) + { + std::cerr << "Failed test for BOOST_NO_SCOPED_ENUMS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_sfinae::test()) { std::cerr << "Failed test for BOOST_NO_SFINAE at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1101,6 +1236,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_STRINGSTREAM at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_static_assert::test()) + { + std::cerr << "Failed test for BOOST_NO_STATIC_ASSERT at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_stdc_namespace::test()) { std::cerr << "Failed test for BOOST_NO_STDC_NAMESPACE at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1201,6 +1341,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_TYPENAME_WITH_CTOR at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_unicode_literals::test()) + { + std::cerr << "Failed test for BOOST_NO_UNICODE_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_function_scope_using_declaration_breaks_adl::test()) { std::cerr << "Failed test for BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1216,6 +1361,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_USING_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_variadic_templates::test()) + { + std::cerr << "Failed test for BOOST_NO_VARIADIC_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_void_returns::test()) { std::cerr << "Failed test for BOOST_NO_VOID_RETURNS at: " << __FILE__ << ":" << __LINE__ << std::endl; diff --git a/test/no_std_unordered_fail.cpp b/test/no_constexpr_fail.cpp similarity index 63% rename from test/no_std_unordered_fail.cpp rename to test/no_constexpr_fail.cpp index afc31bea..9406f784 100644 --- a/test/no_std_unordered_fail.cpp +++ b/test/no_constexpr_fail.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Tue Dec 16 16:41:40 2008 +// This file was automatically generated on Thu Jun 19 16:26:16 2008 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -6,14 +6,14 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org/libs/config for the most recent version.// -// Revision $Id: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $ +// Revision $Id$ // -// Test file for macro BOOST_NO_STD_UNORDERED +// Test file for macro BOOST_NO_CONSTEXPR // This file should not compile, if it does then -// BOOST_NO_STD_UNORDERED should not be defined. -// See file boost_no_std_unordered.ipp for details +// BOOST_NO_CONSTEXPR should not be defined. +// See file boost_no_constexpr.ipp for details // Must not have BOOST_ASSERT_CONFIG set; it defeats // the objective of this file: @@ -24,14 +24,14 @@ #include #include "test.hpp" -#ifdef BOOST_NO_STD_UNORDERED -#include "boost_no_std_unordered.ipp" +#ifdef BOOST_NO_CONSTEXPR +#include "boost_no_constexpr.ipp" #else #error "this file should not compile" #endif int main( int, char *[] ) { - return boost_no_std_unordered::test(); + return boost_no_constexpr::test(); } diff --git a/test/no_constexpr_pass.cpp b/test/no_constexpr_pass.cpp new file mode 100644 index 00000000..2c86f4e1 --- /dev/null +++ b/test/no_constexpr_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu Jun 19 16:26:16 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_CONSTEXPR +// This file should compile, if it does not then +// BOOST_NO_CONSTEXPR should be defined. +// See file boost_no_constexpr.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_NO_CONSTEXPR +#include "boost_no_constexpr.ipp" +#else +namespace boost_no_constexpr = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_constexpr::test(); +} + diff --git a/test/no_defaulted_functions_fail.cpp b/test/no_defaulted_functions_fail.cpp new file mode 100644 index 00000000..eb681802 --- /dev/null +++ b/test/no_defaulted_functions_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Fri Jun 20 11:01:41 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_DEFAULTED_FUNCTIONS +// This file should not compile, if it does then +// BOOST_NO_DEFAULTED_FUNCTIONS should not be defined. +// See file boost_no_defaulted_functions.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_NO_DEFAULTED_FUNCTIONS +#include "boost_no_defaulted_functions.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_defaulted_functions::test(); +} + diff --git a/test/no_defaulted_functions_pass.cpp b/test/no_defaulted_functions_pass.cpp new file mode 100644 index 00000000..eae0c65d --- /dev/null +++ b/test/no_defaulted_functions_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Fri Jun 20 11:01:41 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_DEFAULTED_FUNCTIONS +// This file should compile, if it does not then +// BOOST_NO_DEFAULTED_FUNCTIONS should be defined. +// See file boost_no_defaulted_functions.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_NO_DEFAULTED_FUNCTIONS +#include "boost_no_defaulted_functions.ipp" +#else +namespace boost_no_defaulted_functions = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_defaulted_functions::test(); +} + diff --git a/test/no_deleted_functions_fail.cpp b/test/no_deleted_functions_fail.cpp new file mode 100644 index 00000000..4d90d761 --- /dev/null +++ b/test/no_deleted_functions_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu Jun 19 16:26:16 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_DELETED_FUNCTIONS +// This file should not compile, if it does then +// BOOST_NO_DELETED_FUNCTIONS should not be defined. +// See file boost_no_deleted_functions.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_NO_DELETED_FUNCTIONS +#include "boost_no_deleted_functions.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_deleted_functions::test(); +} + diff --git a/test/no_deleted_functions_pass.cpp b/test/no_deleted_functions_pass.cpp new file mode 100644 index 00000000..b9563250 --- /dev/null +++ b/test/no_deleted_functions_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu Jun 19 16:26:16 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_DELETED_FUNCTIONS +// This file should compile, if it does not then +// BOOST_NO_DELETED_FUNCTIONS should be defined. +// See file boost_no_deleted_functions.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_NO_DELETED_FUNCTIONS +#include "boost_no_deleted_functions.ipp" +#else +namespace boost_no_deleted_functions = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_deleted_functions::test(); +} + diff --git a/test/no_explicit_cvt_ops_fail.cpp b/test/no_explicit_cvt_ops_fail.cpp new file mode 100644 index 00000000..a9e83183 --- /dev/null +++ b/test/no_explicit_cvt_ops_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Fri Jun 20 11:51:15 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +// This file should not compile, if it does then +// BOOST_NO_EXPLICIT_CONVERSION_OPERATORS should not be defined. +// See file boost_no_explicit_cvt_ops.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#include "boost_no_explicit_cvt_ops.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_explicit_conversion_operators::test(); +} + diff --git a/test/no_explicit_cvt_ops_pass.cpp b/test/no_explicit_cvt_ops_pass.cpp new file mode 100644 index 00000000..91efc1ea --- /dev/null +++ b/test/no_explicit_cvt_ops_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Fri Jun 20 11:51:15 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +// This file should compile, if it does not then +// BOOST_NO_EXPLICIT_CONVERSION_OPERATORS should be defined. +// See file boost_no_explicit_cvt_ops.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#include "boost_no_explicit_cvt_ops.ipp" +#else +namespace boost_no_explicit_conversion_operators = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_explicit_conversion_operators::test(); +} + diff --git a/test/no_raw_literals_fail.cpp b/test/no_raw_literals_fail.cpp new file mode 100644 index 00000000..48ed107b --- /dev/null +++ b/test/no_raw_literals_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu Jun 19 16:26:16 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_RAW_LITERALS +// This file should not compile, if it does then +// BOOST_NO_RAW_LITERALS should not be defined. +// See file boost_no_raw_literals.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_NO_RAW_LITERALS +#include "boost_no_raw_literals.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_raw_literals::test(); +} + diff --git a/test/no_raw_literals_pass.cpp b/test/no_raw_literals_pass.cpp new file mode 100644 index 00000000..725b6c15 --- /dev/null +++ b/test/no_raw_literals_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu Jun 19 16:26:16 2008 +// by libs/config/tools/generate.cpp +// Copyright John Maddock 2002-4. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for the most recent version.// +// Revision $Id$ +// + + +// Test file for macro BOOST_NO_RAW_LITERALS +// This file should compile, if it does not then +// BOOST_NO_RAW_LITERALS should be defined. +// See file boost_no_raw_literals.ipp for details + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_NO_RAW_LITERALS +#include "boost_no_raw_literals.ipp" +#else +namespace boost_no_raw_literals = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_raw_literals::test(); +} +