From 9c117007ba7e33e43b626e431d94e7cc8cfb87e1 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 11 Feb 2014 18:20:31 +0200 Subject: [PATCH 1/7] Add BOOST_NO_CXX11_ADDRESSOF, BOOST_NO_CXX11_STD_ALIGN --- include/boost/config/stdlib/dinkumware.hpp | 5 +++++ include/boost/config/stdlib/libcomo.hpp | 2 ++ include/boost/config/stdlib/libstdcpp3.hpp | 2 ++ include/boost/config/stdlib/modena.hpp | 2 ++ include/boost/config/stdlib/msl.hpp | 2 ++ include/boost/config/stdlib/roguewave.hpp | 2 ++ include/boost/config/stdlib/sgi.hpp | 2 ++ include/boost/config/stdlib/stlport.hpp | 2 ++ include/boost/config/stdlib/vacpp.hpp | 2 ++ test/all/Jamfile.v2 | 8 +++++++- test/config_info.cpp | 8 ++++++++ test/config_test.cpp | 22 +++++++++++++++++++++- 12 files changed, 57 insertions(+), 2 deletions(-) diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index 96bc6dd0..24163ba4 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -135,6 +135,7 @@ # define BOOST_NO_CXX11_HDR_RATIO # define BOOST_NO_CXX11_HDR_THREAD # define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_STD_ALIGN #endif // C++0x headers implemented in 610 (as shipped by Microsoft) @@ -145,6 +146,10 @@ # define BOOST_NO_CXX11_ALLOCATOR #endif +// 520..610 have std::addressof, but it doesn't support functions +// +# define BOOST_NO_CXX11_ADDRESSOF + #ifdef _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER #else diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp index d02e9e07..5aacfb2a 100644 --- a/include/boost/config/stdlib/libcomo.hpp +++ b/include/boost/config/stdlib/libcomo.hpp @@ -59,6 +59,8 @@ # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF // // Intrinsic type_traits support. diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index d1322027..172a2df7 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -146,6 +146,7 @@ // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__) # define BOOST_NO_CXX11_HDR_TYPEINDEX +# define BOOST_NO_CXX11_ADDRESSOF #endif // C++0x features in GCC 4.7.0 and later @@ -168,5 +169,6 @@ # define BOOST_NO_CXX11_HDR_TYPE_TRAITS # define BOOST_NO_CXX11_HDR_CODECVT # define BOOST_NO_CXX11_ATOMIC_SMART_PTR +# define BOOST_NO_CXX11_STD_ALIGN // --- end --- diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp index 956bffce..f2a83888 100644 --- a/include/boost/config/stdlib/modena.hpp +++ b/include/boost/config/stdlib/modena.hpp @@ -48,6 +48,8 @@ # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF #define BOOST_STDLIB "Modena C++ standard library" diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp index 05e2582d..b8f43a12 100644 --- a/include/boost/config/stdlib/msl.hpp +++ b/include/boost/config/stdlib/msl.hpp @@ -72,6 +72,8 @@ # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF #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 72823d5d..2b4e8636 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -184,4 +184,6 @@ # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp index ed7ea613..bda77c22 100644 --- a/include/boost/config/stdlib/sgi.hpp +++ b/include/boost/config/stdlib/sgi.hpp @@ -142,6 +142,8 @@ # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF #define BOOST_STDLIB "SGI standard library" diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index 1b7beeb9..fd5d3a5a 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -232,6 +232,8 @@ namespace boost { using std::min; using std::max; } # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF #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 08268249..a58ec1c5 100644 --- a/include/boost/config/stdlib/vacpp.hpp +++ b/include/boost/config/stdlib/vacpp.hpp @@ -48,6 +48,8 @@ # define BOOST_NO_CXX11_SMART_PTR # define BOOST_NO_CXX11_HDR_FUNCTIONAL # define BOOST_NO_CXX11_HDR_ATOMIC +# define BOOST_NO_CXX11_STD_ALIGN +# define BOOST_NO_CXX11_ADDRESSOF #define BOOST_STDLIB "Visual Age default standard library" diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index ba09a333..bbc9c8c5 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 Thu Dec 12 19:09:40 2013 +# This file was automatically generated on Tue Feb 11 17:12:28 2014 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -226,6 +226,9 @@ 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_ADDRESSOF" : +[ run ../no_cxx11_addressof_pass.cpp ] +[ compile-fail ../no_cxx11_addressof_fail.cpp ] ; test-suite "BOOST_NO_CXX11_ALIGNAS" : [ run ../no_cxx11_alignas_pass.cpp ] [ compile-fail ../no_cxx11_alignas_fail.cpp ] ; @@ -301,6 +304,9 @@ test-suite "BOOST_NO_CXX11_NUMERIC_LIMITS" : 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_STD_ALIGN" : +[ run ../no_cxx11_std_align_pass.cpp ] +[ compile-fail ../no_cxx11_std_align_fail.cpp ] ; test-suite "BOOST_NO_CXX11_TRAILING_RESULT_TYPES" : [ run ../no_cxx11_trailing_result_types_pass.cpp ] [ compile-fail ../no_cxx11_trailing_result_types_fail.cpp ] ; diff --git a/test/config_info.cpp b/test/config_info.cpp index edef9653..5a174c09 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -992,6 +992,7 @@ 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_ADDRESSOF); PRINT_MACRO(BOOST_NO_CXX11_ALIGNAS); PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR); PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR); @@ -1039,6 +1040,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_CXX11_SCOPED_ENUMS); PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR); PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT); + PRINT_MACRO(BOOST_NO_CXX11_STD_ALIGN); PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES); PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES); PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS); @@ -1109,6 +1111,12 @@ void print_boost_macros() + + + + + + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index b06114f4..9bc6c545 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Thu Dec 12 19:09:40 2013 +// This file was automatically generated on Tue Feb 11 17:12:28 2014 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -102,6 +102,11 @@ namespace boost_no_cwchar = empty_boost; #else namespace boost_no_cwctype = empty_boost; #endif +#ifndef BOOST_NO_CXX11_ADDRESSOF +#include "boost_no_cxx11_addressof.ipp" +#else +namespace boost_no_cxx11_addressof = empty_boost; +#endif #ifndef BOOST_NO_CXX11_ALIGNAS #include "boost_no_cxx11_alignas.ipp" #else @@ -227,6 +232,11 @@ namespace boost_no_cxx11_numeric_limits = empty_boost; #else namespace boost_no_cxx11_smart_ptr = empty_boost; #endif +#ifndef BOOST_NO_CXX11_STD_ALIGN +#include "boost_no_cxx11_std_align.ipp" +#else +namespace boost_no_cxx11_std_align = empty_boost; +#endif #ifndef BOOST_NO_CXX11_TRAILING_RESULT_TYPES #include "boost_no_cxx11_trailing_result_types.ipp" #else @@ -1251,6 +1261,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_cxx11_addressof::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_ADDRESSOF at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_cxx11_alignas::test()) { std::cerr << "Failed test for BOOST_NO_CXX11_ALIGNAS at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1376,6 +1391,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_CXX11_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_cxx11_std_align::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_STD_ALIGN at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_cxx11_trailing_result_types::test()) { std::cerr << "Failed test for BOOST_NO_CXX11_TRAILING_RESULT_TYPES at: " << __FILE__ << ":" << __LINE__ << std::endl; From d9d19688a1e83f0e4fd73255f025110092fa3901 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 11 Feb 2014 18:25:38 +0200 Subject: [PATCH 2/7] Add test files as well --- test/boost_no_cxx11_addressof.ipp | 28 +++++++++++++++++++++++ test/boost_no_cxx11_std_align.ipp | 34 ++++++++++++++++++++++++++++ test/no_cxx11_addressof_fail.cpp | 37 +++++++++++++++++++++++++++++++ test/no_cxx11_addressof_pass.cpp | 37 +++++++++++++++++++++++++++++++ test/no_cxx11_std_align_fail.cpp | 37 +++++++++++++++++++++++++++++++ test/no_cxx11_std_align_pass.cpp | 37 +++++++++++++++++++++++++++++++ 6 files changed, 210 insertions(+) create mode 100644 test/boost_no_cxx11_addressof.ipp create mode 100644 test/boost_no_cxx11_std_align.ipp create mode 100644 test/no_cxx11_addressof_fail.cpp create mode 100644 test/no_cxx11_addressof_pass.cpp create mode 100644 test/no_cxx11_std_align_fail.cpp create mode 100644 test/no_cxx11_std_align_pass.cpp diff --git a/test/boost_no_cxx11_addressof.ipp b/test/boost_no_cxx11_addressof.ipp new file mode 100644 index 00000000..4f0a5e3c --- /dev/null +++ b/test/boost_no_cxx11_addressof.ipp @@ -0,0 +1,28 @@ +// (C) Copyright John Maddock 2012 +// (C) Copyright Peter Dimov 2014 + +// 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_ADDRESSOF +// TITLE: C++11 doesn't have a working std::addressof +// DESCRIPTION: The compiler does not support the function std::addressof added to + +#include + +namespace boost_no_cxx11_addressof { + +void x3() +{ +} + +int test() +{ + int x1, x2[3]; + return std::addressof(x1) != &x1 || std::addressof(x2) != &x2 || std::addressof(x3) != &x3; +} + +} diff --git a/test/boost_no_cxx11_std_align.ipp b/test/boost_no_cxx11_std_align.ipp new file mode 100644 index 00000000..145e24c6 --- /dev/null +++ b/test/boost_no_cxx11_std_align.ipp @@ -0,0 +1,34 @@ +// (C) Copyright John Maddock 2012 +// (C) Copyright Peter Dimov 2014 + +// 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_STD_ALIGN +// TITLE: C++11 doesn't have a working std::align +// DESCRIPTION: The compiler does not support the function std::align added to + +#include + +namespace boost_no_cxx11_std_align { + +int test() +{ + char buffer[ 32 ]; + + void * ptr = buffer + 1; + std::size_t space = sizeof( buffer ) - 1; + + void * p2 = std::align( 4, 2, ptr, space ); + + if( p2 == 0 ) return 1; + if( p2 != ptr ) return 1; + if( (size_t)p2 % 4 ) return 1; + + return 0; +} + +} diff --git a/test/no_cxx11_addressof_fail.cpp b/test/no_cxx11_addressof_fail.cpp new file mode 100644 index 00000000..9216b5ef --- /dev/null +++ b/test/no_cxx11_addressof_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Tue Feb 11 17:12:27 2014 +// 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_CXX11_ADDRESSOF +// This file should not compile, if it does then +// BOOST_NO_CXX11_ADDRESSOF should not be defined. +// See file boost_no_cxx11_addressof.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_ADDRESSOF +#include "boost_no_cxx11_addressof.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_addressof::test(); +} + diff --git a/test/no_cxx11_addressof_pass.cpp b/test/no_cxx11_addressof_pass.cpp new file mode 100644 index 00000000..e4e84abc --- /dev/null +++ b/test/no_cxx11_addressof_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Tue Feb 11 17:12:27 2014 +// 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_CXX11_ADDRESSOF +// This file should compile, if it does not then +// BOOST_NO_CXX11_ADDRESSOF should be defined. +// See file boost_no_cxx11_addressof.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_ADDRESSOF +#include "boost_no_cxx11_addressof.ipp" +#else +namespace boost_no_cxx11_addressof = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_addressof::test(); +} + diff --git a/test/no_cxx11_std_align_fail.cpp b/test/no_cxx11_std_align_fail.cpp new file mode 100644 index 00000000..7a87dea2 --- /dev/null +++ b/test/no_cxx11_std_align_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Tue Feb 11 16:14:42 2014 +// 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_CXX11_STD_ALIGN +// This file should not compile, if it does then +// BOOST_NO_CXX11_STD_ALIGN should not be defined. +// See file boost_no_cxx11_std_align.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_STD_ALIGN +#include "boost_no_cxx11_std_align.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_std_align::test(); +} + diff --git a/test/no_cxx11_std_align_pass.cpp b/test/no_cxx11_std_align_pass.cpp new file mode 100644 index 00000000..4ee4ba65 --- /dev/null +++ b/test/no_cxx11_std_align_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Tue Feb 11 16:14:42 2014 +// 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_CXX11_STD_ALIGN +// This file should compile, if it does not then +// BOOST_NO_CXX11_STD_ALIGN should be defined. +// See file boost_no_cxx11_std_align.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_STD_ALIGN +#include "boost_no_cxx11_std_align.ipp" +#else +namespace boost_no_cxx11_std_align = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_std_align::test(); +} + From 2547ba8d8c8644debe089eed24877d972ba2a96e Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 11 Feb 2014 18:28:58 +0200 Subject: [PATCH 3/7] Update macro_reference.qbk --- doc/macro_reference.qbk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index f223e8bd..f15cf425 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -578,6 +578,7 @@ that are not yet supported by a particular compiler or library. [table [[Macro ][Description ]] +[[`BOOST_NO_CXX11_ADDRESSOF`][The standard library header has no working std::addressof.]] [[`BOOST_NO_CXX11_ALIGNAS`][The compiler does not support the `alignas` keyword.]] [[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in .]] [[`BOOST_NO_CXX11_ATOMIC_SMART_PTR`][The standard library does not support atomic smart pointer operations.]] @@ -603,6 +604,7 @@ that are not yet supported by a particular compiler or library. [[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header .]] [[`BOOST_NO_CXX11_INLINE_NAMESPACES`][The compiler does not support inline namespaces.]] [[`BOOST_NO_CXX11_SMART_PTR`][The standard library header has no shared_ptr and unique_ptr.]] +[[`BOOST_NO_CXX11_STD_ALIGN`][The standard library header has no working std::align.]] [[`BOOST_NO_CXX11_AUTO_DECLARATIONS`][The compiler does not support type deduction for variables declared with the `auto` keyword (`auto var = ...;`). From e853f2714cece807b02cd3de73555375c3921d57 Mon Sep 17 00:00:00 2001 From: Glen Fernandes Date: Wed, 12 Feb 2014 18:05:29 -0800 Subject: [PATCH 4/7] Dinkumware's BOOST_NO_CXX11_STD_ALIGN at < 610 Dinkumware 540 has std::align but it is a non-conforming implementation. --- include/boost/config/stdlib/dinkumware.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index 24163ba4..6fb6322a 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -135,7 +135,6 @@ # define BOOST_NO_CXX11_HDR_RATIO # define BOOST_NO_CXX11_HDR_THREAD # define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_STD_ALIGN #endif // C++0x headers implemented in 610 (as shipped by Microsoft) @@ -144,6 +143,8 @@ # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST # define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_ALLOCATOR +// 540 has std::align but it is not a conforming implementation +# define BOOST_NO_CXX11_STD_ALIGN #endif // 520..610 have std::addressof, but it doesn't support functions From aad8233b4b1f2fc9c52f6d1a076d7c9a5d77463d Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 20 Feb 2014 11:42:18 +0000 Subject: [PATCH 5/7] Add dependency information to headers. --- .../boost/config/select_compiler_config.hpp | 29 +++++++++++++++++++ .../boost/config/select_platform_config.hpp | 24 +++++++++++++++ include/boost/config/select_stdlib_config.hpp | 16 +++++++++- 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/include/boost/config/select_compiler_config.hpp b/include/boost/config/select_compiler_config.hpp index 0eeb7ad3..62053ba0 100644 --- a/include/boost/config/select_compiler_config.hpp +++ b/include/boost/config/select_compiler_config.hpp @@ -112,3 +112,32 @@ # error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)" #endif + +#if 0 +// +// This section allows dependency scanners to find all the headers we *might* include: +// +#include "boost/config/compiler/gcc_xml.hpp" +#include "boost/config/compiler/cray.hpp" +#include "boost/config/compiler/comeau.hpp" +#include "boost/config/compiler/pathscale.hpp" +#include "boost/config/compiler/intel.hpp" +#include "boost/config/compiler/clang.hpp" +#include "boost/config/compiler/digitalmars.hpp" +#include "boost/config/compiler/gcc.hpp" +#include "boost/config/compiler/kai.hpp" +#include "boost/config/compiler/sgi_mipspro.hpp" +#include "boost/config/compiler/compaq_cxx.hpp" +#include "boost/config/compiler/greenhills.hpp" +#include "boost/config/compiler/codegear.hpp" +#include "boost/config/compiler/borland.hpp" +#include "boost/config/compiler/metrowerks.hpp" +#include "boost/config/compiler/sunpro_cc.hpp" +#include "boost/config/compiler/hp_acc.hpp" +#include "boost/config/compiler/mpw.hpp" +#include "boost/config/compiler/vacpp.hpp" +#include "boost/config/compiler/pgi.hpp" +#include "boost/config/compiler/visualc.hpp" + +#endif + diff --git a/include/boost/config/select_platform_config.hpp b/include/boost/config/select_platform_config.hpp index 2af61d2d..2dddc6a2 100644 --- a/include/boost/config/select_platform_config.hpp +++ b/include/boost/config/select_platform_config.hpp @@ -101,5 +101,29 @@ #endif +#if 0 +// +// This section allows dependency scanners to find all the files we *might* include: +// +# include "boost/config/platform/linux.hpp" +# include "boost/config/platform/bsd.hpp" +# include "boost/config/platform/solaris.hpp" +# include "boost/config/platform/irix.hpp" +# include "boost/config/platform/hpux.hpp" +# include "boost/config/platform/cygwin.hpp" +# include "boost/config/platform/win32.hpp" +# include "boost/config/platform/beos.hpp" +# include "boost/config/platform/macos.hpp" +# include "boost/config/platform/aix.hpp" +# include "boost/config/platform/amigaos.hpp" +# include "boost/config/platform/qnxnto.hpp" +# include "boost/config/platform/vxworks.hpp" +# include "boost/config/platform/symbian.hpp" +# include "boost/config/platform/cray.hpp" +# include "boost/config/platform/vms.hpp" +# include + +#endif + diff --git a/include/boost/config/select_stdlib_config.hpp b/include/boost/config/select_stdlib_config.hpp index 96ede002..6ae860b0 100644 --- a/include/boost/config/select_stdlib_config.hpp +++ b/include/boost/config/select_stdlib_config.hpp @@ -81,5 +81,19 @@ #endif - +#if 0 +// +// This section allows dependency scanners to find all the files we *might* include: +// +# include "boost/config/stdlib/stlport.hpp" +# include "boost/config/stdlib/libcomo.hpp" +# include "boost/config/stdlib/roguewave.hpp" +# include "boost/config/stdlib/libcpp.hpp" +# include "boost/config/stdlib/libstdcpp3.hpp" +# include "boost/config/stdlib/sgi.hpp" +# include "boost/config/stdlib/msl.hpp" +# include "boost/config/stdlib/vacpp.hpp" +# include "boost/config/stdlib/modena.hpp" +# include "boost/config/stdlib/dinkumware.hpp" +#endif From 3dd3a9c46c53282ddc67a0c76f1c1bed7c4d3028 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 20 Feb 2014 11:44:56 +0000 Subject: [PATCH 6/7] Add dependency tracking info. --- include/boost/config.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/boost/config.hpp b/include/boost/config.hpp index 6ec3645c..d49bb27c 100644 --- a/include/boost/config.hpp +++ b/include/boost/config.hpp @@ -20,6 +20,10 @@ // if we don't have a user config, then use the default location: #if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) # define BOOST_USER_CONFIG +#if 0 +// For dependency trackers: +# include +#endif #endif // include it first: #ifdef BOOST_USER_CONFIG From c58ee35f24086c50162df17fd9f4c129ebcfc096 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Wed, 5 Mar 2014 22:10:09 +0000 Subject: [PATCH 7/7] Setup 1.56 (from Marshall) --- include/boost/version.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/version.hpp b/include/boost/version.hpp index 0df7b276..fc4c9697 100644 --- a/include/boost/version.hpp +++ b/include/boost/version.hpp @@ -19,7 +19,7 @@ // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 105500 +#define BOOST_VERSION 105600 // // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,6 +27,6 @@ // number, y is the minor version number, and z is the patch level if not 0. // This is used by to select which library version to link to. -#define BOOST_LIB_VERSION "1_55" +#define BOOST_LIB_VERSION "1_56" #endif