From abe73ce7235d259dc960f8055c267828f8eef9a8 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sat, 20 Jul 2013 17:17:10 +0000 Subject: [PATCH] Merged recent changes from trunk. [SVN r85088] --- doc/macro_reference.qbk | 162 +++++++++++++++--- include/boost/config/compiler/borland.hpp | 11 +- include/boost/config/compiler/clang.hpp | 44 +++-- include/boost/config/compiler/codegear.hpp | 11 +- include/boost/config/compiler/common_edg.hpp | 26 ++- include/boost/config/compiler/cray.hpp | 5 +- include/boost/config/compiler/digitalmars.hpp | 7 +- include/boost/config/compiler/gcc.hpp | 50 ++++-- include/boost/config/compiler/gcc_xml.hpp | 13 +- include/boost/config/compiler/hp_acc.hpp | 21 ++- include/boost/config/compiler/intel.hpp | 22 ++- include/boost/config/compiler/metrowerks.hpp | 23 +-- include/boost/config/compiler/mpw.hpp | 11 +- include/boost/config/compiler/pathscale.hpp | 8 +- include/boost/config/compiler/pgi.hpp | 3 + include/boost/config/compiler/sunpro_cc.hpp | 23 +-- include/boost/config/compiler/vacpp.hpp | 28 +-- include/boost/config/compiler/visualc.hpp | 47 ++--- include/boost/config/suffix.hpp | 100 +++++++++-- test/all/Jamfile.v2 | 15 +- test/boost_no_cxx11_alignas.ipp | 36 ++++ test/boost_no_cxx11_inline_namespaces.ipp | 30 ++++ test/boost_no_cxx11_trailing_result_types.ipp | 26 +++ test/config_info.cpp | 4 + test/config_test.cpp | 30 ++++ test/no_auto_declarations_fail.cpp | 2 +- test/no_auto_declarations_pass.cpp | 4 +- test/no_auto_multidecl_fail.cpp | 2 +- test/no_auto_multidecl_pass.cpp | 4 +- test/no_char16_t_fail.cpp | 2 +- test/no_char16_t_pass.cpp | 4 +- test/no_char32_t_fail.cpp | 2 +- test/no_char32_t_pass.cpp | 4 +- test/no_constexpr_fail.cpp | 2 +- test/no_constexpr_pass.cpp | 4 +- test/no_cxx11_alignas_fail.cpp | 37 ++++ test/no_cxx11_alignas_pass.cpp | 37 ++++ test/no_cxx11_inline_namespaces_fail.cpp | 37 ++++ test/no_cxx11_inline_namespaces_pass.cpp | 37 ++++ test/no_cxx11_trailing_result_types_fail.cpp | 37 ++++ test/no_cxx11_trailing_result_types_pass.cpp | 37 ++++ test/no_decltype_fail.cpp | 2 +- test/no_decltype_pass.cpp | 4 +- test/no_defaulted_functions_fail.cpp | 2 +- test/no_defaulted_functions_pass.cpp | 4 +- test/no_deleted_functions_fail.cpp | 2 +- test/no_deleted_functions_pass.cpp | 4 +- test/no_explicit_cvt_ops_fail.cpp | 2 +- test/no_explicit_cvt_ops_pass.cpp | 4 +- test/no_extern_template_fail.cpp | 2 +- test/no_extern_template_pass.cpp | 4 +- ...no_function_template_default_args_fail.cpp | 2 +- ...no_function_template_default_args_pass.cpp | 4 +- test/no_lambdas_fail.cpp | 2 +- test/no_lambdas_pass.cpp | 4 +- test/no_noexcept_fail.cpp | 2 +- test/no_noexcept_pass.cpp | 4 +- test/no_nullptr_fail.cpp | 2 +- test/no_nullptr_pass.cpp | 4 +- test/no_raw_literals_fail.cpp | 2 +- test/no_raw_literals_pass.cpp | 4 +- test/no_rvalue_references_fail.cpp | 2 +- test/no_rvalue_references_pass.cpp | 4 +- test/no_scoped_enums_fail.cpp | 2 +- test/no_scoped_enums_pass.cpp | 4 +- test/no_static_assert_fail.cpp | 2 +- test/no_static_assert_pass.cpp | 4 +- test/no_tem_local_classes_fail.cpp | 2 +- test/no_tem_local_classes_pass.cpp | 4 +- test/no_template_aliases_fail.cpp | 2 +- test/no_template_aliases_pass.cpp | 4 +- test/no_unicode_literals_fail.cpp | 2 +- test/no_unicode_literals_pass.cpp | 4 +- test/no_unified_init_fail.cpp | 2 +- test/no_unified_init_pass.cpp | 4 +- test/no_variadic_macros_fail.cpp | 2 +- test/no_variadic_macros_pass.cpp | 4 +- test/no_variadic_templates_fail.cpp | 2 +- test/no_variadic_templates_pass.cpp | 4 +- 79 files changed, 880 insertions(+), 242 deletions(-) create mode 100644 test/boost_no_cxx11_alignas.ipp create mode 100644 test/boost_no_cxx11_inline_namespaces.ipp create mode 100644 test/boost_no_cxx11_trailing_result_types.ipp create mode 100644 test/no_cxx11_alignas_fail.cpp create mode 100644 test/no_cxx11_alignas_pass.cpp create mode 100644 test/no_cxx11_inline_namespaces_fail.cpp create mode 100644 test/no_cxx11_inline_namespaces_pass.cpp create mode 100644 test/no_cxx11_trailing_result_types_fail.cpp create mode 100644 test/no_cxx11_trailing_result_types_pass.cpp diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index 31f5f92e..76a6a967 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -397,6 +397,12 @@ See [@../../../../boost/operators.hpp ``] for example. The standard library has a partially conforming `std::allocator` class, but without any of the member templates. ]] +[[`BOOST_HAS_PRAGMA_ONCE`][Compiler][ +The compiler recognizes the `#pragma once` directive which tells that the +containing header should be included only once while preprocessing the +current translation unit. The pragma may improve compile times of large projects +with some compilers. +]] [[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][ The platform has the POSIX API `pthread_delay_np`. ]] @@ -576,6 +582,7 @@ that are not yet supported by a particular compiler or library. [table [[Macro ][Description ]] +[[`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_SP`][The standard library does not support atomic smart pointer operations.]] [[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header .]] @@ -597,40 +604,41 @@ 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_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_AUTO_DECLARATIONS`][The compiler does not support type deduction for variables declared with the `auto` keyword (`auto var = ...;`). -]] +]] [[`BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS`][The compiler does not support type deduction for multiple variables declared with the `auto` keyword (`auto var = ..., *ptr = ...;`). -]] +]] [[`BOOST_NO_CXX11_CHAR16_T`][The compiler does not support type `char16_t`. -]] +]] [[`BOOST_NO_CXX11_CHAR32_T`][The compiler does not support type `char32_t`. -]] +]] [[`BOOST_NO_CXX11_TEMPLATE_ALIASES`][The compiler does not support template aliases. -]] +]] [[`BOOST_NO_CXX11_CONSTEXPR`][The compiler does not support `constexpr`. -]] +]] [[`BOOST_NO_CXX11_DECLTYPE`][The compiler does not support `decltype`. -]] +]] [[`BOOST_NO_CXX11_DECLTYPE_N3276`][The compiler does not support the extension to `decltype` described in [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276], accepted in Madrid, March 2011. -]] +]] [[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support -defaulted (`= default`) functions. -]] +defaulted (`= default`) functions. +]] [[`BOOST_NO_CXX11_DELETED_FUNCTIONS`][The compiler does not support -deleted (`= delete`) functions. -]] +deleted (`= delete`) functions. +]] [[`BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS`][The compiler does not support -explicit conversion operators (`explicit operator T()`). +explicit conversion operators (`explicit operator T()`). ]] [[`BOOST_NO_CXX11_EXTERN_TEMPLATE`][The compiler does not support explicit instantiation forward declarations for templates (`extern template ...`). @@ -639,49 +647,51 @@ explicit instantiation forward declarations for templates (`extern template ...` default template arguments for function templates. ]] [[`BOOST_NO_CXX11_LAMBDAS`][The compiler does not support Lambdas. -]] +]] [[`BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not allow to pass local classes as template parameters (this macro intentionally does not control passing of unnamed types as template parameters, see also [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]). ]] [[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`. -]] +]] [[`BOOST_NO_CXX11_NOEXCEPT`][The compiler does not support `noexcept`. -]] +]] [[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`. -]] +]] [[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support range-based for statements. -]] +]] [[`BOOST_NO_CXX11_RAW_LITERALS`][The compiler does not support raw string literals. -]] +]] [[`BOOST_NO_CXX11_RVALUE_REFERENCES`][The compiler does not support r-value references. -]] +]] [[`BOOST_NO_CXX11_SCOPED_ENUMS`][The compiler does not support scoped enumerations (`enum class`). -]] +]] [[`BOOST_NO_CXX11_STATIC_ASSERT`][The compiler does not support `static_assert`. -]] +]] [[`BOOST_NO_CXX11_STD_UNORDERED`][The standard library does not support and . -]] +]] +[[`BOOST_NO_CXX11_TRAILING_RESULT_TYPES`][The compiler does not support the new function result type +specification syntax (e.g. `auto foo(T) -> T;`).]] [[`BOOST_NO_CXX11_UNICODE_LITERALS`][The compiler does not support Unicode (`u8`, `u`, `U`) literals. -]] +]] [[`BOOST_NO_CXX11_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_CXX11_USER_DEFINED_LITERALS`][The compiler does not support user defined literals. -]] +]] [[`BOOST_NO_CXX11_VARIADIC_TEMPLATES`][The compiler does not support -variadic templates. +variadic templates. ]] [[`BOOST_NO_CXX11_VARIADIC_MACROS`][The compiler does not support -variadic macros. +variadic macros. ]] ] @@ -697,6 +707,21 @@ provide compliant C++11 support. [table [[Macro ][ Description ]] +[[`BOOST_ALIGNMENT(X)`, `BOOST_NO_ALIGNMENT`][ +Some compilers don't support the `alignas` keyword but provide other means to specify alignment +(usually, through compiler-specific attributes). The macro `BOOST_ALIGNMENT(X)` will expand to the `alignas(X)` +keyword if the compiler supports it or to some compiler-specific attribute to achieve the specified alignment. +If no such compiler-specific attribute is known then `BOOST_ALIGNMENT(X)` will expand to nothing and +`BOOST_NO_ALIGNMENT` will be defined. Unlike native `alignas`, `X` must always be a compile-time integer constant. +The macro can be used to specify alignment of types and data: +`` + struct BOOST_ALIGNMENT(16) my_data + { + char c[16]; + }; + BOOST_ALIGNMENT(8) int arr[32]; +`` +]] [[`BOOST_CONSTEXPR`][ Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr` elsewhere. For example, when defining a constexpr function or constructor replace: @@ -729,6 +754,61 @@ with: BOOST_STATIC_CONSTEXPR UIntType xor_mask = a; `` ]] +[[`BOOST_DEFAULTED_FUNCTION(fun, body)`][ +This macro is intended to be used within a class definition in order to declare a default implementation of function `fun`. +For the compilers that do not support C++11 defaulted functions the macro will expand into an inline function definition +with the `body` implementation. For example: +`` + struct my_struct + { + BOOST_DEFAULTED_FUNCTION(my_struct(), {}) + }; +`` +is equivalent to: +`` + struct my_struct + { + my_struct() = default; + }; +`` +or: +`` + struct my_struct + { + my_struct() {} + }; +`` +]] +[[`BOOST_DELETED_FUNCTION(fun)`][ +This macro is intended to be used within a class definition in order to declare a deleted function `fun`. +For the compilers that do not support C++11 deleted functions the macro will expand into a private function +declaration with no definition. Since the macro may change the access mode, it is recommended to use this macro +at the end of the class definition. For example: +`` + struct noncopyable + { + BOOST_DELETED_FUNCTION(noncopyable(noncopyable const&)) + BOOST_DELETED_FUNCTION(noncopyable& operator= (noncopyable const&)) + }; +`` +is equivalent to: +`` + struct noncopyable + { + noncopyable(noncopyable const&) = delete; + noncopyable& operator= (noncopyable const&) = delete; + }; +`` +or: +`` + struct noncopyable + { + private: + noncopyable(noncopyable const&); + noncopyable& operator= (noncopyable const&); + }; +`` +]] [[ `` BOOST_NOEXCEPT @@ -1003,6 +1083,34 @@ Note that use of this macro can lead to cryptic error messages with some compile Consider defining it to `inline` before including the Boost.Config header in order to be able to debug errors more easily. ]] +[[`BOOST_NOINLINE`][ +This macro can be used in place of the `inline` keyword to instruct the compiler +that a function should never be inlined. One should typically use this macro +to mark functions that are unlikely to be called, such as error handling routines. + +Usage example: +`` + BOOST_NOINLINE void handle_error(const char* descr) + { + // ... + } +`` +]] +[[`BOOST_LIKELY(X)` + `BOOST_UNLIKELY(X)`][ +These macros communicate to the compiler that the conditional expression `X` is likely +or unlikely to yield a positive result. The expression should result in a boolean value. +The result of the macro is an integer or boolean value equivalent to the result of `X`. + +The macros are intended to be used in branching statements. The additional hint they provide +can be used by the compiler to arrange the compiled code of the branches more effectively. + +Usage example: +`` + if (BOOST_UNLIKELY(ptr == NULL)) + handle_error("ptr is NULL"); +`` +]] ] [endsect] diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp index 38ac4a9a..a8f5baae 100644 --- a/include/boost/config/compiler/borland.hpp +++ b/include/boost/config/compiler/borland.hpp @@ -155,7 +155,7 @@ # define BOOST_NO_CXX11_DECLTYPE # define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS # define BOOST_NO_CXX11_EXTERN_TEMPLATE -# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RVALUE_REFERENCES # define BOOST_NO_CXX11_SCOPED_ENUMS # define BOOST_NO_CXX11_STATIC_ASSERT #else @@ -191,6 +191,9 @@ #define BOOST_NO_CXX11_NOEXCEPT #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES #if __BORLANDC__ >= 0x590 # define BOOST_HAS_TR1_HASH @@ -243,7 +246,7 @@ // all versions support __declspec: // #if defined(__STRICT_ANSI__) -// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined +// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined # define BOOST_SYMBOL_EXPORT #endif // @@ -282,7 +285,3 @@ #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION #define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) - - - - diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp index 8e38821b..b57e26c5 100644 --- a/include/boost/config/compiler/clang.hpp +++ b/include/boost/config/compiler/clang.hpp @@ -1,13 +1,15 @@ // (C) Copyright Douglas Gregor 2010 // -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// 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 for most recent version. // Clang compiler setup. +#define BOOST_HAS_PRAGMA_ONCE + #if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) # define BOOST_NO_EXCEPTIONS #endif @@ -26,6 +28,14 @@ #define BOOST_HAS_NRVO +// Branch prediction hints +#if defined(__has_builtin) +#if __has_builtin(__builtin_expect) +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) +#endif +#endif + // Clang supports "long long" in all compilation modes. #define BOOST_HAS_LONG_LONG @@ -38,15 +48,15 @@ # define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) #endif -// -// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through -// between switch labels. -// -#if __cplusplus >= 201103L && defined(__has_warning) -# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") -# define BOOST_FALLTHROUGH [[clang::fallthrough]] -# endif -#endif +// +// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through +// between switch labels. +// +#if __cplusplus >= 201103L && defined(__has_warning) +# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") +# define BOOST_FALLTHROUGH [[clang::fallthrough]] +# endif +#endif #if !__has_feature(cxx_auto_type) # define BOOST_NO_CXX11_AUTO_DECLARATIONS @@ -146,6 +156,18 @@ # define BOOST_NO_CXX11_USER_DEFINED_LITERALS #endif +#if !(__has_feature(cxx_alignas) || __has_extension(cxx_alignas)) +# define BOOST_NO_CXX11_ALIGNAS +#endif + +#if !__has_feature(cxx_trailing_return) +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#endif + +#if !__has_feature(cxx_inline_namespaces) +# define BOOST_NO_CXX11_INLINE_NAMESPACES +#endif + // Clang always supports variadic macros // Clang always supports extern templates diff --git a/include/boost/config/compiler/codegear.hpp b/include/boost/config/compiler/codegear.hpp index 9dd97bc0..00e0bb94 100644 --- a/include/boost/config/compiler/codegear.hpp +++ b/include/boost/config/compiler/codegear.hpp @@ -72,6 +72,12 @@ # endif #endif + +// Reportedly, #pragma once is supported since C++ Builder 2010 +#if (__CODEGEARC__ >= 0x620) +# define BOOST_HAS_PRAGMA_ONCE +#endif + // // C++0x macros: // @@ -111,6 +117,9 @@ #define BOOST_NO_CXX11_VARIADIC_TEMPLATES #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES // // TR1 macros: @@ -151,7 +160,7 @@ // all versions support __declspec: // #if defined(__STRICT_ANSI__) -// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined +// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined # define BOOST_SYMBOL_EXPORT #endif // diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp index 4b5d2d26..70e7efa2 100644 --- a/include/boost/config/compiler/common_edg.hpp +++ b/include/boost/config/compiler/common_edg.hpp @@ -1,10 +1,10 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Jens Maurer 2001. +// (C) Copyright David Abrahams 2002. +// (C) Copyright Aleksey Gurtovoy 2002. // (C) Copyright Markus Schoepflin 2005. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// 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 for most recent version. @@ -33,15 +33,15 @@ #if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES) # define BOOST_NO_TEMPLATE_TEMPLATES -#endif +#endif #if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT) # define BOOST_NO_IS_ABSTRACT -#endif +#endif #if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#endif +#endif // See also kai.hpp which checks a Kai-specific symbol for EH # if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) @@ -54,6 +54,11 @@ # define BOOST_NO_LONG_LONG # endif +// Not sure what version was the first to support #pragma once, but +// different EDG-based compilers (e.g. Intel) supported it for ages. +// Add a proper version check if it causes problems. +#define BOOST_HAS_PRAGMA_ONCE + // // C++0x features // @@ -96,6 +101,9 @@ #define BOOST_NO_CXX11_VARIADIC_TEMPLATES #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES #ifdef c_plusplus // EDG has "long long" in non-strict mode diff --git a/include/boost/config/compiler/cray.hpp b/include/boost/config/compiler/cray.hpp index 4455c5c4..3ce29f01 100644 --- a/include/boost/config/compiler/cray.hpp +++ b/include/boost/config/compiler/cray.hpp @@ -55,10 +55,11 @@ #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION #define BOOST_NO_CXX11_CHAR32_T #define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_ALIGNAS //#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG #define BOOST_MATH_DISABLE_STD_FPCLASSIFY //#define BOOST_HAS_FPCLASSIFY -#define BOOST_SP_USE_PTHREADS -#define BOOST_AC_USE_PTHREADS +#define BOOST_SP_USE_PTHREADS +#define BOOST_AC_USE_PTHREADS diff --git a/include/boost/config/compiler/digitalmars.hpp b/include/boost/config/compiler/digitalmars.hpp index 0206dc38..589ca663 100644 --- a/include/boost/config/compiler/digitalmars.hpp +++ b/include/boost/config/compiler/digitalmars.hpp @@ -1,8 +1,8 @@ // Copyright (C) Christof Meerwald 2003 // Copyright (C) Dan Watkins 2003 // -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// 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) // Digital Mars C++ compiler setup: @@ -87,6 +87,9 @@ #define BOOST_NO_CXX11_VARIADIC_TEMPLATES #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES #if (__DMC__ < 0x812) #define BOOST_NO_CXX11_VARIADIC_MACROS diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp index b3d12ec6..311f7f64 100644 --- a/include/boost/config/compiler/gcc.hpp +++ b/include/boost/config/compiler/gcc.hpp @@ -1,12 +1,12 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Jens Maurer 2001 - 2002. -// (C) Copyright Beman Dawes 2001 - 2003. -// (C) Copyright Douglas Gregor 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Synge Todo 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Jens Maurer 2001 - 2002. +// (C) Copyright Beman Dawes 2001 - 2003. +// (C) Copyright Douglas Gregor 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Synge Todo 2003. +// 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 for most recent version. @@ -80,6 +80,11 @@ # endif #endif +// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +#define BOOST_HAS_PRAGMA_ONCE +#endif + #if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 ) // Previous versions of GCC did not completely implement value-initialization: // GCC Bug 30111, "Value-initialization of POD base class doesn't initialize @@ -104,7 +109,7 @@ // #if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) # define BOOST_HAS_THREADS -#endif +#endif // // gcc has "long long" @@ -118,12 +123,16 @@ #define BOOST_HAS_NRVO #endif +// Branch prediction hints +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) + // // Dynamic shared object (DSO) and dynamic-link library (DLL) support // #if __GNUC__ >= 4 # if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__) - // All Win32 development environments, including 64-bit Windows and MinGW, define + // All Win32 development environments, including 64-bit Windows and MinGW, define // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment, // so does not define _WIN32 or its variants. # define BOOST_HAS_DECLSPEC @@ -135,7 +144,7 @@ # endif # define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default"))) #else -// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined +// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined # define BOOST_SYMBOL_EXPORT #endif @@ -158,7 +167,7 @@ // // We disable this if the compiler is really nvcc as it // doesn't actually support __int128 as of CUDA_VERSION=5000 -// even though it defines __SIZEOF_INT128__. +// even though it defines __SIZEOF_INT128__. // See https://svn.boost.org/trac/boost/ticket/8048 // Only re-enable this for nvcc if you're absolutely sure // of the circumstances under which it's supported: @@ -183,7 +192,7 @@ # define BOOST_NO_CXX11_RVALUE_REFERENCES # define BOOST_NO_CXX11_STATIC_ASSERT -// Variadic templates compiler: +// Variadic templates compiler: // http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html # if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__)) # define BOOST_HAS_VARIADIC_TMPL @@ -202,12 +211,19 @@ # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST # define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS # define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_INLINE_NAMESPACES #endif #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) # define BOOST_NO_SFINAE_EXPR #endif +// GCC 4.5 forbids declaration of defaulted functions in private or protected sections +#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 5) +# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS +#endif + // C++0x features in 4.5.0 and later // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__) @@ -243,6 +259,12 @@ # define BOOST_NO_CXX11_USER_DEFINED_LITERALS #endif +// C++0x features in 4.8.n and later +// +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__) +# define BOOST_NO_CXX11_ALIGNAS +#endif + // C++0x features in 4.8.1 and later // #if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__) diff --git a/include/boost/config/compiler/gcc_xml.hpp b/include/boost/config/compiler/gcc_xml.hpp index 1af2fc1a..d2e0c74f 100644 --- a/include/boost/config/compiler/gcc_xml.hpp +++ b/include/boost/config/compiler/gcc_xml.hpp @@ -1,6 +1,6 @@ -// (C) Copyright John Maddock 2006. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2006. +// 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 for most recent version. @@ -18,7 +18,7 @@ // #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__) # define BOOST_HAS_THREADS -#endif +#endif // // gcc has "long long" @@ -44,7 +44,7 @@ # define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS # define BOOST_NO_CXX11_DELETED_FUNCTIONS # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_SCOPED_ENUMS +# define BOOST_NO_CXX11_SCOPED_ENUMS # define BOOST_NO_SFINAE_EXPR # define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS # define BOOST_NO_CXX11_LAMBDAS @@ -55,6 +55,9 @@ # define BOOST_NO_CXX11_NOEXCEPT # define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX # define BOOST_NO_CXX11_USER_DEFINED_LITERALS +# define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_INLINE_NAMESPACES #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ diff --git a/include/boost/config/compiler/hp_acc.hpp b/include/boost/config/compiler/hp_acc.hpp index 12c791b3..f08dca44 100644 --- a/include/boost/config/compiler/hp_acc.hpp +++ b/include/boost/config/compiler/hp_acc.hpp @@ -1,11 +1,11 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Toon Knapen 2003. +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Jens Maurer 2001 - 2003. +// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Toon Knapen 2003. // (C) Copyright Boris Gubenko 2006 - 2007. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// 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 for most recent version. @@ -43,7 +43,7 @@ # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS # define BOOST_NO_IS_ABSTRACT # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#endif +#endif // optional features rather than defects: #if (__HP_aCC >= 33900) @@ -119,8 +119,11 @@ #define BOOST_NO_CXX11_UNICODE_LITERALS #define BOOST_NO_CXX11_VARIADIC_TEMPLATES #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES -/* +/* See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436 */ diff --git a/include/boost/config/compiler/intel.hpp b/include/boost/config/compiler/intel.hpp index e94540a5..6e0ff738 100644 --- a/include/boost/config/compiler/intel.hpp +++ b/include/boost/config/compiler/intel.hpp @@ -27,7 +27,7 @@ #endif // Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' -#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) +#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__) # define BOOST_INTEL_STDCXX0X #endif #if defined(_MSC_VER) && (_MSC_VER >= 1600) @@ -154,6 +154,14 @@ template<> struct assert_intrinsic_wchar_t {}; # define BOOST_HAS_NRVO #endif +// Branch prediction hints +// I'm not sure 8.0 was the first version to support these builtins, +// update the condition if the version is not accurate. (Andrey Semashev) +#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800 +#define BOOST_LIKELY(x) __builtin_expect(x, 1) +#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) +#endif + // // versions check: // we don't support Intel prior to version 5.0: @@ -173,10 +181,10 @@ template<> struct assert_intrinsic_wchar_t {}; // // An attempt to value-initialize a pointer-to-member may trigger an -// internal error on Intel <= 11.1 (last checked version), as was +// internal error on Intel <= 11.1 (last checked version), as was // reported by John Maddock, Intel support issue 589832, May 2010. // Moreover, according to test results from Huang-Vista-x86_32_intel, -// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some +// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some // cases when it should be value-initialized. // (Niels Dekker, LKEB, May 2010) // Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression). @@ -221,10 +229,11 @@ template<> struct assert_intrinsic_wchar_t {}; # undef BOOST_NO_CXX11_DECLTYPE # undef BOOST_NO_CXX11_AUTO_DECLARATIONS # undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES #endif // icl Version 12.1.0.233 Build 20110811 and possibly some other builds -// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed. +// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed. #if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200) # undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS # undef BOOST_NO_CXX11_NULLPTR @@ -234,8 +243,8 @@ template<> struct assert_intrinsic_wchar_t {}; # undef BOOST_NO_CXX11_VARIADIC_TEMPLATES // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ -// continues to list scoped enum support as "Partial" -//# undef BOOST_NO_CXX11_SCOPED_ENUMS +// continues to list scoped enum support as "Partial" +//# undef BOOST_NO_CXX11_SCOPED_ENUMS #endif #if defined(_MSC_VER) && (_MSC_VER <= 1700) @@ -247,6 +256,7 @@ template<> struct assert_intrinsic_wchar_t {}; # define BOOST_NO_CXX11_DELETED_FUNCTIONS # define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS # define BOOST_NO_CXX11_TEMPLATE_ALIASES +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES #endif #if (BOOST_INTEL_CXX_VERSION < 1200) diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp index 4ca8af8a..e1727860 100644 --- a/include/boost/config/compiler/metrowerks.hpp +++ b/include/boost/config/compiler/metrowerks.hpp @@ -1,11 +1,11 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright David Abrahams 2001 - 2002. -// (C) Copyright Beman Dawes 2001 - 2003. -// (C) Copyright Stefan Slapeta 2004. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2001. +// (C) Copyright Darin Adler 2001. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright David Abrahams 2001 - 2002. +// (C) Copyright Beman Dawes 2001 - 2003. +// (C) Copyright Stefan Slapeta 2004. +// 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 for most recent version. @@ -15,7 +15,7 @@ // locale support is disabled when linking with the dynamic runtime # ifdef _MSL_NO_LOCALE # define BOOST_NO_STD_LOCALE -# endif +# endif # if __MWERKS__ <= 0x2301 // 5.3 # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING @@ -90,7 +90,7 @@ #if __MWERKS__ > 0x3206 && __option(rvalue_refs) # define BOOST_HAS_RVALUE_REFS #else -# define BOOST_NO_CXX11_RVALUE_REFERENCES +# define BOOST_NO_CXX11_RVALUE_REFERENCES #endif #define BOOST_NO_CXX11_AUTO_DECLARATIONS #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS @@ -120,6 +120,9 @@ #define BOOST_NO_CXX11_VARIADIC_MACROS #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES #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 7ef38efa..69104674 100644 --- a/include/boost/config/compiler/mpw.hpp +++ b/include/boost/config/compiler/mpw.hpp @@ -1,7 +1,7 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2001 - 2002. +// (C) Copyright Aleksey Gurtovoy 2002. +// 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 for most recent version. @@ -69,6 +69,9 @@ #define BOOST_NO_CXX11_VARIADIC_MACROS #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES // // versions check: diff --git a/include/boost/config/compiler/pathscale.hpp b/include/boost/config/compiler/pathscale.hpp index 07d14609..567d83cc 100644 --- a/include/boost/config/compiler/pathscale.hpp +++ b/include/boost/config/compiler/pathscale.hpp @@ -1,7 +1,7 @@ // (C) Copyright Bryce Lelbach 2011 -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// 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 for most recent version. @@ -77,5 +77,7 @@ # define BOOST_NO_CXX11_HDR_CODECVT # define BOOST_NO_CXX11_HDR_CHRONO # define BOOST_NO_CXX11_USER_DEFINED_LITERALS +# define BOOST_NO_CXX11_ALIGNAS +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +# define BOOST_NO_CXX11_INLINE_NAMESPACES #endif - diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp index 64c0d753..84de184f 100644 --- a/include/boost/config/compiler/pgi.hpp +++ b/include/boost/config/compiler/pgi.hpp @@ -112,6 +112,9 @@ #define BOOST_NO_CXX11_HDR_CHRONO #define BOOST_NO_CXX11_HDR_ARRAY #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES // // version check: diff --git a/include/boost/config/compiler/sunpro_cc.hpp b/include/boost/config/compiler/sunpro_cc.hpp index 88421ee4..486d5c43 100644 --- a/include/boost/config/compiler/sunpro_cc.hpp +++ b/include/boost/config/compiler/sunpro_cc.hpp @@ -1,10 +1,10 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Peter Dimov 2002. -// (C) Copyright Aleksey Gurtovoy 2002 - 2003. -// (C) Copyright David Abrahams 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2001. +// (C) Copyright Jens Maurer 2001 - 2003. +// (C) Copyright Peter Dimov 2002. +// (C) Copyright Aleksey Gurtovoy 2002 - 2003. +// (C) Copyright David Abrahams 2002. +// 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 for most recent version. @@ -34,7 +34,7 @@ # define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION # endif -# if (__SUNPRO_CC <= 0x530) +# if (__SUNPRO_CC <= 0x530) // Requesting debug info (-g) with Boost.Python results // in an internal compiler error for "static const" // initialized in-class. @@ -57,7 +57,7 @@ # define BOOST_NO_INTEGRAL_INT64_T # endif -# if (__SUNPRO_CC < 0x570) +# if (__SUNPRO_CC < 0x570) # define BOOST_NO_TEMPLATE_TEMPLATES // see http://lists.boost.org/MailArchives/boost/msg47184.php // and http://lists.boost.org/MailArchives/boost/msg47220.php @@ -65,7 +65,7 @@ # define BOOST_NO_SFINAE # define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS # endif -# if (__SUNPRO_CC <= 0x580) +# if (__SUNPRO_CC <= 0x580) # define BOOST_NO_IS_ABSTRACT # endif @@ -128,6 +128,9 @@ #define BOOST_NO_CXX11_VARIADIC_MACROS #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES // // Version diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp index 47b99031..17c02f91 100644 --- a/include/boost/config/compiler/vacpp.hpp +++ b/include/boost/config/compiler/vacpp.hpp @@ -1,10 +1,10 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Toon Knapen 2001 - 2003. -// (C) Copyright Lie-Quan Lee 2001. -// (C) Copyright Markus Schoepflin 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Toon Knapen 2001 - 2003. +// (C) Copyright Lie-Quan Lee 2001. +// (C) Copyright Markus Schoepflin 2002 - 2003. +// (C) Copyright Beman Dawes 2002 - 2003. +// 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 for most recent version. @@ -16,7 +16,7 @@ # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS #endif -#if (__IBMCPP__ <= 502) +#if (__IBMCPP__ <= 502) // Actually the compiler supports inclass member initialization but it // requires a definition for the class member and it doesn't recognize // it as an integral constant expression when used as a template argument. @@ -30,9 +30,9 @@ #endif #if (__IBMCPP__ <= 1110) -// XL C++ V11.1 and earlier versions may not always value-initialize -// a temporary object T(), when T is a non-POD aggregate class type. -// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it +// XL C++ V11.1 and earlier versions may not always value-initialize +// a temporary object T(), when T is a non-POD aggregate class type. +// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it // high priority. -- Niels Dekker (LKEB), May 2010. # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION #endif @@ -126,6 +126,6 @@ #if ! __C99_MACRO_WITH_VA_ARGS # define BOOST_NO_CXX11_VARIADIC_MACROS #endif - - - +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#define BOOST_NO_CXX11_INLINE_NAMESPACES diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index 83e8e3d7..11587f74 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -1,11 +1,11 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright John Maddock 2001 - 2003. +// (C) Copyright Darin Adler 2001 - 2002. +// (C) Copyright Peter Dimov 2001. +// (C) Copyright Aleksey Gurtovoy 2002. +// (C) Copyright David Abrahams 2002 - 2003. +// (C) Copyright Beman Dawes 2002 - 2003. +// 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 for most recent version. @@ -34,6 +34,10 @@ // Attempt to suppress VC6 warnings about the length of decorated names (obsolete): #pragma warning( disable : 4503 ) // warning: decorated name length exceeded +#if _MSC_VER >= 1020 +# define BOOST_HAS_PRAGMA_ONCE +#endif + // // versions check: // we don't support Visual C++ prior to version 6: @@ -94,7 +98,7 @@ #endif -#if _MSC_VER < 1400 +#if _MSC_VER < 1400 // although a conforming signature for swprint exists in VC7.1 // it appears not to actually work: # define BOOST_NO_SWPRINTF @@ -119,9 +123,9 @@ #endif -// MSVC (including the latest checked version) has not yet completely +// MSVC (including the latest checked version) has not yet completely // implemented value-initialization, as is reported: -// "VC++ does not value-initialize members of derived classes without +// "VC++ does not value-initialize members of derived classes without // user-declared constructor", reported in 2009 by Sylvester Hesp: // https://connect.microsoft.com/VisualStudio/feedback/details/484295 // "Presence of copy constructor breaks member class initialization", @@ -148,11 +152,11 @@ # define BOOST_HAS_GETSYSTEMTIMEASFILETIME #endif -// -// check for exception handling support: +// +// check for exception handling support: #if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif +# define BOOST_NO_EXCEPTIONS +#endif // // __int64 support: @@ -227,6 +231,7 @@ # define BOOST_NO_CXX11_RAW_LITERALS # define BOOST_NO_CXX11_VARIADIC_TEMPLATES # define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES #endif // C++11 features not supported by any versions @@ -242,6 +247,8 @@ #define BOOST_NO_SFINAE_EXPR #define BOOST_NO_TWO_PHASE_NAME_LOOKUP #define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_INLINE_NAMESPACES // // prefix and suffix headers: @@ -255,7 +262,7 @@ #ifndef BOOST_COMPILER // TODO: -// these things are mostly bogus. 1200 means version 12.0 of the compiler. The +// these things are mostly bogus. 1200 means version 12.0 of the compiler. The // artificial versions assigned to them only refer to the versions of some IDE // these compilers have been shipped with, and even that is not all of it. Some // were shipped with freely downloadable SDKs, others as crosscompilers in eVC. @@ -278,8 +285,8 @@ # define BOOST_COMPILER_VERSION evc9 # elif _MSC_VER < 1700 # define BOOST_COMPILER_VERSION evc10 -# elif _MSC_VER < 1800 -# define BOOST_COMPILER_VERSION evc11 +# elif _MSC_VER < 1800 +# define BOOST_COMPILER_VERSION evc11 # else # if defined(BOOST_ASSERT_CONFIG) # error "Unknown EVC++ compiler version - please run the configure tests and report the results" @@ -303,8 +310,8 @@ # define BOOST_COMPILER_VERSION 9.0 # elif _MSC_VER < 1700 # define BOOST_COMPILER_VERSION 10.0 -# elif _MSC_VER < 1800 -# define BOOST_COMPILER_VERSION 11.0 +# elif _MSC_VER < 1800 +# define BOOST_COMPILER_VERSION 11.0 # else # define BOOST_COMPILER_VERSION _MSC_VER # endif diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp index 21591c9e..1d9cec61 100644 --- a/include/boost/config/suffix.hpp +++ b/include/boost/config/suffix.hpp @@ -4,7 +4,7 @@ // Copyright (c) 2001-2003 John Maddock // Copyright (c) 2001 Darin Adler // Copyright (c) 2001 Peter Dimov -// Copyright (c) 2002 Bill Kempf +// Copyright (c) 2002 Bill Kempf // Copyright (c) 2002 Jens Maurer // Copyright (c) 2002-2003 David Abrahams // Copyright (c) 2003 Gennaro Prota @@ -146,7 +146,7 @@ # endif // -// Without partial specialization, partial +// Without partial specialization, partial // specialization with default args won't work either: // # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ @@ -632,7 +632,7 @@ namespace std{ using ::type_info; } // Set some default values GPU support // # ifndef BOOST_GPU_ENABLED -# define BOOST_GPU_ENABLED +# define BOOST_GPU_ENABLED # endif // BOOST_FORCEINLINE ---------------------------------------------// @@ -648,6 +648,78 @@ namespace std{ using ::type_info; } # endif #endif +// BOOST_NOINLINE ---------------------------------------------// +// Macro to use in place of 'inline' to prevent a function to be inlined +#if !defined(BOOST_NOINLINE) +# if defined(_MSC_VER) +# define BOOST_NOINLINE __declspec(noinline) +# elif defined(__GNUC__) && __GNUC__ > 3 + // Clang also defines __GNUC__ (as 4) +# define BOOST_NOINLINE __attribute__ ((__noinline__)) +# else +# define BOOST_NOINLINE +# endif +#endif + +// Branch prediction hints +// These macros are intended to wrap conditional expressions that yield true or false +// +// if (BOOST_LIKELY(var == 10)) +// { +// // the most probable code here +// } +// +#if !defined(BOOST_LIKELY) +# define BOOST_LIKELY(x) x +#endif +#if !defined(BOOST_UNLIKELY) +# define BOOST_UNLIKELY(x) x +#endif + +// Type and data alignment specification +// +#if !defined(BOOST_NO_CXX11_ALIGNAS) +# define BOOST_ALIGNMENT(x) alignas(x) +#elif defined(_MSC_VER) +# define BOOST_ALIGNMENT(x) __declspec(align(x)) +#elif defined(__GNUC__) +# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x))) +#else +# define BOOST_NO_ALIGNMENT +# define BOOST_ALIGNMENT(x) +#endif + +// Defaulted and deleted function declaration helpers +// These macros are intended to be inside a class definition. +// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its +// body, which will be used if the compiler doesn't support defaulted functions. +// BOOST_DELETED_FUNCTION only accepts the function declaration. It +// will expand to a private function declaration, if the compiler doesn't support +// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION +// in the end of the class definition. +// +// class my_class +// { +// public: +// // Default-constructible +// BOOST_DEFAULTED_FUNCTION(my_class(), {}) +// // Copying prohibited +// BOOST_DELETED_FUNCTION(my_class(my_class const&)) +// BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&)) +// }; +// +#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS)) +# define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default; +#else +# define BOOST_DEFAULTED_FUNCTION(fun, body) fun body +#endif + +#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) +# define BOOST_DELETED_FUNCTION(fun) fun = delete; +#else +# define BOOST_DELETED_FUNCTION(fun) private: fun; +#endif + // // Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined // @@ -696,7 +768,7 @@ namespace std{ using ::type_info; } # define BOOST_NO_0X_HDR_FUTURE #endif -// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST +// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST // instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS #ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST # ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST @@ -885,19 +957,19 @@ namespace std{ using ::type_info; } # define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression)) #endif // -// Helper macro BOOST_FALLTHROUGH -// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended -// fall-through between case labels in a switch statement. We use a definition -// that requires a semicolon after it to avoid at least one type of misuse even -// on unsupported compilers. -// -#ifndef BOOST_FALLTHROUGH -# define BOOST_FALLTHROUGH ((void)0) -#endif +// Helper macro BOOST_FALLTHROUGH +// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended +// fall-through between case labels in a switch statement. We use a definition +// that requires a semicolon after it to avoid at least one type of misuse even +// on unsupported compilers. +// +#ifndef BOOST_FALLTHROUGH +# define BOOST_FALLTHROUGH ((void)0) +#endif // // constexpr workarounds -// +// #if defined(BOOST_NO_CXX11_CONSTEXPR) #define BOOST_CONSTEXPR #define BOOST_CONSTEXPR_OR_CONST const diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index 2b8e8d34..262d79db 100644 --- a/test/all/Jamfile.v2 +++ b/test/all/Jamfile.v2 @@ -226,6 +226,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_RAW_LITERALS" : +[ run ../no_raw_literals_pass.cpp ] +[ compile-fail ../no_raw_literals_fail.cpp ] ; +test-suite "BOOST_NO_CXX11_ALIGNAS" : +[ run ../no_cxx11_alignas_pass.cpp ] +[ compile-fail ../no_cxx11_alignas_fail.cpp ] ; test-suite "BOOST_NO_CXX11_ALLOCATOR" : [ run ../no_cxx11_allocator_pass.cpp ] [ compile-fail ../no_cxx11_allocator_fail.cpp ] ; @@ -286,12 +292,18 @@ 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_INLINE_NAMESPACES" : +[ run ../no_cxx11_inline_namespaces_pass.cpp ] +[ compile-fail ../no_cxx11_inline_namespaces_fail.cpp ] ; test-suite "BOOST_NO_CXX11_NUMERIC_LIMITS" : [ run ../no_cxx11_numeric_limits_pass.cpp ] [ compile-fail ../no_cxx11_numeric_limits_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_TRAILING_RESULT_TYPES" : +[ run ../no_cxx11_trailing_result_types_pass.cpp ] +[ compile-fail ../no_cxx11_trailing_result_types_fail.cpp ] ; test-suite "BOOST_NO_CXX11_USER_DEFINED_LITERALS" : [ run ../no_cxx11_user_lit_pass.cpp ] [ compile-fail ../no_cxx11_user_lit_fail.cpp ] ; @@ -424,9 +436,6 @@ test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" : test-suite "BOOST_NO_CXX11_RANGE_BASED_FOR" : [ run ../no_range_based_for_pass.cpp ] [ compile-fail ../no_range_based_for_fail.cpp ] ; -test-suite "BOOST_NO_CXX11_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 ] ; diff --git a/test/boost_no_cxx11_alignas.ipp b/test/boost_no_cxx11_alignas.ipp new file mode 100644 index 00000000..afd428f6 --- /dev/null +++ b/test/boost_no_cxx11_alignas.ipp @@ -0,0 +1,36 @@ +// (C) Copyright Andrey Semashev 2013 + +// 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_ALIGNAS +// TITLE: C++11 alignas keyword. +// DESCRIPTION: The compiler does not support the C++11 alignment specification with alignas keyword. + +namespace boost_no_cxx11_alignas { + +struct alignas(16) my_data1 +{ + char data[10]; +}; + +struct alignas(double) my_data2 +{ + char data[16]; +}; + +my_data1 dummy1[2]; +my_data2 dummy2; +alignas(16) char dummy3[10]; +alignas(double) char dummy4[32]; + +int test() +{ + // TODO: Test that the data is actually aligned on platforms with uintptr_t + return 0; +} + +} diff --git a/test/boost_no_cxx11_inline_namespaces.ipp b/test/boost_no_cxx11_inline_namespaces.ipp new file mode 100644 index 00000000..5b76da86 --- /dev/null +++ b/test/boost_no_cxx11_inline_namespaces.ipp @@ -0,0 +1,30 @@ +// (C) Copyright Andrey Semashev 2013 + +// 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_INLINE_NAMESPACES +// TITLE: C++11 inline namespaces. +// DESCRIPTION: The compiler does not support C++11 inline namespaces. + +namespace boost_no_cxx11_inline_namespaces { + +inline namespace my_ns { + +int data = 0; + +} // namespace my_ns + +int test() +{ + data = 1; + if (&data == &my_ns::data) + return 0; + else + return 1; +} + +} diff --git a/test/boost_no_cxx11_trailing_result_types.ipp b/test/boost_no_cxx11_trailing_result_types.ipp new file mode 100644 index 00000000..17012048 --- /dev/null +++ b/test/boost_no_cxx11_trailing_result_types.ipp @@ -0,0 +1,26 @@ +// (C) Copyright Andrey Semashev 2013 + +// 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_TRAILING_RESULT_TYPES +// TITLE: C++11 trailing function result types syntax. +// DESCRIPTION: The compiler does not support the new C++11 function result types specification syntax. + +namespace boost_no_cxx11_trailing_result_types { + +template< typename T > +auto foo(T const& t) -> T +{ + return t; +} + +int test() +{ + return foo(0); +} + +} diff --git a/test/config_info.cpp b/test/config_info.cpp index 9725f246..8b82e81b 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_ALIGNAS); PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR); PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR); PRINT_MACRO(BOOST_NO_CXX11_AUTO_DECLARATIONS); @@ -1025,6 +1026,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_INLINE_NAMESPACES); PRINT_MACRO(BOOST_NO_CXX11_LAMBDAS); PRINT_MACRO(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS); PRINT_MACRO(BOOST_NO_CXX11_NOEXCEPT); @@ -1037,6 +1039,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_CXX11_SMART_PTR); PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT); PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES); + PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES); PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS); PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX); PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS); @@ -1114,6 +1117,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_STATIC_CONSTEXPR); PRINT_MACRO(BOOST_NOEXCEPT); PRINT_MACRO(BOOST_FORCEINLINE); + PRINT_MACRO(BOOST_NOINLINE); PRINT_MACRO(BOOST_FALLTHROUGH); } diff --git a/test/config_test.cpp b/test/config_test.cpp index f0ef9b6d..bc19400a 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -102,6 +102,11 @@ namespace boost_no_cwchar = empty_boost; #else namespace boost_no_cwctype = empty_boost; #endif +#ifndef BOOST_NO_CXX11_ALIGNAS +#include "boost_no_cxx11_alignas.ipp" +#else +namespace boost_no_cxx11_alignas = empty_boost; +#endif #ifndef BOOST_NO_CXX11_ALLOCATOR #include "boost_no_cxx11_allocator.ipp" #else @@ -202,6 +207,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_INLINE_NAMESPACES +#include "boost_no_cxx11_inline_namespaces.ipp" +#else +namespace boost_no_cxx11_inline_namespaces = empty_boost; +#endif +#ifndef BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#include "boost_no_cxx11_trailing_result_types.ipp" +#else +namespace boost_no_cxx11_trailing_result_types = empty_boost; +#endif #ifndef BOOST_NO_CXX11_NUMERIC_LIMITS #include "boost_no_cxx11_numeric_limits.ipp" #else @@ -1231,6 +1246,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_alignas::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_ALIGNAS 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; @@ -1331,6 +1351,11 @@ 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_inline_namespaces::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_INLINE_NAMESPACES at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_cxx11_numeric_limits::test()) { std::cerr << "Failed test for BOOST_NO_CXX11_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl; @@ -1341,6 +1366,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_trailing_result_types::test()) + { + std::cerr << "Failed test for BOOST_NO_CXX11_TRAILING_RESULT_TYPES at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_cxx11_user_defined_literals::test()) { std::cerr << "Failed test for BOOST_NO_CXX11_USER_DEFINED_LITERALS at: " << __FILE__ << ":" << __LINE__ << std::endl; diff --git a/test/no_auto_declarations_fail.cpp b/test/no_auto_declarations_fail.cpp index 712bb2b5..8f770df7 100644 --- a/test/no_auto_declarations_fail.cpp +++ b/test/no_auto_declarations_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_auto_declarations::test(); + return boost_no_cxx11_auto_declarations::test(); } diff --git a/test/no_auto_declarations_pass.cpp b/test/no_auto_declarations_pass.cpp index 5f7099fd..b901aaff 100644 --- a/test/no_auto_declarations_pass.cpp +++ b/test/no_auto_declarations_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_AUTO_DECLARATIONS #include "boost_no_auto_declarations.ipp" #else -namespace boost_no_auto_declarations = empty_boost; +namespace boost_no_cxx11_auto_declarations = empty_boost; #endif int main( int, char *[] ) { - return boost_no_auto_declarations::test(); + return boost_no_cxx11_auto_declarations::test(); } diff --git a/test/no_auto_multidecl_fail.cpp b/test/no_auto_multidecl_fail.cpp index c564e973..66464473 100644 --- a/test/no_auto_multidecl_fail.cpp +++ b/test/no_auto_multidecl_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_auto_multideclarations::test(); + return boost_no_cxx11_auto_multideclarations::test(); } diff --git a/test/no_auto_multidecl_pass.cpp b/test/no_auto_multidecl_pass.cpp index 47d679d3..b2071ea6 100644 --- a/test/no_auto_multidecl_pass.cpp +++ b/test/no_auto_multidecl_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS #include "boost_no_auto_multidecl.ipp" #else -namespace boost_no_auto_multideclarations = empty_boost; +namespace boost_no_cxx11_auto_multideclarations = empty_boost; #endif int main( int, char *[] ) { - return boost_no_auto_multideclarations::test(); + return boost_no_cxx11_auto_multideclarations::test(); } diff --git a/test/no_char16_t_fail.cpp b/test/no_char16_t_fail.cpp index adc00260..63ddf7ac 100644 --- a/test/no_char16_t_fail.cpp +++ b/test/no_char16_t_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_char16_t::test(); + return boost_no_cxx11_char16_t::test(); } diff --git a/test/no_char16_t_pass.cpp b/test/no_char16_t_pass.cpp index 98735adc..b714f098 100644 --- a/test/no_char16_t_pass.cpp +++ b/test/no_char16_t_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_CHAR16_T #include "boost_no_char16_t.ipp" #else -namespace boost_no_char16_t = empty_boost; +namespace boost_no_cxx11_char16_t = empty_boost; #endif int main( int, char *[] ) { - return boost_no_char16_t::test(); + return boost_no_cxx11_char16_t::test(); } diff --git a/test/no_char32_t_fail.cpp b/test/no_char32_t_fail.cpp index 4d3e8eb4..868050ee 100644 --- a/test/no_char32_t_fail.cpp +++ b/test/no_char32_t_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_char32_t::test(); + return boost_no_cxx11_char32_t::test(); } diff --git a/test/no_char32_t_pass.cpp b/test/no_char32_t_pass.cpp index 10dccbe6..4bb7d5f3 100644 --- a/test/no_char32_t_pass.cpp +++ b/test/no_char32_t_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_CHAR32_T #include "boost_no_char32_t.ipp" #else -namespace boost_no_char32_t = empty_boost; +namespace boost_no_cxx11_char32_t = empty_boost; #endif int main( int, char *[] ) { - return boost_no_char32_t::test(); + return boost_no_cxx11_char32_t::test(); } diff --git a/test/no_constexpr_fail.cpp b/test/no_constexpr_fail.cpp index 1d39ea40..0f1163c4 100644 --- a/test/no_constexpr_fail.cpp +++ b/test/no_constexpr_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_constexpr::test(); + return boost_no_cxx11_constexpr::test(); } diff --git a/test/no_constexpr_pass.cpp b/test/no_constexpr_pass.cpp index b5be562c..fbacd360 100644 --- a/test/no_constexpr_pass.cpp +++ b/test/no_constexpr_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_CONSTEXPR #include "boost_no_constexpr.ipp" #else -namespace boost_no_constexpr = empty_boost; +namespace boost_no_cxx11_constexpr = empty_boost; #endif int main( int, char *[] ) { - return boost_no_constexpr::test(); + return boost_no_cxx11_constexpr::test(); } diff --git a/test/no_cxx11_alignas_fail.cpp b/test/no_cxx11_alignas_fail.cpp new file mode 100644 index 00000000..767aaa34 --- /dev/null +++ b/test/no_cxx11_alignas_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 28 18:36:48 2013 +// 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_ALIGNAS +// This file should not compile, if it does then +// BOOST_NO_CXX11_ALIGNAS should not be defined. +// See file boost_no_cxx11_alignas.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_ALIGNAS +#include "boost_no_cxx11_alignas.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_alignas::test(); +} + diff --git a/test/no_cxx11_alignas_pass.cpp b/test/no_cxx11_alignas_pass.cpp new file mode 100644 index 00000000..b8b84b93 --- /dev/null +++ b/test/no_cxx11_alignas_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 28 18:36:48 2013 +// 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_ALIGNAS +// This file should compile, if it does not then +// BOOST_NO_CXX11_ALIGNAS should be defined. +// See file boost_no_cxx11_alignas.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_ALIGNAS +#include "boost_no_cxx11_alignas.ipp" +#else +namespace boost_no_cxx11_alignas = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_alignas::test(); +} + diff --git a/test/no_cxx11_inline_namespaces_fail.cpp b/test/no_cxx11_inline_namespaces_fail.cpp new file mode 100644 index 00000000..09ca60c8 --- /dev/null +++ b/test/no_cxx11_inline_namespaces_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 28 18:36:48 2013 +// 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_INLINE_NAMESPACES +// This file should not compile, if it does then +// BOOST_NO_CXX11_INLINE_NAMESPACES should not be defined. +// See file boost_no_cxx11_inline_namespaces.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_INLINE_NAMESPACES +#include "boost_no_cxx11_inline_namespaces.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_inline_namespaces::test(); +} + diff --git a/test/no_cxx11_inline_namespaces_pass.cpp b/test/no_cxx11_inline_namespaces_pass.cpp new file mode 100644 index 00000000..4988af97 --- /dev/null +++ b/test/no_cxx11_inline_namespaces_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 28 18:36:48 2013 +// 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_INLINE_NAMESPACES +// This file should compile, if it does not then +// BOOST_NO_CXX11_INLINE_NAMESPACES should be defined. +// See file boost_no_cxx11_inline_namespaces.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_INLINE_NAMESPACES +#include "boost_no_cxx11_inline_namespaces.ipp" +#else +namespace boost_no_cxx11_inline_namespaces = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_inline_namespaces::test(); +} + diff --git a/test/no_cxx11_trailing_result_types_fail.cpp b/test/no_cxx11_trailing_result_types_fail.cpp new file mode 100644 index 00000000..edabc2de --- /dev/null +++ b/test/no_cxx11_trailing_result_types_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 28 18:36:48 2013 +// 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_TRAILING_RESULT_TYPES +// This file should not compile, if it does then +// BOOST_NO_CXX11_TRAILING_RESULT_TYPES should not be defined. +// See file boost_no_cxx11_trailing_result_types.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_TRAILING_RESULT_TYPES +#include "boost_no_cxx11_trailing_result_types.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_trailing_result_types::test(); +} + diff --git a/test/no_cxx11_trailing_result_types_pass.cpp b/test/no_cxx11_trailing_result_types_pass.cpp new file mode 100644 index 00000000..6cc54cf0 --- /dev/null +++ b/test/no_cxx11_trailing_result_types_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Sun Apr 28 18:36:48 2013 +// 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_TRAILING_RESULT_TYPES +// This file should compile, if it does not then +// BOOST_NO_CXX11_TRAILING_RESULT_TYPES should be defined. +// See file boost_no_cxx11_trailing_result_types.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_TRAILING_RESULT_TYPES +#include "boost_no_cxx11_trailing_result_types.ipp" +#else +namespace boost_no_cxx11_trailing_result_types = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_cxx11_trailing_result_types::test(); +} + diff --git a/test/no_decltype_fail.cpp b/test/no_decltype_fail.cpp index 6fbd3b97..59be5866 100644 --- a/test/no_decltype_fail.cpp +++ b/test/no_decltype_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_decltype::test(); + return boost_no_cxx11_decltype::test(); } diff --git a/test/no_decltype_pass.cpp b/test/no_decltype_pass.cpp index 872c7b8f..91dfe258 100644 --- a/test/no_decltype_pass.cpp +++ b/test/no_decltype_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_DECLTYPE #include "boost_no_decltype.ipp" #else -namespace boost_no_decltype = empty_boost; +namespace boost_no_cxx11_decltype = empty_boost; #endif int main( int, char *[] ) { - return boost_no_decltype::test(); + return boost_no_cxx11_decltype::test(); } diff --git a/test/no_defaulted_functions_fail.cpp b/test/no_defaulted_functions_fail.cpp index 858dbe26..58569579 100644 --- a/test/no_defaulted_functions_fail.cpp +++ b/test/no_defaulted_functions_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_defaulted_functions::test(); + return boost_no_cxx11_defaulted_functions::test(); } diff --git a/test/no_defaulted_functions_pass.cpp b/test/no_defaulted_functions_pass.cpp index 3a3117c1..d35f89e0 100644 --- a/test/no_defaulted_functions_pass.cpp +++ b/test/no_defaulted_functions_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS #include "boost_no_defaulted_functions.ipp" #else -namespace boost_no_defaulted_functions = empty_boost; +namespace boost_no_cxx11_defaulted_functions = empty_boost; #endif int main( int, char *[] ) { - return boost_no_defaulted_functions::test(); + return boost_no_cxx11_defaulted_functions::test(); } diff --git a/test/no_deleted_functions_fail.cpp b/test/no_deleted_functions_fail.cpp index fa1687fa..e08abe88 100644 --- a/test/no_deleted_functions_fail.cpp +++ b/test/no_deleted_functions_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_deleted_functions::test(); + return boost_no_cxx11_deleted_functions::test(); } diff --git a/test/no_deleted_functions_pass.cpp b/test/no_deleted_functions_pass.cpp index 2a7adea3..d157332a 100644 --- a/test/no_deleted_functions_pass.cpp +++ b/test/no_deleted_functions_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS #include "boost_no_deleted_functions.ipp" #else -namespace boost_no_deleted_functions = empty_boost; +namespace boost_no_cxx11_deleted_functions = empty_boost; #endif int main( int, char *[] ) { - return boost_no_deleted_functions::test(); + return boost_no_cxx11_deleted_functions::test(); } diff --git a/test/no_explicit_cvt_ops_fail.cpp b/test/no_explicit_cvt_ops_fail.cpp index 405bb798..ba150874 100644 --- a/test/no_explicit_cvt_ops_fail.cpp +++ b/test/no_explicit_cvt_ops_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_explicit_conversion_operators::test(); + return boost_no_cxx11_explicit_conversion_operators::test(); } diff --git a/test/no_explicit_cvt_ops_pass.cpp b/test/no_explicit_cvt_ops_pass.cpp index fde15fa8..2e3c4206 100644 --- a/test/no_explicit_cvt_ops_pass.cpp +++ b/test/no_explicit_cvt_ops_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS #include "boost_no_explicit_cvt_ops.ipp" #else -namespace boost_no_explicit_conversion_operators = empty_boost; +namespace boost_no_cxx11_explicit_conversion_operators = empty_boost; #endif int main( int, char *[] ) { - return boost_no_explicit_conversion_operators::test(); + return boost_no_cxx11_explicit_conversion_operators::test(); } diff --git a/test/no_extern_template_fail.cpp b/test/no_extern_template_fail.cpp index c5427302..80c87744 100644 --- a/test/no_extern_template_fail.cpp +++ b/test/no_extern_template_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_extern_template::test(); + return boost_no_cxx11_extern_template::test(); } diff --git a/test/no_extern_template_pass.cpp b/test/no_extern_template_pass.cpp index 9d0354f4..acbd037c 100644 --- a/test/no_extern_template_pass.cpp +++ b/test/no_extern_template_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_EXTERN_TEMPLATE #include "boost_no_extern_template.ipp" #else -namespace boost_no_extern_template = empty_boost; +namespace boost_no_cxx11_extern_template = empty_boost; #endif int main( int, char *[] ) { - return boost_no_extern_template::test(); + return boost_no_cxx11_extern_template::test(); } diff --git a/test/no_function_template_default_args_fail.cpp b/test/no_function_template_default_args_fail.cpp index 98ab7e13..e10568e8 100644 --- a/test/no_function_template_default_args_fail.cpp +++ b/test/no_function_template_default_args_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_function_template_default_args::test(); + return boost_no_cxx11_function_template_default_args::test(); } diff --git a/test/no_function_template_default_args_pass.cpp b/test/no_function_template_default_args_pass.cpp index 44d3804b..478c9862 100644 --- a/test/no_function_template_default_args_pass.cpp +++ b/test/no_function_template_default_args_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS #include "boost_no_function_template_default_args.ipp" #else -namespace boost_no_function_template_default_args = empty_boost; +namespace boost_no_cxx11_function_template_default_args = empty_boost; #endif int main( int, char *[] ) { - return boost_no_function_template_default_args::test(); + return boost_no_cxx11_function_template_default_args::test(); } diff --git a/test/no_lambdas_fail.cpp b/test/no_lambdas_fail.cpp index 762d2968..68680bc9 100644 --- a/test/no_lambdas_fail.cpp +++ b/test/no_lambdas_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_lambdas::test(); + return boost_no_cxx11_lambdas::test(); } diff --git a/test/no_lambdas_pass.cpp b/test/no_lambdas_pass.cpp index 531613fc..453a72a7 100644 --- a/test/no_lambdas_pass.cpp +++ b/test/no_lambdas_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_LAMBDAS #include "boost_no_lambdas.ipp" #else -namespace boost_no_lambdas = empty_boost; +namespace boost_no_cxx11_lambdas = empty_boost; #endif int main( int, char *[] ) { - return boost_no_lambdas::test(); + return boost_no_cxx11_lambdas::test(); } diff --git a/test/no_noexcept_fail.cpp b/test/no_noexcept_fail.cpp index dfc95e01..b49d9bed 100644 --- a/test/no_noexcept_fail.cpp +++ b/test/no_noexcept_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_noexcept::test(); + return boost_no_cxx11_noexcept::test(); } diff --git a/test/no_noexcept_pass.cpp b/test/no_noexcept_pass.cpp index 3f923c92..4f07f7d0 100644 --- a/test/no_noexcept_pass.cpp +++ b/test/no_noexcept_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_NOEXCEPT #include "boost_no_noexcept.ipp" #else -namespace boost_no_noexcept = empty_boost; +namespace boost_no_cxx11_noexcept = empty_boost; #endif int main( int, char *[] ) { - return boost_no_noexcept::test(); + return boost_no_cxx11_noexcept::test(); } diff --git a/test/no_nullptr_fail.cpp b/test/no_nullptr_fail.cpp index 8daa9ce8..c870ef23 100644 --- a/test/no_nullptr_fail.cpp +++ b/test/no_nullptr_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_nullptr::test(); + return boost_no_cxx11_nullptr::test(); } diff --git a/test/no_nullptr_pass.cpp b/test/no_nullptr_pass.cpp index d2380f42..34450ad5 100644 --- a/test/no_nullptr_pass.cpp +++ b/test/no_nullptr_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_NULLPTR #include "boost_no_nullptr.ipp" #else -namespace boost_no_nullptr = empty_boost; +namespace boost_no_cxx11_nullptr = empty_boost; #endif int main( int, char *[] ) { - return boost_no_nullptr::test(); + return boost_no_cxx11_nullptr::test(); } diff --git a/test/no_raw_literals_fail.cpp b/test/no_raw_literals_fail.cpp index 294bcfd7..3c535fad 100644 --- a/test/no_raw_literals_fail.cpp +++ b/test/no_raw_literals_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_raw_literals::test(); + return boost_no_cxx11_raw_literals::test(); } diff --git a/test/no_raw_literals_pass.cpp b/test/no_raw_literals_pass.cpp index 0fea9d5f..ddf99c27 100644 --- a/test/no_raw_literals_pass.cpp +++ b/test/no_raw_literals_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_RAW_LITERALS #include "boost_no_raw_literals.ipp" #else -namespace boost_no_raw_literals = empty_boost; +namespace boost_no_cxx11_raw_literals = empty_boost; #endif int main( int, char *[] ) { - return boost_no_raw_literals::test(); + return boost_no_cxx11_raw_literals::test(); } diff --git a/test/no_rvalue_references_fail.cpp b/test/no_rvalue_references_fail.cpp index ca283f3e..390b6c5f 100644 --- a/test/no_rvalue_references_fail.cpp +++ b/test/no_rvalue_references_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_rvalue_references::test(); + return boost_no_cxx11_rvalue_references::test(); } diff --git a/test/no_rvalue_references_pass.cpp b/test/no_rvalue_references_pass.cpp index c253c342..c11494c6 100644 --- a/test/no_rvalue_references_pass.cpp +++ b/test/no_rvalue_references_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES #include "boost_no_rvalue_references.ipp" #else -namespace boost_no_rvalue_references = empty_boost; +namespace boost_no_cxx11_rvalue_references = empty_boost; #endif int main( int, char *[] ) { - return boost_no_rvalue_references::test(); + return boost_no_cxx11_rvalue_references::test(); } diff --git a/test/no_scoped_enums_fail.cpp b/test/no_scoped_enums_fail.cpp index a02eb1e8..4c1c184d 100644 --- a/test/no_scoped_enums_fail.cpp +++ b/test/no_scoped_enums_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_scoped_enums::test(); + return boost_no_cxx11_scoped_enums::test(); } diff --git a/test/no_scoped_enums_pass.cpp b/test/no_scoped_enums_pass.cpp index 64e9d346..501fea90 100644 --- a/test/no_scoped_enums_pass.cpp +++ b/test/no_scoped_enums_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_SCOPED_ENUMS #include "boost_no_scoped_enums.ipp" #else -namespace boost_no_scoped_enums = empty_boost; +namespace boost_no_cxx11_scoped_enums = empty_boost; #endif int main( int, char *[] ) { - return boost_no_scoped_enums::test(); + return boost_no_cxx11_scoped_enums::test(); } diff --git a/test/no_static_assert_fail.cpp b/test/no_static_assert_fail.cpp index 5ae5e809..f958c683 100644 --- a/test/no_static_assert_fail.cpp +++ b/test/no_static_assert_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_static_assert::test(); + return boost_no_cxx11_static_assert::test(); } diff --git a/test/no_static_assert_pass.cpp b/test/no_static_assert_pass.cpp index fbc50593..85298876 100644 --- a/test/no_static_assert_pass.cpp +++ b/test/no_static_assert_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_STATIC_ASSERT #include "boost_no_static_assert.ipp" #else -namespace boost_no_static_assert = empty_boost; +namespace boost_no_cxx11_static_assert = empty_boost; #endif int main( int, char *[] ) { - return boost_no_static_assert::test(); + return boost_no_cxx11_static_assert::test(); } diff --git a/test/no_tem_local_classes_fail.cpp b/test/no_tem_local_classes_fail.cpp index b9ac5ae6..f6c2a31f 100644 --- a/test/no_tem_local_classes_fail.cpp +++ b/test/no_tem_local_classes_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_local_class_template_parameters::test(); + return boost_no_cxx11_local_class_template_parameters::test(); } diff --git a/test/no_tem_local_classes_pass.cpp b/test/no_tem_local_classes_pass.cpp index 140bd6be..036819c1 100644 --- a/test/no_tem_local_classes_pass.cpp +++ b/test/no_tem_local_classes_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS #include "boost_no_tem_local_classes.ipp" #else -namespace boost_no_local_class_template_parameters = empty_boost; +namespace boost_no_cxx11_local_class_template_parameters = empty_boost; #endif int main( int, char *[] ) { - return boost_no_local_class_template_parameters::test(); + return boost_no_cxx11_local_class_template_parameters::test(); } diff --git a/test/no_template_aliases_fail.cpp b/test/no_template_aliases_fail.cpp index cb4cabd6..fd4af49e 100644 --- a/test/no_template_aliases_fail.cpp +++ b/test/no_template_aliases_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_template_aliases::test(); + return boost_no_cxx11_template_aliases::test(); } diff --git a/test/no_template_aliases_pass.cpp b/test/no_template_aliases_pass.cpp index 570b7238..ed66a355 100644 --- a/test/no_template_aliases_pass.cpp +++ b/test/no_template_aliases_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES #include "boost_no_template_aliases.ipp" #else -namespace boost_no_template_aliases = empty_boost; +namespace boost_no_cxx11_template_aliases = empty_boost; #endif int main( int, char *[] ) { - return boost_no_template_aliases::test(); + return boost_no_cxx11_template_aliases::test(); } diff --git a/test/no_unicode_literals_fail.cpp b/test/no_unicode_literals_fail.cpp index 57d7e3f8..381f562a 100644 --- a/test/no_unicode_literals_fail.cpp +++ b/test/no_unicode_literals_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_unicode_literals::test(); + return boost_no_cxx11_unicode_literals::test(); } diff --git a/test/no_unicode_literals_pass.cpp b/test/no_unicode_literals_pass.cpp index 88e73126..3fd45470 100644 --- a/test/no_unicode_literals_pass.cpp +++ b/test/no_unicode_literals_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_UNICODE_LITERALS #include "boost_no_unicode_literals.ipp" #else -namespace boost_no_unicode_literals = empty_boost; +namespace boost_no_cxx11_unicode_literals = empty_boost; #endif int main( int, char *[] ) { - return boost_no_unicode_literals::test(); + return boost_no_cxx11_unicode_literals::test(); } diff --git a/test/no_unified_init_fail.cpp b/test/no_unified_init_fail.cpp index cc92327b..5535fe7d 100644 --- a/test/no_unified_init_fail.cpp +++ b/test/no_unified_init_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_unified_initialization_syntax::test(); + return boost_no_cxx11_unified_initialization_syntax::test(); } diff --git a/test/no_unified_init_pass.cpp b/test/no_unified_init_pass.cpp index facd0f3b..f4cf5717 100644 --- a/test/no_unified_init_pass.cpp +++ b/test/no_unified_init_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #include "boost_no_unified_init.ipp" #else -namespace boost_no_unified_initialization_syntax = empty_boost; +namespace boost_no_cxx11_unified_initialization_syntax = empty_boost; #endif int main( int, char *[] ) { - return boost_no_unified_initialization_syntax::test(); + return boost_no_cxx11_unified_initialization_syntax::test(); } diff --git a/test/no_variadic_macros_fail.cpp b/test/no_variadic_macros_fail.cpp index f92c1454..d76c4f36 100644 --- a/test/no_variadic_macros_fail.cpp +++ b/test/no_variadic_macros_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_variadic_macros::test(); + return boost_no_cxx11_variadic_macros::test(); } diff --git a/test/no_variadic_macros_pass.cpp b/test/no_variadic_macros_pass.cpp index d1624eb8..291b6ea6 100644 --- a/test/no_variadic_macros_pass.cpp +++ b/test/no_variadic_macros_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_VARIADIC_MACROS #include "boost_no_variadic_macros.ipp" #else -namespace boost_no_variadic_macros = empty_boost; +namespace boost_no_cxx11_variadic_macros = empty_boost; #endif int main( int, char *[] ) { - return boost_no_variadic_macros::test(); + return boost_no_cxx11_variadic_macros::test(); } diff --git a/test/no_variadic_templates_fail.cpp b/test/no_variadic_templates_fail.cpp index 23bf1c3a..05fc2c7a 100644 --- a/test/no_variadic_templates_fail.cpp +++ b/test/no_variadic_templates_fail.cpp @@ -32,6 +32,6 @@ int main( int, char *[] ) { - return boost_no_variadic_templates::test(); + return boost_no_cxx11_variadic_templates::test(); } diff --git a/test/no_variadic_templates_pass.cpp b/test/no_variadic_templates_pass.cpp index 7ba08850..2b95540e 100644 --- a/test/no_variadic_templates_pass.cpp +++ b/test/no_variadic_templates_pass.cpp @@ -27,11 +27,11 @@ #ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES #include "boost_no_variadic_templates.ipp" #else -namespace boost_no_variadic_templates = empty_boost; +namespace boost_no_cxx11_variadic_templates = empty_boost; #endif int main( int, char *[] ) { - return boost_no_variadic_templates::test(); + return boost_no_cxx11_variadic_templates::test(); }