diff --git a/boost/config/compiler/borland.hpp b/boost/config/compiler/borland.hpp index 1ff0e87..77513cc 100644 --- a/boost/config/compiler/borland.hpp +++ b/boost/config/compiler/borland.hpp @@ -177,6 +177,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/clang.hpp b/boost/config/compiler/clang.hpp index 4bb0d1f..3762978 100644 --- a/boost/config/compiler/clang.hpp +++ b/boost/config/compiler/clang.hpp @@ -49,6 +49,7 @@ #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS diff --git a/boost/config/compiler/codegear.hpp b/boost/config/compiler/codegear.hpp index 628afc2..857438f 100644 --- a/boost/config/compiler/codegear.hpp +++ b/boost/config/compiler/codegear.hpp @@ -100,6 +100,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/common_edg.hpp b/boost/config/compiler/common_edg.hpp index e55fb71..2a8edc4 100644 --- a/boost/config/compiler/common_edg.hpp +++ b/boost/config/compiler/common_edg.hpp @@ -81,6 +81,7 @@ #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/digitalmars.hpp b/boost/config/compiler/digitalmars.hpp index ca560e9..ded8253 100644 --- a/boost/config/compiler/digitalmars.hpp +++ b/boost/config/compiler/digitalmars.hpp @@ -72,6 +72,7 @@ #define BOOST_NO_EXTERN_TEMPLATE #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp index 62ef0af..7554ded 100644 --- a/boost/config/compiler/gcc.hpp +++ b/boost/config/compiler/gcc.hpp @@ -212,6 +212,7 @@ // #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__) #define BOOST_NO_CONSTEXPR +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #endif diff --git a/boost/config/compiler/gcc_xml.hpp b/boost/config/compiler/gcc_xml.hpp index a456463..b6a6377 100644 --- a/boost/config/compiler/gcc_xml.hpp +++ b/boost/config/compiler/gcc_xml.hpp @@ -50,6 +50,7 @@ # define BOOST_NO_LAMBDAS # define BOOST_NO_RAW_LITERALS # define BOOST_NO_UNICODE_LITERALS +# define BOOST_NO_NOEXCEPT #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ diff --git a/boost/config/compiler/hp_acc.hpp b/boost/config/compiler/hp_acc.hpp index 1515ae7..cc0c0af 100644 --- a/boost/config/compiler/hp_acc.hpp +++ b/boost/config/compiler/hp_acc.hpp @@ -105,6 +105,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/metrowerks.hpp b/boost/config/compiler/metrowerks.hpp index 4b9619f..94fb3ec 100644 --- a/boost/config/compiler/metrowerks.hpp +++ b/boost/config/compiler/metrowerks.hpp @@ -105,6 +105,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_SCOPED_ENUMS diff --git a/boost/config/compiler/mpw.hpp b/boost/config/compiler/mpw.hpp index a8c3aae..b9768dc 100644 --- a/boost/config/compiler/mpw.hpp +++ b/boost/config/compiler/mpw.hpp @@ -53,6 +53,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/pathscale.hpp b/boost/config/compiler/pathscale.hpp index 8d986f3..c8e7588 100644 --- a/boost/config/compiler/pathscale.hpp +++ b/boost/config/compiler/pathscale.hpp @@ -43,6 +43,7 @@ # define BOOST_NO_RAW_LITERALS # define BOOST_NO_NULLPTR # define BOOST_NO_NUMERIC_LIMITS_LOWEST +# define BOOST_NO_NOEXCEPT # define BOOST_NO_LAMBDAS # define BOOST_NO_INITIALIZER_LISTS # define BOOST_NO_MS_INT64_NUMERIC_LIMITS diff --git a/boost/config/compiler/pgi.hpp b/boost/config/compiler/pgi.hpp index 0078e98..b9a2fe1 100644 --- a/boost/config/compiler/pgi.hpp +++ b/boost/config/compiler/pgi.hpp @@ -60,6 +60,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/sunpro_cc.hpp b/boost/config/compiler/sunpro_cc.hpp index 86f3f24..030dc47 100644 --- a/boost/config/compiler/sunpro_cc.hpp +++ b/boost/config/compiler/sunpro_cc.hpp @@ -112,6 +112,7 @@ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/vacpp.hpp b/boost/config/compiler/vacpp.hpp index 419c420..42d8139 100644 --- a/boost/config/compiler/vacpp.hpp +++ b/boost/config/compiler/vacpp.hpp @@ -96,6 +96,7 @@ #endif #define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_LAMBDAS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_NULLPTR #define BOOST_NO_RAW_LITERALS #define BOOST_NO_RVALUE_REFERENCES diff --git a/boost/config/compiler/visualc.hpp b/boost/config/compiler/visualc.hpp index 7240b11..f212cd4 100644 --- a/boost/config/compiler/visualc.hpp +++ b/boost/config/compiler/visualc.hpp @@ -199,6 +199,7 @@ #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS #define BOOST_NO_INITIALIZER_LISTS +#define BOOST_NO_NOEXCEPT #define BOOST_NO_RAW_LITERALS #define BOOST_NO_SCOPED_ENUMS #define BOOST_NO_TEMPLATE_ALIASES diff --git a/libs/config/doc/macro_reference.qbk b/libs/config/doc/macro_reference.qbk index 40c0ff6..46b64ed 100644 --- a/libs/config/doc/macro_reference.qbk +++ b/libs/config/doc/macro_reference.qbk @@ -597,6 +597,8 @@ The C++ compiler does not support C++0x initializer lists. ]] [[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`. ]] +[[`BOOST_NO_NOEXCEPT`][The compiler does not support `noexcept`. +]] [[`BOOST_NO_NULLPTR`][The compiler does not support 'nullptr'. ]] [[`BOOST_NO_RAW_LITERALS`][The compiler does not support diff --git a/libs/config/test/all/Jamfile.v2 b/libs/config/test/all/Jamfile.v2 index fa3fbfd..85a5192 100644 --- a/libs/config/test/all/Jamfile.v2 +++ b/libs/config/test/all/Jamfile.v2 @@ -1,7 +1,7 @@ # # Regression test Jamfile for boost configuration setup. # *** DO NOT EDIT THIS FILE BY HAND *** -# This file was automatically generated on Tue Mar 15 12:25:21 2011 +# This file was automatically generated on Thu May 5 04:40:08 2011 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -379,6 +379,9 @@ test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" : test-suite "BOOST_NO_NESTED_FRIENDSHIP" : [ run ../no_nested_friendship_pass.cpp ] [ compile-fail ../no_nested_friendship_fail.cpp ] ; +test-suite "BOOST_NO_NOEXCEPT" : +[ run ../no_noexcept_pass.cpp ] +[ compile-fail ../no_noexcept_fail.cpp ] ; test-suite "BOOST_NO_NULLPTR" : [ run ../no_nullptr_pass.cpp ] [ compile-fail ../no_nullptr_fail.cpp ] ; diff --git a/libs/config/test/boost_no_noexcept.ipp b/libs/config/test/boost_no_noexcept.ipp new file mode 100644 index 0000000..91f2b01 --- /dev/null +++ b/libs/config/test/boost_no_noexcept.ipp @@ -0,0 +1,23 @@ +// Copyright (C) 2011 Takaya Saito +// 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 most recent version. + +// MACRO: BOOST_NO_NOEXCEPT +// TITLE: C++0x noexcept unavailable +// DESCRIPTION: The compiler does not support C++0x noexcept + +namespace boost_no_noexcept { + +int f() noexcept ; +int g() noexcept( noexcept( f() ) ) ; + +int test() +{ + bool b = noexcept( g() ); + return 0; +} + +} diff --git a/libs/config/test/config_info.cpp b/libs/config/test/config_info.cpp index 1abe8d8..a3eb00c 100644 --- a/libs/config/test/config_info.cpp +++ b/libs/config/test/config_info.cpp @@ -1027,6 +1027,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_MEMBER_TEMPLATE_KEYWORD); PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS); PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP); + PRINT_MACRO(BOOST_NO_NOEXCEPT); PRINT_MACRO(BOOST_NO_NULLPTR); PRINT_MACRO(BOOST_NO_NUMERIC_LIMITS_LOWEST); PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE); @@ -1075,6 +1076,7 @@ void print_boost_macros() + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/libs/config/test/config_test.cpp b/libs/config/test/config_test.cpp index 2a83e6d..a637531 100644 --- a/libs/config/test/config_test.cpp +++ b/libs/config/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Tue Mar 15 12:25:21 2011 +// This file was automatically generated on Thu May 5 04:40:08 2011 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -367,6 +367,11 @@ namespace boost_no_pointer_to_member_template_parameters = empty_boost; #else namespace boost_no_nested_friendship = empty_boost; #endif +#ifndef BOOST_NO_NOEXCEPT +#include "boost_no_noexcept.ipp" +#else +namespace boost_no_noexcept = empty_boost; +#endif #ifndef BOOST_NO_NULLPTR #include "boost_no_nullptr.ipp" #else @@ -1436,6 +1441,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_NESTED_FRIENDSHIP at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_noexcept::test()) + { + std::cerr << "Failed test for BOOST_NO_NOEXCEPT at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_nullptr::test()) { std::cerr << "Failed test for BOOST_NO_NULLPTR at: " << __FILE__ << ":" << __LINE__ << std::endl; diff --git a/libs/config/test/no_noexcept_fail.cpp b/libs/config/test/no_noexcept_fail.cpp new file mode 100755 index 0000000..f06f55d --- /dev/null +++ b/libs/config/test/no_noexcept_fail.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu May 5 04:40:08 2011 +// 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_NOEXCEPT +// This file should not compile, if it does then +// BOOST_NO_NOEXCEPT should not be defined. +// See file boost_no_noexcept.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_NOEXCEPT +#include "boost_no_noexcept.ipp" +#else +#error "this file should not compile" +#endif + +int main( int, char *[] ) +{ + return boost_no_noexcept::test(); +} + diff --git a/libs/config/test/no_noexcept_pass.cpp b/libs/config/test/no_noexcept_pass.cpp new file mode 100755 index 0000000..9d6a6cd --- /dev/null +++ b/libs/config/test/no_noexcept_pass.cpp @@ -0,0 +1,37 @@ +// This file was automatically generated on Thu May 5 04:40:08 2011 +// 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_NOEXCEPT +// This file should compile, if it does not then +// BOOST_NO_NOEXCEPT should be defined. +// See file boost_no_noexcept.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_NOEXCEPT +#include "boost_no_noexcept.ipp" +#else +namespace boost_no_noexcept = empty_boost; +#endif + +int main( int, char *[] ) +{ + return boost_no_noexcept::test(); +} +