From 37b4152dc53a02653fff4f945fddd7ba096d9374 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 9 May 2011 11:36:39 +0000 Subject: [PATCH] Add new config macro: BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX. Fixes #4867. [SVN r71840] --- doc/html/boost_config/boost_macro_reference.html | 13 +++++++++++++ doc/html/index.html | 4 ++-- doc/macro_reference.qbk | 5 ++++- include/boost/config/compiler/borland.hpp | 1 + include/boost/config/compiler/clang.hpp | 1 + include/boost/config/compiler/codegear.hpp | 1 + include/boost/config/compiler/common_edg.hpp | 1 + include/boost/config/compiler/digitalmars.hpp | 2 ++ include/boost/config/compiler/gcc.hpp | 1 + include/boost/config/compiler/gcc_xml.hpp | 1 + include/boost/config/compiler/metrowerks.hpp | 1 + include/boost/config/compiler/mpw.hpp | 1 + include/boost/config/compiler/pathscale.hpp | 1 + include/boost/config/compiler/pgi.hpp | 1 + include/boost/config/compiler/sunpro_cc.hpp | 1 + include/boost/config/compiler/vacpp.hpp | 1 + include/boost/config/compiler/visualc.hpp | 1 + test/all/Jamfile.v2 | 5 ++++- test/boost_no_defaulted_functions.ipp | 2 +- test/boost_no_deleted_functions.ipp | 2 +- test/boost_no_explicit_cvt_ops.ipp | 2 +- test/boost_no_lambdas.ipp | 2 +- test/config_info.cpp | 2 ++ test/config_test.cpp | 12 +++++++++++- 24 files changed, 55 insertions(+), 9 deletions(-) diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index 2435fb5b..0516b9a8 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -2805,6 +2805,19 @@ + +

+ BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +

+ + +

+ The compiler does not support the C++11 + Unified Initialization Syntax. +

+ + +

BOOST_NO_VARIADIC_TEMPLATES diff --git a/doc/html/index.html b/doc/html/index.html index 8480fea1..98066758 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -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)

@@ -946,7 +946,7 @@
- +

Last revised: May 05, 2011 at 11:00:04 GMT

Last revised: May 09, 2011 at 11:33:33 GMT


diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index 46b64edf..84901c81 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -620,7 +620,10 @@ scoped enumerations (`enum class`). ]] [[`BOOST_NO_UNICODE_LITERALS`][The compiler does not support Unicode (`u8`, `u`, `U`) literals. -]] +]] +[[`BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support +the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax]. +]] [[`BOOST_NO_VARIADIC_TEMPLATES`][The compiler does not support variadic templates. ]] diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp index 40e7b3dc..60f55055 100644 --- a/include/boost/config/compiler/borland.hpp +++ b/include/boost/config/compiler/borland.hpp @@ -186,6 +186,7 @@ #define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_NOEXCEPT +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #if __BORLANDC__ >= 0x590 # define BOOST_HAS_TR1_HASH diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 3762978a..623452cd 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -52,6 +52,7 @@ #define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #if !__has_feature(cxx_rvalue_references) # define BOOST_NO_RVALUE_REFERENCES diff --git a/include/boost/config/compiler/codegear.hpp b/include/boost/config/compiler/codegear.hpp index 857438f1..f1887a0c 100644 --- a/include/boost/config/compiler/codegear.hpp +++ b/include/boost/config/compiler/codegear.hpp @@ -108,6 +108,7 @@ #define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX // // TR1 macros: diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp index 2a8edc4e..c98c4751 100644 --- a/include/boost/config/compiler/common_edg.hpp +++ b/include/boost/config/compiler/common_edg.hpp @@ -91,6 +91,7 @@ #define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #ifdef c_plusplus // EDG has "long long" in non-strict mode diff --git a/include/boost/config/compiler/digitalmars.hpp b/include/boost/config/compiler/digitalmars.hpp index ded82535..27d6b8e4 100644 --- a/include/boost/config/compiler/digitalmars.hpp +++ b/include/boost/config/compiler/digitalmars.hpp @@ -82,6 +82,8 @@ #define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX + #if (__DMC__ < 0x812) #define BOOST_NO_VARIADIC_MACROS #endif diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index 7554dede..90db8c56 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -214,6 +214,7 @@ #define BOOST_NO_CONSTEXPR #define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #endif #ifndef BOOST_COMPILER diff --git a/include/boost/config/compiler/gcc_xml.hpp b/include/boost/config/compiler/gcc_xml.hpp index b6a6377a..54a9ae1b 100644 --- a/include/boost/config/compiler/gcc_xml.hpp +++ b/include/boost/config/compiler/gcc_xml.hpp @@ -51,6 +51,7 @@ # define BOOST_NO_RAW_LITERALS # define BOOST_NO_UNICODE_LITERALS # define BOOST_NO_NOEXCEPT +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp index 94fb3ecf..fb0401fe 100644 --- a/include/boost/config/compiler/metrowerks.hpp +++ b/include/boost/config/compiler/metrowerks.hpp @@ -115,6 +115,7 @@ #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_VARIADIC_MACROS +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #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 b9768dc1..e372f093 100644 --- a/include/boost/config/compiler/mpw.hpp +++ b/include/boost/config/compiler/mpw.hpp @@ -64,6 +64,7 @@ #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_VARIADIC_MACROS +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX // // versions check: diff --git a/include/boost/config/compiler/pathscale.hpp b/include/boost/config/compiler/pathscale.hpp index c8e75883..5f9444c4 100644 --- a/include/boost/config/compiler/pathscale.hpp +++ b/include/boost/config/compiler/pathscale.hpp @@ -58,6 +58,7 @@ # define BOOST_NO_CHAR16_T # define BOOST_NO_AUTO_MULTIDECLARATIONS # define BOOST_NO_AUTO_DECLARATIONS +# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX # define BOOST_NO_0X_HDR_UNORDERED_SET # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_TYPEINDEX diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp index b9a2fe12..3c803133 100644 --- a/include/boost/config/compiler/pgi.hpp +++ b/include/boost/config/compiler/pgi.hpp @@ -71,6 +71,7 @@ #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_VARIADIC_MACROS +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX // // version check: diff --git a/include/boost/config/compiler/sunpro_cc.hpp b/include/boost/config/compiler/sunpro_cc.hpp index 030dc47c..206b53f0 100644 --- a/include/boost/config/compiler/sunpro_cc.hpp +++ b/include/boost/config/compiler/sunpro_cc.hpp @@ -123,6 +123,7 @@ #define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_VARIADIC_MACROS +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX // // Version diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp index 42d8139c..52500202 100644 --- a/include/boost/config/compiler/vacpp.hpp +++ b/include/boost/config/compiler/vacpp.hpp @@ -102,6 +102,7 @@ #define BOOST_NO_RVALUE_REFERENCES #define BOOST_NO_SCOPED_ENUMS #define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX #if ! __IBMCPP_STATIC_ASSERT # define BOOST_NO_STATIC_ASSERT #endif diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index f212cd47..d2dfa7ef 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -207,6 +207,7 @@ #define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_SFINAE_EXPR #define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX // // prefix and suffix headers: // diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index 85a5192d..3fbdf07a 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 May 5 04:40:08 2011 +# This file was automatically generated on Mon May 09 12:11:18 2011 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -493,6 +493,9 @@ test-suite "BOOST_NO_TYPENAME_WITH_CTOR" : test-suite "BOOST_NO_UNICODE_LITERALS" : [ run ../no_unicode_literals_pass.cpp ] [ compile-fail ../no_unicode_literals_fail.cpp ] ; +test-suite "BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX" : +[ run ../no_unified_init_pass.cpp ] +[ compile-fail ../no_unified_init_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 ] ; diff --git a/test/boost_no_defaulted_functions.ipp b/test/boost_no_defaulted_functions.ipp index c571cc23..d6e79762 100644 --- a/test/boost_no_defaulted_functions.ipp +++ b/test/boost_no_defaulted_functions.ipp @@ -10,7 +10,7 @@ // TITLE: C++0x defaulted functions unavailable // DESCRIPTION: The compiler does not support C++0x defaulted functions -#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) +#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X) # error Defaulted functions aren't really supported in non-C++0x mode #endif diff --git a/test/boost_no_deleted_functions.ipp b/test/boost_no_deleted_functions.ipp index dac4972b..21693eb8 100644 --- a/test/boost_no_deleted_functions.ipp +++ b/test/boost_no_deleted_functions.ipp @@ -10,7 +10,7 @@ // TITLE: C++0x =delete functions unavailable // DESCRIPTION: The compiler does not support C++0x =delete functions -#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) +#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X) # error Deleted functions aren't really supported in non-C++0x mode #endif diff --git a/test/boost_no_explicit_cvt_ops.ipp b/test/boost_no_explicit_cvt_ops.ipp index c370e440..a040d41e 100644 --- a/test/boost_no_explicit_cvt_ops.ipp +++ b/test/boost_no_explicit_cvt_ops.ipp @@ -10,7 +10,7 @@ // TITLE: C++0x explicit conversion operators unavailable // DESCRIPTION: The compiler does not support C++0x explicit conversion operators -#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) +#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X) # error This feature isn't really available in non-C++0x mode #endif diff --git a/test/boost_no_lambdas.ipp b/test/boost_no_lambdas.ipp index d02da69c..69216e05 100644 --- a/test/boost_no_lambdas.ipp +++ b/test/boost_no_lambdas.ipp @@ -10,7 +10,7 @@ // TITLE: C++0x lambda feature unavailable // DESCRIPTION: The compiler does not support the C++0x lambda feature -#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) +#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X) # error This feature isn't really available in non-C++0x mode #endif diff --git a/test/config_info.cpp b/test/config_info.cpp index a3eb00cc..f945fcaf 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1067,6 +1067,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_TYPEID); PRINT_MACRO(BOOST_NO_TYPENAME_WITH_CTOR); PRINT_MACRO(BOOST_NO_UNICODE_LITERALS); + PRINT_MACRO(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX); PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION); PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE); PRINT_MACRO(BOOST_NO_USING_TEMPLATE); @@ -1077,6 +1078,7 @@ void print_boost_macros() + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index a6375316..08fecc6c 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Thu May 5 04:40:08 2011 +// This file was automatically generated on Mon May 09 12:11:18 2011 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -557,6 +557,11 @@ namespace boost_no_typename_with_ctor = empty_boost; #else namespace boost_no_unicode_literals = empty_boost; #endif +#ifndef BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX +#include "boost_no_unified_init.ipp" +#else +namespace boost_no_unified_initialization_syntax = empty_boost; +#endif #ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL #include "boost_no_using_breaks_adl.ipp" #else @@ -1631,6 +1636,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_UNICODE_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_unified_initialization_syntax::test()) + { + std::cerr << "Failed test for BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX 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;