|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r76122 - in branches/release: boost boost/config boost/config/compiler libs/config libs/config/doc libs/config/doc/html libs/config/doc/html/boost_config libs/config/test libs/config/test/all
From: john_at_[hidden]
Date: 2011-12-23 12:17:34
Author: johnmaddock
Date: 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
New Revision: 76122
URL: http://svn.boost.org/trac/boost/changeset/76122
Log:
Merge config changes from Trunk.
Properties modified:
branches/release/boost/config/ (props changed)
branches/release/boost/config.hpp (props changed)
branches/release/boost/current_function.hpp (props changed)
branches/release/libs/config/ (props changed)
Text files modified:
branches/release/boost/config/auto_link.hpp | 7
branches/release/boost/config/compiler/clang.hpp | 67 +++++++--
branches/release/boost/config/compiler/intel.hpp | 15 ++
branches/release/boost/config/compiler/visualc.hpp | 8
branches/release/boost/config/suffix.hpp | 26 +++
branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html | 265 ++++++++++++++++++++++++++++-----------
branches/release/libs/config/doc/html/index.html | 18 +-
branches/release/libs/config/doc/macro_reference.qbk | 135 ++++++++++++++-----
branches/release/libs/config/test/all/Jamfile.v2 | 2
branches/release/libs/config/test/boost_has_ftime.ipp | 3
branches/release/libs/config/test/boost_no_char16_t.ipp | 12 +
branches/release/libs/config/test/boost_no_char32_t.ipp | 12 +
branches/release/libs/config/test/boost_no_constexpr.ipp | 3
branches/release/libs/config/test/boost_no_decltype.ipp | 3
branches/release/libs/config/test/boost_no_defaulted_functions.ipp | 2
branches/release/libs/config/test/boost_no_deleted_functions.ipp | 2
branches/release/libs/config/test/boost_no_explicit_cvt_ops.ipp | 5
branches/release/libs/config/test/boost_no_initializer_lists.ipp | 3
branches/release/libs/config/test/boost_no_lambdas.ipp | 2
branches/release/libs/config/test/boost_no_noexcept.ipp | 3
branches/release/libs/config/test/boost_no_nullptr.ipp | 3
branches/release/libs/config/test/boost_no_raw_literals.ipp | 5
branches/release/libs/config/test/boost_no_std_typeinfo.ipp | 2
branches/release/libs/config/test/boost_no_unicode_literals.ipp | 4
branches/release/libs/config/test/boost_no_variadic_macros.ipp | 4
branches/release/libs/config/test/config_info.cpp | 6
branches/release/libs/config/test/config_test.cpp | 2
27 files changed, 468 insertions(+), 151 deletions(-)
Modified: branches/release/boost/config/auto_link.hpp
==============================================================================
--- branches/release/boost/config/auto_link.hpp (original)
+++ branches/release/boost/config/auto_link.hpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -145,11 +145,16 @@
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
-#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
+#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
+#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
+
+ // vc11:
+# define BOOST_LIB_TOOLSET "vc110"
+
#elif defined(__BORLANDC__)
// CBuilder 6:
Modified: branches/release/boost/config/compiler/clang.hpp
==============================================================================
--- branches/release/boost/config/compiler/clang.hpp (original)
+++ branches/release/boost/config/compiler/clang.hpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -25,35 +25,65 @@
// Clang supports "long long" in all compilation modes.
-#define BOOST_NO_AUTO_DECLARATIONS
-#define BOOST_NO_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CHAR16_T
-#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONSTEXPR
+#if !__has_feature(cxx_auto_type)
+# define BOOST_NO_AUTO_DECLARATIONS
+# define BOOST_NO_AUTO_MULTIDECLARATIONS
+#endif
+
+#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
+# define BOOST_NO_CHAR16_T
+# define BOOST_NO_CHAR32_T
+#endif
+
+#if !__has_feature(cxx_constexpr)
+# define BOOST_NO_CONSTEXPR
+#endif
#if !__has_feature(cxx_decltype)
# define BOOST_NO_DECLTYPE
#endif
#define BOOST_NO_DECLTYPE_N3276
-#define BOOST_NO_DEFAULTED_FUNCTIONS
+
+#if !__has_feature(cxx_defaulted_functions)
+# define BOOST_NO_DEFAULTED_FUNCTIONS
+#endif
#if !__has_feature(cxx_deleted_functions)
# define BOOST_NO_DELETED_FUNCTIONS
#endif
-#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#if !__has_feature(cxx_explicit_conversions)
+# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#endif
#if !__has_feature(cxx_default_function_template_args)
- #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#endif
+
+#if !__has_feature(cxx_generalized_initializers)
+# define BOOST_NO_INITIALIZER_LISTS
+#endif
+
+#if !__has_feature(cxx_lambdas)
+# define BOOST_NO_LAMBDAS
+#endif
+
+#if !__has_feature(cxx_noexcept)
+# define BOOST_NO_NOEXCEPT
#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_UNIFIED_INITIALIZATION_SYNTAX
+#if !__has_feature(cxx_nullptr)
+# define BOOST_NO_NULLPTR
+#endif
+
+#if !__has_feature(cxx_raw_string_literals)
+# define BOOST_NO_RAW_LITERALS
+#endif
+
+#if !__has_feature(cxx_generalized_initializers)
+# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#endif
#if !__has_feature(cxx_rvalue_references)
# define BOOST_NO_RVALUE_REFERENCES
@@ -67,8 +97,13 @@
# define BOOST_NO_STATIC_ASSERT
#endif
-#define BOOST_NO_TEMPLATE_ALIASES
-#define BOOST_NO_UNICODE_LITERALS
+#if !__has_feature(cxx_alias_templates)
+# define BOOST_NO_TEMPLATE_ALIASES
+#endif
+
+#if !__has_feature(cxx_unicode_literals)
+# define BOOST_NO_UNICODE_LITERALS
+#endif
#if !__has_feature(cxx_variadic_templates)
# define BOOST_NO_VARIADIC_TEMPLATES
Modified: branches/release/boost/config/compiler/intel.hpp
==============================================================================
--- branches/release/boost/config/compiler/intel.hpp (original)
+++ branches/release/boost/config/compiler/intel.hpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -221,6 +221,21 @@
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
#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.
+#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
+# undef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+# undef BOOST_NO_NULLPTR
+# undef BOOST_NO_RVALUE_REFERENCES
+# undef BOOST_NO_SFINAE_EXPR
+# undef BOOST_NO_TEMPLATE_ALIASES
+# undef BOOST_NO_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_SCOPED_ENUMS
+#endif
+
#if (BOOST_INTEL_CXX_VERSION < 1200)
//
// fenv.h appears not to work with Intel prior to 12.0:
Modified: branches/release/boost/config/compiler/visualc.hpp
==============================================================================
--- branches/release/boost/config/compiler/visualc.hpp (original)
+++ branches/release/boost/config/compiler/visualc.hpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -236,6 +236,8 @@
# define BOOST_COMPILER_VERSION evc9
# elif _MSC_VER == 1600
# define BOOST_COMPILER_VERSION evc10
+# elif _MSC_VER == 1700
+# 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"
@@ -259,6 +261,8 @@
# define BOOST_COMPILER_VERSION 9.0
# elif _MSC_VER == 1600
# define BOOST_COMPILER_VERSION 10.0
+# elif _MSC_VER == 1700
+# define BOOST_COMPILER_VERSION 11.0
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
@@ -273,8 +277,8 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
-// last known and checked version is 1600 (VC10, aka 2010):
-#if (_MSC_VER > 1600)
+// last known and checked version is 1700 (VC11, aka 2011):
+#if (_MSC_VER > 1700)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
Modified: branches/release/boost/config/suffix.hpp
==============================================================================
--- branches/release/boost/config/suffix.hpp (original)
+++ branches/release/boost/config/suffix.hpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -636,6 +636,20 @@
#define BOOST_DO_JOIN2( X, Y ) X##Y
//
+// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
+// These aid the transition to C++11 while still supporting C++03 compilers
+//
+#ifdef BOOST_NO_NOEXCEPT
+# define BOOST_NOEXCEPT
+# define BOOST_NOEXCEPT_IF(Predicate)
+# define BOOST_NOEXCEPT_EXPR(Expression) false
+#else
+# define BOOST_NOEXCEPT noexcept
+# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
+# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
+#endif
+
+//
// Set some default values for compiler/library/platform names.
// These are for debugging config setup only:
//
@@ -674,5 +688,17 @@
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
+// BOOST_FORCEINLINE ---------------------------------------------//
+// Macro to use in place of 'inline' to force a function to be inline
+#if !defined(BOOST_FORCEINLINE)
+# if defined(_MSC_VER)
+# define BOOST_FORCEINLINE __forceinline
+# elif defined(__GNUC__) && __GNUC__ > 3
+# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
+# else
+# define BOOST_FORCEINLINE inline
+# endif
+#endif
+
#endif
Modified: branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html
==============================================================================
--- branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html (original)
+++ branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -27,14 +27,16 @@
<a name="boost_config.boost_macro_reference"></a><a class="link" href="boost_macro_reference.html" title="Boost Macro Reference">Boost Macro Reference</a>
</h2></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects">Macros
- that describe defects</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
+ that describe C++03 defects</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
that describe optional features</a></span></dt>
-<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features">Macros
- that describe possible C++0x features</a></span></dt>
-<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported">Macros
- that describe C++0x features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
+ that describe possible C++ future features</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
+ that describe C++11 features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
+ that allow use of C++11 features with C++03 compilers</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
@@ -44,13 +46,13 @@
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_config.boost_macro_reference.macros_that_describe_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects" title="Macros that describe defects">Macros
- that describe defects</a>
+<a name="boost_config.boost_macro_reference.macros_that_describe_c__03_defects"></a><a name="config_defects"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects" title="Macros that describe C++03 defects">Macros
+ that describe C++03 defects</a>
</h3></div></div></div>
<p>
- The following macros all describe features that are required by the C++ standard,
- if one of the following macros is defined, then it represents a defect in
- the compiler's conformance with the standard.
+ The following macros all describe features that are required by the C++03
+ standard, if one of the following macros is defined, then it represents a
+ defect in the compiler's conformance with the 2003 standard.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -2235,13 +2237,12 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features" title="Macros that describe possible C++0x features">Macros
- that describe possible C++0x features</a>
+<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features" title="Macros that describe possible C++ future features">Macros
+ that describe possible C++ future features</a>
</h3></div></div></div>
<p>
- The following macros describe features that are likely to be included in
- the upcoming ISO C++ standard, C++0x, but have not yet been approved for
- inclusion in the language.
+ The following macros describe features that may be included in some future
+ ISO C++ standard, but have not yet been approved for inclusion in the language.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -2276,12 +2277,12 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported" title="Macros that describe C++0x features not supported">Macros
- that describe C++0x features not supported</a>
+<a name="boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported" title="Macros that describe C++11 features not supported">Macros
+ that describe C++11 features not supported</a>
</h3></div></div></div>
<p>
- The following macros describe features in the upcoming ISO C++ standard,
- C++0x, that are not yet supported by a particular compiler or library.
+ The following macros describe features in the 2011 ISO C++ standard, formerly
+ known as C++0x, that are not yet supported by a particular compiler or library.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -2877,6 +2878,159 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers"></a><a name="config_11_for_03"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers" title="Macros that allow use of C++11 features with C++03 compilers">Macros
+ that allow use of C++11 features with C++03 compilers</a>
+</h3></div></div></div>
+<p>
+ The following macros allow use of C++11 features even with compilers that
+ do not yet provide compliant C++11 support.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Macro
+ </p>
+ </th>
+<th>
+ <p>
+ Section
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code> elsewhere. For example,
+ when defining a constexpr function or constructor replace:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
+</pre>
+<p>
+ with:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_CONSTEXPR</span> <span class="identifier">tuple</span><span class="special">();</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
+ This macro expands to <code class="computeroutput"><span class="keyword">const</span></code>
+ on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code>
+ elsewhere. For example, when defining const expr variables replace:
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ with:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ This is a shortcut for <code class="computeroutput"><span class="keyword">static</span>
+ <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>For
+ example, when defining const expr variables replace:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ with:
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_STATIC_CONSTEXPR</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_NOEXCEPT</span>
+<span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
+<span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span>
+</pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ is defined (i.e. C++03 compliant compilers) these macros are defined
+ as:
+ </p>
+ <div class="blockquote"><blockquote class="blockquote">
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="keyword">false</span>
+</pre>
+<p>
+ </p>
+</blockquote></div>
+ <p>
+ If <code class="computeroutput"><span class="identifier">BOOST_NO_NOEXCEPT</span></code>
+ is not defined (i.e. C++11 compliant compilers) they are defined
+ as:
+ </p>
+ <div class="blockquote"><blockquote class="blockquote">
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT</span> <span class="identifier">noexcept</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_IF</span><span class="special">(</span><span class="identifier">Predicate</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Predicate</span><span class="special">))</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_NOEXCEPT_EXPR</span><span class="special">(</span><span class="identifier">Expression</span><span class="special">)</span> <span class="identifier">noexcept</span><span class="special">((</span><span class="identifier">Expression</span><span class="special">))</span>
+</pre>
+<p>
+ </p>
+</blockquote></div>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.boost_helper_macros"></a><a name="config_helpers"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros" title="Boost Helper Macros">Boost
Helper Macros</a>
</h3></div></div></div>
@@ -3237,71 +3391,34 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
- </p>
- </td>
-<td>
- <p>
- Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
- This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code> elsewhere. For example,
- when defining a constexpr function or constructor replace:
-</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
-</pre>
-<p>
- with:
-</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_CONSTEXPR</span> <span class="identifier">tuple</span><span class="special">();</span>
-</pre>
-<p>
+ <code class="computeroutput"><span class="identifier">BOOST_FORCEINLINE</span></code>
</p>
</td>
-</tr>
-<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>
+ This macro can be used in place of the <code class="computeroutput"><span class="keyword">inline</span></code>
+ keyword to instruct the compiler that a function should always
+ be inlined. Overuse of this macro can lead to significant bloat,
+ while good use can increase performance in certain cases, such
+ as computation-intensive code built through generative programming
+ techniques.
</p>
- </td>
-<td>
<p>
- Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
- This macro expands to <code class="computeroutput"><span class="keyword">const</span></code>
- on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code>
- elsewhere. For example, when defining const expr variables replace:
-
+ Usage example:
</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
-</pre>
-<p>
- with:
-</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
+<span class="identifier">BOOST_FORCEINLINE</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">&</span> <span class="identifier">t</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">t</span><span class="special">;</span>
+<span class="special">}</span>
</pre>
<p>
</p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code>
- </p>
- </td>
-<td>
<p>
- This is a shortcut for <code class="computeroutput"><span class="keyword">static</span>
- <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>For
- example, when defining const expr variables replace:
-</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
-</pre>
-<p>
- with:
-</p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_STATIC_CONSTEXPR</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
-</pre>
-<p>
+ Note that use of this macro can lead to cryptic error messages
+ with some compilers. Consider defining it to <code class="computeroutput"><span class="keyword">inline</span></code>
+ before including the Boost.Config header in order to be able to
+ debug errors more easily.
</p>
</td>
</tr>
Modified: branches/release/libs/config/doc/html/index.html
==============================================================================
--- branches/release/libs/config/doc/html/index.html (original)
+++ branches/release/libs/config/doc/html/index.html 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -29,7 +29,7 @@
<div><p class="copyright">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
Maddock</p></div>
<div><div class="legalnotice">
-<a name="id910601"></a><p>
+<a name="id988561"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -58,14 +58,16 @@
</dl></dd>
<dt><span class="section">Boost Macro Reference</span></dt>
<dd><dl>
-<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects">Macros
- that describe defects</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
+ that describe C++03 defects</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
that describe optional features</a></span></dt>
-<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features">Macros
- that describe possible C++0x features</a></span></dt>
-<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported">Macros
- that describe C++0x features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
+ that describe possible C++ future features</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
+ that describe C++11 features not supported</a></span></dt>
+<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
+ that allow use of C++11 features with C++03 compilers</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
@@ -947,7 +949,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 13, 2011 at 18:00:55 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 11, 2011 at 17:21:29 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: branches/release/libs/config/doc/macro_reference.qbk
==============================================================================
--- branches/release/libs/config/doc/macro_reference.qbk (original)
+++ branches/release/libs/config/doc/macro_reference.qbk 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -16,11 +16,11 @@
[#config_defects]
-[section Macros that describe defects]
+[section Macros that describe C++03 defects]
-The following macros all describe features that are required by the C++ standard,
+The following macros all describe features that are required by the C++03 standard,
if one of the following macros is defined, then it represents a defect in the
-compiler's conformance with the standard.
+compiler's conformance with the 2003 standard.
[table
@@ -514,11 +514,10 @@
[endsect]
-[section Macros that describe possible C++0x features]
+[section Macros that describe possible C++ future features]
-The following macros describe features that are likely to be included in the
-upcoming ISO C++ standard, C++0x, but have not yet been approved for inclusion
-in the language.
+The following macros describe features that may be included in some future
+ISO C++ standard, but have not yet been approved for inclusion in the language.
[table
@@ -531,9 +530,9 @@
[endsect]
-[section Macros that describe C++0x features not supported]
+[section Macros that describe C++11 features not supported]
-The following macros describe features in the upcoming ISO C++ standard, C++0x,
+The following macros describe features in the 2011 ISO C++ standard, formerly known as C++0x,
that are not yet supported by a particular compiler or library.
[table
@@ -641,6 +640,76 @@
[endsect]
+[#config_11_for_03]
+
+[section Macros that allow use of C++11 features with C++03 compilers]
+
+The following macros allow use of C++11 features even with compilers that do not yet
+provide compliant C++11 support.
+
+[table
+[[Macro ][Section ][ Description ]]
+
+[[`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:
+``
+ constexpr tuple();
+``
+with:
+``
+ BOOST_CONSTEXPR tuple();
+``
+]]
+[[`BOOST_CONSTEXPR_OR_CONST`][
+Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
+elsewhere. For example, when defining const expr variables replace:
+``
+ static constexpr UIntType xor_mask = a;
+``
+with:
+``
+ static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
+``
+]]
+[[`BOOST_STATIC_CONSTEXPR`][
+This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
+``
+ static constexpr UIntType xor_mask = a;
+``
+with:
+``
+ BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
+``
+]]
+[[
+``
+ BOOST_NOEXCEPT
+ BOOST_NOEXCEPT_IF(Predicate)
+ BOOST_NOEXCEPT_EXPR(Expression)
+``
+][
+If `BOOST_NO_NOEXCEPT` is defined (i.e. C++03 compliant compilers) these macros are defined as:
+[:
+``
+ #define BOOST_NOEXCEPT
+ #define BOOST_NOEXCEPT_IF(Predicate)
+ #define BOOST_NOEXCEPT_EXPR(Expression) false
+``
+]
+If `BOOST_NO_NOEXCEPT` is not defined (i.e. C++11 compliant compilers) they are defined as:
+[:
+``
+ #define BOOST_NOEXCEPT noexcept
+ #define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
+ #define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
+``
+]
+]]
+]
+
+[endsect]
+
[#config_helpers]
[section Boost Helper Macros]
@@ -820,37 +889,25 @@
used to create a mangled name in combination with a predefined macro such a
\_\_LINE__.
]]
-[[`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:
-``
- constexpr tuple();
-``
-with:
-``
- BOOST_CONSTEXPR tuple();
-``
-]]
-[[`BOOST_CONSTEXPR_OR_CONST`][
-Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
-elsewhere. For example, when defining const expr variables replace:
-``
- static constexpr UIntType xor_mask = a;
-``
-with:
-``
- static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
-``
-]]
-[[`BOOST_STATIC_CONSTEXPR`][
-This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
-``
- static constexpr UIntType xor_mask = a;
-``
-with:
-``
- BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
+[[`BOOST_FORCEINLINE`][
+This macro can be used in place of the `inline` keyword to instruct the compiler
+that a function should always be inlined.
+Overuse of this macro can lead to significant bloat, while good use can increase
+performance in certain cases, such as computation-intensive code built through
+generative programming techniques.
+
+Usage example:
+``
+ template<class T>
+ BOOST_FORCEINLINE T& f(T& t)
+ {
+ return t;
+ }
``
+
+Note that use of this macro can lead to cryptic error messages with some compilers.
+Consider defining it to `inline` before including the Boost.Config header in order to be
+able to debug errors more easily.
]]
]
Modified: branches/release/libs/config/test/all/Jamfile.v2
==============================================================================
--- branches/release/libs/config/test/all/Jamfile.v2 (original)
+++ branches/release/libs/config/test/all/Jamfile.v2 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Wed Jul 13 18:50:14 2011
+# This file was automatically generated on Sun Nov 27 09:43:19 2011
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
Modified: branches/release/libs/config/test/boost_has_ftime.ipp
==============================================================================
--- branches/release/libs/config/test/boost_has_ftime.ipp (original)
+++ branches/release/libs/config/test/boost_has_ftime.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -14,10 +14,9 @@
namespace boost_has_ftime{
-void f()
+void f(FILETIME)
{
// this is never called, it just has to compile:
- FILETIME ft;
}
int test()
Modified: branches/release/libs/config/test/boost_no_char16_t.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_char16_t.ipp (original)
+++ branches/release/libs/config/test/boost_no_char16_t.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -13,9 +13,19 @@
namespace boost_no_char16_t {
+// Microsoft VC++ 2010, and possibly other compilers, provides
+// a typedef for char16_t rather than a new type. We want that
+// to be an error, so provide an overloaded function that will
+// be ambiguous if char16_t is just a typedef.
+void f(const char16_t*){}
+void f(const unsigned short*){}
+void f(const unsigned int*){}
+void f(const unsigned long*){}
+
int test()
{
- const char16_t* p = u"abc";
+ const char16_t* p;
+ f(p);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_char32_t.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_char32_t.ipp (original)
+++ branches/release/libs/config/test/boost_no_char32_t.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -12,9 +12,19 @@
namespace boost_no_char32_t {
+// Microsoft VC++ 2010, and possibly other compilers, provides
+// a typedef for char32_t rather than a new type. We want that
+// to be an error, so provide an overloaded function that will
+// be ambiguous if char16_t is just a typedef.
+void f(const char32_t*){}
+void f(const unsigned short*){}
+void f(const unsigned int*){}
+void f(const unsigned long*){}
+
int test()
{
- const char32_t* p = U"abc";
+ const char32_t* p;
+ f(p);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_constexpr.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_constexpr.ipp (original)
+++ branches/release/libs/config/test/boost_no_constexpr.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -12,6 +12,8 @@
namespace boost_no_constexpr {
+void quiet_warning(int){}
+
constexpr int square(int x) { return x * x; } // from N2235
// from 5.19:
@@ -37,6 +39,7 @@
int test()
{
int i = square(5);
+ quiet_warning(i);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_decltype.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_decltype.ipp (original)
+++ branches/release/libs/config/test/boost_no_decltype.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -13,6 +13,8 @@
namespace boost_no_decltype {
+void quiet_warning(int){}
+
struct test_class
{
test_class() {}
@@ -39,6 +41,7 @@
{
int i;
decltype(i) j;
+// quiet_warning(j);
decltype(get_test_class()) k;
#ifndef _MSC_VER
// Although the VC++ decltype is buggy, we none the less enable support,
Modified: branches/release/libs/config/test/boost_no_defaulted_functions.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_defaulted_functions.ipp (original)
+++ branches/release/libs/config/test/boost_no_defaulted_functions.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -11,7 +11,7 @@
// DESCRIPTION: The compiler does not support C++0x defaulted functions
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
-# error Defaulted functions aren't really supported in non-C++0x mode
+# error Defaulted functions are not supported in non-C++0x mode
#endif
namespace boost_no_defaulted_functions {
Modified: branches/release/libs/config/test/boost_no_deleted_functions.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_deleted_functions.ipp (original)
+++ branches/release/libs/config/test/boost_no_deleted_functions.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -11,7 +11,7 @@
// DESCRIPTION: The compiler does not support C++0x =delete functions
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
-# error Deleted functions aren't really supported in non-C++0x mode
+# error Deleted functions are not supported in non-C++0x mode
#endif
namespace boost_no_deleted_functions {
Modified: branches/release/libs/config/test/boost_no_explicit_cvt_ops.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_explicit_cvt_ops.ipp (original)
+++ branches/release/libs/config/test/boost_no_explicit_cvt_ops.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -11,11 +11,13 @@
// DESCRIPTION: The compiler does not support C++0x explicit conversion operators
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
-# error This feature isn't really available in non-C++0x mode
+# error This feature is not available in non-C++0x mode
#endif
namespace boost_no_explicit_conversion_operators {
+void quiet_warning(int){}
+
struct foo {
explicit operator int() { return 1; }
};
@@ -24,6 +26,7 @@
{
foo f;
int i = int(f);
+ quiet_warning(i);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_initializer_lists.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_initializer_lists.ipp (original)
+++ branches/release/libs/config/test/boost_no_initializer_lists.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -16,6 +16,8 @@
namespace boost_no_initializer_lists {
+void quiet_warning(const std::initializer_list<int>&){}
+
void f(std::initializer_list<int>)
{
}
@@ -25,6 +27,7 @@
std::vector<std::string> v{"once", "upon", "a", "time"}; // See C++ std 8.5.4
f( { 1, 2, 3, 4 } );
std::initializer_list<int> x = { 1, 2 };
+ quiet_warning(x);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_lambdas.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_lambdas.ipp (original)
+++ branches/release/libs/config/test/boost_no_lambdas.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -11,7 +11,7 @@
// DESCRIPTION: The compiler does not support the C++0x lambda feature
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X)
-# error This feature isn't really available in non-C++0x mode
+# error This feature is not available in non-C++0x mode
#endif
namespace boost_no_lambdas {
Modified: branches/release/libs/config/test/boost_no_noexcept.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_noexcept.ipp (original)
+++ branches/release/libs/config/test/boost_no_noexcept.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -11,12 +11,15 @@
namespace boost_no_noexcept {
+void quiet_warning(bool){}
+
int f() noexcept ;
int g() noexcept( noexcept( f() ) ) ;
int test()
{
bool b = noexcept( g() );
+ quiet_warning(b);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_nullptr.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_nullptr.ipp (original)
+++ branches/release/libs/config/test/boost_no_nullptr.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -12,9 +12,12 @@
namespace boost_no_nullptr {
+void quiet_warning(const int*){}
+
int test()
{
int * p = nullptr;
+ quiet_warning(p);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_raw_literals.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_raw_literals.ipp (original)
+++ branches/release/libs/config/test/boost_no_raw_literals.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -12,10 +12,15 @@
namespace boost_no_raw_literals {
+void quiet_warning(const char*){}
+void quiet_warning(const wchar_t*){}
+
int test()
{
const char* s = R"(abc)";
+ quiet_warning(s);
const wchar_t* ws = LR"(abc)";
+ quiet_warning(ws);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_std_typeinfo.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_std_typeinfo.ipp (original)
+++ branches/release/libs/config/test/boost_no_std_typeinfo.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -13,10 +13,12 @@
namespace boost_no_std_typeinfo
{
+void quiet_warning(const std::type_info*){}
int test()
{
std::type_info * p = 0;
+ quiet_warning(p);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_unicode_literals.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_unicode_literals.ipp (original)
+++ branches/release/libs/config/test/boost_no_unicode_literals.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -12,10 +12,14 @@
namespace boost_no_unicode_literals {
+void quiet_warning(const char*){}
int test()
{
const char* c8 = u8"";
+ const char16_t* c16 = u"";
+ const char32_t* c32 = U"";
+ quiet_warning(c8);
return 0;
}
Modified: branches/release/libs/config/test/boost_no_variadic_macros.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_variadic_macros.ipp (original)
+++ branches/release/libs/config/test/boost_no_variadic_macros.ipp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -49,13 +49,15 @@
namespace boost_no_variadic_macros {
+void quiet_warning(int){}
+
template<TEST_VARIADIC_MACRO_STRIP_PARENS((typename T,int))> struct test_variadic_macro_class {};
int test()
{
int x = TEST_VARIADIC_MACRO_STRIP_PARENS(3);
-
+ quiet_warning(x);
return 0;
}
Modified: branches/release/libs/config/test/config_info.cpp
==============================================================================
--- branches/release/libs/config/test/config_info.cpp (original)
+++ branches/release/libs/config/test/config_info.cpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -1102,6 +1102,10 @@
+
+
+
+
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
@@ -1111,6 +1115,8 @@
PRINT_MACRO(BOOST_CONSTEXPR);
PRINT_MACRO(BOOST_CONSTEXPR_OR_CONST);
PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
+ PRINT_MACRO(BOOST_NOEXCEPT);
+ PRINT_MACRO(BOOST_FORCEINLINE);
}
void print_separator()
Modified: branches/release/libs/config/test/config_test.cpp
==============================================================================
--- branches/release/libs/config/test/config_test.cpp (original)
+++ branches/release/libs/config/test/config_test.cpp 2011-12-23 12:17:31 EST (Fri, 23 Dec 2011)
@@ -1,4 +1,4 @@
-// This file was automatically generated on Wed Jul 13 18:50:14 2011
+// This file was automatically generated on Sun Nov 27 09:43:19 2011
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk