From 95068b45101f8a5d4f3712227afffc6ddb15afc8 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Sun, 22 Apr 2012 10:57:10 +0000 Subject: [PATCH] Add four new config macros: BOOST_NO_CXX11_ALLOCATOR BOOST_NO_CXX11_ATOMIC_SMART_PTR BOOST_NO_CXX11_HDR_FUNCTIONAL BOOST_NO_CXX11_SMART_PTR [SVN r78132] --- .../boost_config/boost_macro_reference.html | 51 +++++++++++++++++++ doc/html/index.html | 2 +- doc/macro_reference.qbk | 4 ++ include/boost/config/stdlib/dinkumware.hpp | 4 ++ include/boost/config/stdlib/libcomo.hpp | 4 ++ include/boost/config/stdlib/libstdcpp3.hpp | 6 ++- include/boost/config/stdlib/modena.hpp | 4 ++ include/boost/config/stdlib/msl.hpp | 4 ++ include/boost/config/stdlib/roguewave.hpp | 4 ++ include/boost/config/stdlib/sgi.hpp | 4 ++ include/boost/config/stdlib/stlport.hpp | 4 ++ include/boost/config/stdlib/vacpp.hpp | 4 ++ test/all/Jamfile.v2 | 14 ++++- test/boost_no_cxx11_allocator.ipp | 34 +++++++++++++ test/boost_no_cxx11_atomic_sp.ipp | 37 ++++++++++++++ test/boost_no_cxx11_smart_ptr.ipp | 32 ++++++++++++ test/boost_no_cxx_hdr_functional.ipp | 43 ++++++++++++++++ test/config_info.cpp | 6 +++ test/config_test.cpp | 42 ++++++++++++++- test/no_cxx11_allocator_fail.cpp | 37 ++++++++++++++ test/no_cxx11_allocator_pass.cpp | 37 ++++++++++++++ test/no_cxx11_atomic_sp_fail.cpp | 37 ++++++++++++++ test/no_cxx11_atomic_sp_pass.cpp | 37 ++++++++++++++ test/no_cxx11_smart_ptr_fail.cpp | 37 ++++++++++++++ test/no_cxx11_smart_ptr_pass.cpp | 37 ++++++++++++++ test/no_cxx_hdr_functional_fail.cpp | 37 ++++++++++++++ test/no_cxx_hdr_functional_pass.cpp | 37 ++++++++++++++ 27 files changed, 595 insertions(+), 4 deletions(-) create mode 100644 test/boost_no_cxx11_allocator.ipp create mode 100644 test/boost_no_cxx11_atomic_sp.ipp create mode 100644 test/boost_no_cxx11_smart_ptr.ipp create mode 100644 test/boost_no_cxx_hdr_functional.ipp create mode 100644 test/no_cxx11_allocator_fail.cpp create mode 100644 test/no_cxx11_allocator_pass.cpp create mode 100644 test/no_cxx11_atomic_sp_fail.cpp create mode 100644 test/no_cxx11_atomic_sp_pass.cpp create mode 100644 test/no_cxx11_smart_ptr_fail.cpp create mode 100644 test/no_cxx11_smart_ptr_pass.cpp create mode 100644 test/no_cxx_hdr_functional_fail.cpp create mode 100644 test/no_cxx_hdr_functional_pass.cpp diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index d12be108..25ec1a13 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -2304,6 +2304,31 @@ + +

+ BOOST_NO_CXX11_ALLOCATOR +

+ + +

+ The standard library does not provide a C++11 version of std::allocator in <memory>. +

+ + + + +

+ BOOST_NO_CXX11_ATOMIC_SP +

+ + +

+ The standard library <memory> does not support atomic smart + pointer operations. +

+ + +

BOOST_NO_CXX11_HDR_ARRAY @@ -2364,6 +2389,19 @@ + +

+ BOOST_NO_CXX11_HDR_FUNCTIONAL +

+ + +

+ The standard library does not provide a C++11 compatible version + of <functional>. +

+ + +

BOOST_NO_CXX11_HDR_FUTURE @@ -2520,6 +2558,19 @@ + +

+ BOOST_NO_CXX11_SMART_PTR +

+ + +

+ The standard library header <memory> has no shared_ptr and + unique_ptr. +

+ + +

BOOST_NO_AUTO_DECLARATIONS diff --git a/doc/html/index.html b/doc/html/index.html index 0d5204a2..21c0b2f6 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -951,7 +951,7 @@ - +

Last revised: March 21, 2012 at 18:21:54 GMT

Last revised: April 22, 2012 at 10:30:25 GMT


diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index e61239ef..58c264e0 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -538,11 +538,14 @@ that are not yet supported by a particular compiler or library. [table [[Macro ][Description ]] +[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in .]] +[[`BOOST_NO_CXX11_ATOMIC_SP`][The standard library does not support atomic smart pointer operations.]] [[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_CODECVT`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_CONDITION_VARIABLE`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_FORWARD_LIST`][The standard library does not provide header .]] +[[`BOOST_NO_CXX11_HDR_FUNCTIONAL`][The standard library does not provide a C++11 compatible version of .]] [[`BOOST_NO_CXX11_HDR_FUTURE`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_MUTEX`][The standard library does not provide header .]] @@ -556,6 +559,7 @@ that are not yet supported by a particular compiler or library. [[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header .]] +[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header has no shared_ptr and unique_ptr.]] [[`BOOST_NO_AUTO_DECLARATIONS`][The compiler does not support type deduction for variables declared with the `auto` keyword (`auto var = ...;`). diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index c67867bf..1b89d28b 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -106,7 +106,9 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_CXX11_HDR_TUPLE # define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_SMART_PTR #endif #if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE) @@ -122,6 +124,8 @@ # define BOOST_NO_CXX11_HDR_MUTEX # define BOOST_NO_CXX11_HDR_RATIO # define BOOST_NO_CXX11_HDR_THREAD +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR #ifdef _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp index e635d45a..c92635a7 100644 --- a/include/boost/config/stdlib/libcomo.hpp +++ b/include/boost/config/stdlib/libcomo.hpp @@ -55,6 +55,10 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL // // Intrinsic type_traits support. diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index ed6db0db..281f56ff 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -111,6 +111,8 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET +# define BOOST_NO_CXX11_HDR_FUNCTIONAL +# define BOOST_NO_CXX11_SMART_PTR #endif // C++0x headers in GCC 4.4.0 and later @@ -141,7 +143,7 @@ # define BOOST_NO_CXX11_HDR_RANDOM #endif -// C++0x features in GCC 4.5.0 and later +// C++0x features in GCC 4.6.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__) # define BOOST_NO_CXX11_HDR_TYPEINDEX @@ -151,5 +153,7 @@ # define BOOST_NO_CXX11_HDR_THREAD # define BOOST_NO_CXX11_HDR_TYPE_TRAITS # define BOOST_NO_CXX11_HDR_CODECVT +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR // --- end --- diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp index 95400dd8..a4c7b76c 100644 --- a/include/boost/config/stdlib/modena.hpp +++ b/include/boost/config/stdlib/modena.hpp @@ -44,6 +44,10 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "Modena C++ standard library" diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp index 524f203f..44151162 100644 --- a/include/boost/config/stdlib/msl.hpp +++ b/include/boost/config/stdlib/msl.hpp @@ -68,6 +68,10 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #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 index c5582b0b..5273c72b 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -180,4 +180,8 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp index 428d75fd..10b4ee22 100644 --- a/include/boost/config/stdlib/sgi.hpp +++ b/include/boost/config/stdlib/sgi.hpp @@ -138,6 +138,10 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "SGI standard library" diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index f0418de5..f2a3a9a0 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -232,6 +232,10 @@ namespace boost { using std::min; using std::max; } # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #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 index da1329e5..2c609d6e 100644 --- a/include/boost/config/stdlib/vacpp.hpp +++ b/include/boost/config/stdlib/vacpp.hpp @@ -44,6 +44,10 @@ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_CXX11_ALLOCATOR +# define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_SMART_PTR +# define BOOST_NO_CXX11_HDR_FUNCTIONAL #define BOOST_STDLIB "Visual Age default standard library" diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index 149538e8..b839b995 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 Wed Mar 21 13:05:19 2012 +# This file was automatically generated on Sun Apr 22 11:55:04 2012 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -223,6 +223,12 @@ 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_CXX11_ALLOCATOR" : +[ run ../no_cxx11_allocator_pass.cpp ] +[ compile-fail ../no_cxx11_allocator_fail.cpp ] ; +test-suite "BOOST_NO_CXX11_ATOMIC_SMART_PTR" : +[ run ../no_cxx11_atomic_sp_pass.cpp ] +[ compile-fail ../no_cxx11_atomic_sp_fail.cpp ] ; test-suite "BOOST_NO_CXX11_HDR_ARRAY" : [ run ../no_cxx11_hdr_array_pass.cpp ] [ compile-fail ../no_cxx11_hdr_array_fail.cpp ] ; @@ -277,6 +283,12 @@ test-suite "BOOST_NO_CXX11_HDR_UNORDERED_MAP" : test-suite "BOOST_NO_CXX11_HDR_UNORDERED_SET" : [ run ../no_cxx11_hdr_unordered_set_pass.cpp ] [ compile-fail ../no_cxx11_hdr_unordered_set_fail.cpp ] ; +test-suite "BOOST_NO_CXX11_SMART_PTR" : +[ run ../no_cxx11_smart_ptr_pass.cpp ] +[ compile-fail ../no_cxx11_smart_ptr_fail.cpp ] ; +test-suite "BOOST_NO_CXX11_HDR_FUNCTIONAL" : +[ run ../no_cxx_hdr_functional_pass.cpp ] +[ compile-fail ../no_cxx_hdr_functional_fail.cpp ] ; test-suite "BOOST_NO_DECLTYPE" : [ run ../no_decltype_pass.cpp ] [ compile-fail ../no_decltype_fail.cpp ] ; diff --git a/test/boost_no_cxx11_allocator.ipp b/test/boost_no_cxx11_allocator.ipp new file mode 100644 index 00000000..2799daa9 --- /dev/null +++ b/test/boost_no_cxx11_allocator.ipp @@ -0,0 +1,34 @@ +// (C) Copyright John Maddock 2012 + +// 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_CXX11_ALLOCATOR +// TITLE: C++11 doesn't have C++0x allocator support +// DESCRIPTION: The compiler does not support the C++11 allocator features added to + +#include + +namespace boost_no_cxx11_allocator { + +int test() +{ + std::pointer_traits* p = 0; + std::pointer_safety s = std::relaxed; + + char* (*l_undeclare_reachable)(char *p) = std::undeclare_reachable; + void (*l_declare_no_pointers)(char *p, size_t n) = std::declare_no_pointers; + void (*l_undeclare_no_pointers)(char *p, size_t n) = std::undeclare_no_pointers; + std::pointer_safety (*l_get_pointer_safety)() = std::get_pointer_safety; + void* (*l_align)(std::size_t alignment, std::size_t size, void *&ptr, std::size_t& space) = std::align; + std::allocator_arg_t aat; + std::uses_allocator > ua; + std::allocator_traits > at; + + return 0; +} + +} diff --git a/test/boost_no_cxx11_atomic_sp.ipp b/test/boost_no_cxx11_atomic_sp.ipp new file mode 100644 index 00000000..48f17c2e --- /dev/null +++ b/test/boost_no_cxx11_atomic_sp.ipp @@ -0,0 +1,37 @@ +// (C) Copyright John Maddock 2012 + +// 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_CXX11_ATOMIC_SMART_PTR +// TITLE: C++11 does not support atomic smart pointer operations +// DESCRIPTION: The compiler does not support the C++11 atomic smart pointer features added to + +#include + +namespace boost_no_cxx11_atomic_smart_ptr { + +int test() +{ + std::shared_ptr spi(new int), spi2(new int); + spi = std::static_pointer_cast(spi); + + atomic_is_lock_free(&spi); + atomic_load(&spi); + atomic_load_explicit(&spi, std::memory_order_relaxed); + atomic_store(&spi, spi2); + atomic_store_explicit(&spi, spi2, std::memory_order_relaxed); + atomic_exchange(&spi, spi2); + atomic_exchange_explicit(&spi, std::memory_order_relaxed); + atomic_compare_exchange_weak(&spi, &spi2, spi); + atomic_compare_exchange_strong(&spi, &spi2, spi); + atomic_compare_exchange_weak_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed); + atomic_compare_exchange_strong_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed); + + return 0; +} + +} diff --git a/test/boost_no_cxx11_smart_ptr.ipp b/test/boost_no_cxx11_smart_ptr.ipp new file mode 100644 index 00000000..817a0249 --- /dev/null +++ b/test/boost_no_cxx11_smart_ptr.ipp @@ -0,0 +1,32 @@ +// (C) Copyright John Maddock 2012 + +// 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_CXX11_SMART_PTR +// TITLE: C++11 has no shared_ptr and unique_ptr +// DESCRIPTION: The compiler does not support the C++11 smart pointer features added to + +#include +// Hash functions for shared pointers should be in +// but with some std lib's we have to include as well... +#include + +namespace boost_no_cxx11_smart_ptr { + +int test() +{ + std::unique_ptr upi(new int); + std::shared_ptr spi(new int), spi2(new int); + spi = std::static_pointer_cast(spi); + + std::hash > h1; + std::hash > h2; + + return 0; +} + +} diff --git a/test/boost_no_cxx_hdr_functional.ipp b/test/boost_no_cxx_hdr_functional.ipp new file mode 100644 index 00000000..fbcc46b0 --- /dev/null +++ b/test/boost_no_cxx_hdr_functional.ipp @@ -0,0 +1,43 @@ +// (C) Copyright John Maddock 2012 + +// 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_CXX11_HDR_FUNCTIONAL +// TITLE: C++11 unavailable +// DESCRIPTION: The compiler does not support the C++11 features added to + +#include + +void f(int, float){} + +namespace boost_no_cxx11_hdr_functional { + +int test() +{ + int i = 0; + std::ref(i); + std::cref(i); + + std::bit_and b1; + std::bit_or b2; + std::bit_xor b3; + + std::hash hs; + + (void)b1; + (void)b2; + (void)b3; + (void)hs; + + std::bind(f, std::placeholders::_1, 0.0f); + + std::function fun(f); + + return 0; +} + +} diff --git a/test/config_info.cpp b/test/config_info.cpp index 708c8ac6..46984132 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -994,11 +994,14 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS); PRINT_MACRO(BOOST_NO_CWCHAR); PRINT_MACRO(BOOST_NO_CWCTYPE); + PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR); + PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR); PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY); PRINT_MACRO(BOOST_NO_CXX11_HDR_CHRONO); PRINT_MACRO(BOOST_NO_CXX11_HDR_CODECVT); PRINT_MACRO(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE); PRINT_MACRO(BOOST_NO_CXX11_HDR_FORWARD_LIST); + PRINT_MACRO(BOOST_NO_CXX11_HDR_FUNCTIONAL); PRINT_MACRO(BOOST_NO_CXX11_HDR_FUTURE); PRINT_MACRO(BOOST_NO_CXX11_HDR_INITIALIZER_LIST); PRINT_MACRO(BOOST_NO_CXX11_HDR_MUTEX); @@ -1012,6 +1015,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_CXX11_HDR_TYPE_TRAITS); PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_MAP); PRINT_MACRO(BOOST_NO_CXX11_HDR_UNORDERED_SET); + PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR); PRINT_MACRO(BOOST_NO_DECLTYPE); PRINT_MACRO(BOOST_NO_DECLTYPE_N3276); PRINT_MACRO(BOOST_NO_DEFAULTED_FUNCTIONS); @@ -1107,6 +1111,8 @@ void print_boost_macros() + + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index 7d3c2c5b..63dd1f70 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Wed Mar 21 13:05:19 2012 +// This file was automatically generated on Sun Apr 22 11:55:04 2012 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -102,6 +102,16 @@ namespace boost_no_cwchar = empty_boost; #else namespace boost_no_cwctype = empty_boost; #endif +#ifndef BOOST_NO_CXX11_ALLOCATOR +#include "boost_no_cxx11_allocator.ipp" +#else +namespace boost_no_cxx11_allocator = empty_boost; +#endif +#ifndef BOOST_NO_CXX11_ATOMIC_SMART_PTR +#include "boost_no_cxx11_atomic_sp.ipp" +#else +namespace boost_no_cxx11_atomic_smart_ptr = empty_boost; +#endif #ifndef BOOST_NO_CXX11_HDR_ARRAY #include "boost_no_cxx11_hdr_array.ipp" #else @@ -192,6 +202,16 @@ namespace boost_no_cxx11_hdr_unordered_map = empty_boost; #else namespace boost_no_cxx11_hdr_unordered_set = empty_boost; #endif +#ifndef BOOST_NO_CXX11_SMART_PTR +#include "boost_no_cxx11_smart_ptr.ipp" +#else +namespace boost_no_cxx11_smart_ptr = empty_boost; +#endif +#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL +#include "boost_no_cxx_hdr_functional.ipp" +#else +namespace boost_no_cxx11_hdr_functional = empty_boost; +#endif #ifndef BOOST_NO_DECLTYPE #include "boost_no_decltype.ipp" #else @@ -1196,6 +1216,16 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_cxx11_allocator::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_ALLOCATOR at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } + if(0 != boost_no_cxx11_atomic_smart_ptr::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_ATOMIC_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_cxx11_hdr_array::test()) { std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1286,6 +1316,16 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_cxx11_smart_ptr::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } + if(0 != boost_no_cxx11_hdr_functional::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUNCTIONAL 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; diff --git a/test/no_cxx11_allocator_fail.cpp b/test/no_cxx11_allocator_fail.cpp new file mode 100644 index 00000000..0fdb14be --- /dev/null +++ b/test/no_cxx11_allocator_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:42 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_ALLOCATOR +// This file should not compile, if it does then +// BOOST_NO_CXX11_ALLOCATOR should not be defined. +// See file boost_no_cxx11_allocator.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_CXX11_ALLOCATOR +#include "boost_no_cxx11_allocator.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_allocator::test(); +} + diff --git a/test/no_cxx11_allocator_pass.cpp b/test/no_cxx11_allocator_pass.cpp new file mode 100644 index 00000000..20a4d63b --- /dev/null +++ b/test/no_cxx11_allocator_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:42 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_ALLOCATOR +// This file should compile, if it does not then +// BOOST_NO_CXX11_ALLOCATOR should be defined. +// See file boost_no_cxx11_allocator.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_CXX11_ALLOCATOR +#include "boost_no_cxx11_allocator.ipp" +#else +namespace boost_no_cxx11_allocator = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_allocator::test(); +} + diff --git a/test/no_cxx11_atomic_sp_fail.cpp b/test/no_cxx11_atomic_sp_fail.cpp new file mode 100644 index 00000000..9c8a6202 --- /dev/null +++ b/test/no_cxx11_atomic_sp_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:42 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_ATOMIC_SMART_PTR +// This file should not compile, if it does then +// BOOST_NO_CXX11_ATOMIC_SMART_PTR should not be defined. +// See file boost_no_cxx11_atomic_sp.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_CXX11_ATOMIC_SMART_PTR +#include "boost_no_cxx11_atomic_sp.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_atomic_smart_ptr::test(); +} + diff --git a/test/no_cxx11_atomic_sp_pass.cpp b/test/no_cxx11_atomic_sp_pass.cpp new file mode 100644 index 00000000..5b7b1719 --- /dev/null +++ b/test/no_cxx11_atomic_sp_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:42 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_ATOMIC_SMART_PTR +// This file should compile, if it does not then +// BOOST_NO_CXX11_ATOMIC_SMART_PTR should be defined. +// See file boost_no_cxx11_atomic_sp.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_CXX11_ATOMIC_SMART_PTR +#include "boost_no_cxx11_atomic_sp.ipp" +#else +namespace boost_no_cxx11_atomic_smart_ptr = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_atomic_smart_ptr::test(); +} + diff --git a/test/no_cxx11_smart_ptr_fail.cpp b/test/no_cxx11_smart_ptr_fail.cpp new file mode 100644 index 00000000..41908940 --- /dev/null +++ b/test/no_cxx11_smart_ptr_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:43 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_SMART_PTR +// This file should not compile, if it does then +// BOOST_NO_CXX11_SMART_PTR should not be defined. +// See file boost_no_cxx11_smart_ptr.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_CXX11_SMART_PTR +#include "boost_no_cxx11_smart_ptr.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_smart_ptr::test(); +} + diff --git a/test/no_cxx11_smart_ptr_pass.cpp b/test/no_cxx11_smart_ptr_pass.cpp new file mode 100644 index 00000000..334cae64 --- /dev/null +++ b/test/no_cxx11_smart_ptr_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:43 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_SMART_PTR +// This file should compile, if it does not then +// BOOST_NO_CXX11_SMART_PTR should be defined. +// See file boost_no_cxx11_smart_ptr.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_CXX11_SMART_PTR +#include "boost_no_cxx11_smart_ptr.ipp" +#else +namespace boost_no_cxx11_smart_ptr = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_smart_ptr::test(); +} + diff --git a/test/no_cxx_hdr_functional_fail.cpp b/test/no_cxx_hdr_functional_fail.cpp new file mode 100644 index 00000000..15f885a2 --- /dev/null +++ b/test/no_cxx_hdr_functional_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:43 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_HDR_FUNCTIONAL +// This file should not compile, if it does then +// BOOST_NO_CXX11_HDR_FUNCTIONAL should not be defined. +// See file boost_no_cxx_hdr_functional.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_CXX11_HDR_FUNCTIONAL +#include "boost_no_cxx_hdr_functional.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_hdr_functional::test(); +} + diff --git a/test/no_cxx_hdr_functional_pass.cpp b/test/no_cxx_hdr_functional_pass.cpp new file mode 100644 index 00000000..a5fe5c5c --- /dev/null +++ b/test/no_cxx_hdr_functional_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 22 11:15:43 2012 +// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $ +// + + +// Test file for macro BOOST_NO_CXX11_HDR_FUNCTIONAL +// This file should compile, if it does not then +// BOOST_NO_CXX11_HDR_FUNCTIONAL should be defined. +// See file boost_no_cxx_hdr_functional.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_CXX11_HDR_FUNCTIONAL +#include "boost_no_cxx_hdr_functional.ipp" +#else +namespace boost_no_cxx11_hdr_functional = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_hdr_functional::test(); +} +