Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78132 - in trunk: boost/config/stdlib 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: 2012-04-22 06:57:13


Author: johnmaddock
Date: 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
New Revision: 78132
URL: http://svn.boost.org/trac/boost/changeset/78132

Log:
Add four new config macros:
BOOST_NO_CXX11_ALLOCATOR
BOOST_NO_CXX11_ATOMIC_SMART_PTR
BOOST_NO_CXX11_HDR_FUNCTIONAL
BOOST_NO_CXX11_SMART_PTR
Added:
   trunk/libs/config/test/boost_no_cxx11_allocator.ipp (contents, props changed)
   trunk/libs/config/test/boost_no_cxx11_atomic_sp.ipp (contents, props changed)
   trunk/libs/config/test/boost_no_cxx11_smart_ptr.ipp (contents, props changed)
   trunk/libs/config/test/boost_no_cxx_hdr_functional.ipp (contents, props changed)
   trunk/libs/config/test/no_cxx11_allocator_fail.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx11_allocator_pass.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx11_atomic_sp_fail.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx11_atomic_sp_pass.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx11_smart_ptr_fail.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx11_smart_ptr_pass.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx_hdr_functional_fail.cpp (contents, props changed)
   trunk/libs/config/test/no_cxx_hdr_functional_pass.cpp (contents, props changed)
Text files modified:
   trunk/boost/config/stdlib/dinkumware.hpp | 4 +++
   trunk/boost/config/stdlib/libcomo.hpp | 4 +++
   trunk/boost/config/stdlib/libstdcpp3.hpp | 6 +++
   trunk/boost/config/stdlib/modena.hpp | 4 +++
   trunk/boost/config/stdlib/msl.hpp | 4 +++
   trunk/boost/config/stdlib/roguewave.hpp | 4 +++
   trunk/boost/config/stdlib/sgi.hpp | 4 +++
   trunk/boost/config/stdlib/stlport.hpp | 4 +++
   trunk/boost/config/stdlib/vacpp.hpp | 4 +++
   trunk/libs/config/doc/html/boost_config/boost_macro_reference.html | 51 ++++++++++++++++++++++++++++++++++++++++
   trunk/libs/config/doc/html/index.html | 2
   trunk/libs/config/doc/macro_reference.qbk | 4 +++
   trunk/libs/config/test/all/Jamfile.v2 | 14 ++++++++++
   trunk/libs/config/test/config_info.cpp | 6 ++++
   trunk/libs/config/test/config_test.cpp | 42 ++++++++++++++++++++++++++++++++
   15 files changed, 153 insertions(+), 4 deletions(-)

Modified: trunk/boost/config/stdlib/dinkumware.hpp
==============================================================================
--- trunk/boost/config/stdlib/dinkumware.hpp (original)
+++ trunk/boost/config/stdlib/dinkumware.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -106,7 +106,9 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_CXX11_HDR_TUPLE
 # define BOOST_NO_CXX11_HDR_TYPEINDEX
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_SMART_PTR
 #endif
 
 #if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
@@ -122,6 +124,8 @@
 # define BOOST_NO_CXX11_HDR_MUTEX
 # define BOOST_NO_CXX11_HDR_RATIO
 # define BOOST_NO_CXX11_HDR_THREAD
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 
 #ifdef _CPPLIB_VER
 # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER

Modified: trunk/boost/config/stdlib/libcomo.hpp
==============================================================================
--- trunk/boost/config/stdlib/libcomo.hpp (original)
+++ trunk/boost/config/stdlib/libcomo.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -55,6 +55,10 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 
 //
 // Intrinsic type_traits support.

Modified: trunk/boost/config/stdlib/libstdcpp3.hpp
==============================================================================
--- trunk/boost/config/stdlib/libstdcpp3.hpp (original)
+++ trunk/boost/config/stdlib/libstdcpp3.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -111,6 +111,8 @@
 # define BOOST_NO_STD_UNORDERED // deprecated; see following
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
+# define BOOST_NO_CXX11_SMART_PTR
 #endif
 
 // C++0x headers in GCC 4.4.0 and later
@@ -141,7 +143,7 @@
 # define BOOST_NO_CXX11_HDR_RANDOM
 #endif
 
-// C++0x features in GCC 4.5.0 and later
+// C++0x features in GCC 4.6.0 and later
 //
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
 # define BOOST_NO_CXX11_HDR_TYPEINDEX
@@ -151,5 +153,7 @@
 # define BOOST_NO_CXX11_HDR_THREAD
 # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 # define BOOST_NO_CXX11_HDR_CODECVT
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 
 // --- end ---

Modified: trunk/boost/config/stdlib/modena.hpp
==============================================================================
--- trunk/boost/config/stdlib/modena.hpp (original)
+++ trunk/boost/config/stdlib/modena.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -44,6 +44,10 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 
 #define BOOST_STDLIB "Modena C++ standard library"
 

Modified: trunk/boost/config/stdlib/msl.hpp
==============================================================================
--- trunk/boost/config/stdlib/msl.hpp (original)
+++ trunk/boost/config/stdlib/msl.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -68,6 +68,10 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 
 #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
 

Modified: trunk/boost/config/stdlib/roguewave.hpp
==============================================================================
--- trunk/boost/config/stdlib/roguewave.hpp (original)
+++ trunk/boost/config/stdlib/roguewave.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -180,4 +180,8 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 

Modified: trunk/boost/config/stdlib/sgi.hpp
==============================================================================
--- trunk/boost/config/stdlib/sgi.hpp (original)
+++ trunk/boost/config/stdlib/sgi.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -138,6 +138,10 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 
 #define BOOST_STDLIB "SGI standard library"
 

Modified: trunk/boost/config/stdlib/stlport.hpp
==============================================================================
--- trunk/boost/config/stdlib/stlport.hpp (original)
+++ trunk/boost/config/stdlib/stlport.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -232,6 +232,10 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 
 #define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
 

Modified: trunk/boost/config/stdlib/vacpp.hpp
==============================================================================
--- trunk/boost/config/stdlib/vacpp.hpp (original)
+++ trunk/boost/config/stdlib/vacpp.hpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -44,6 +44,10 @@
 # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 # define BOOST_NO_CXX11_HDR_UNORDERED_SET
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
 
 #define BOOST_STDLIB "Visual Age default standard library"
 

Modified: trunk/libs/config/doc/html/boost_config/boost_macro_reference.html
==============================================================================
--- trunk/libs/config/doc/html/boost_config/boost_macro_reference.html (original)
+++ trunk/libs/config/doc/html/boost_config/boost_macro_reference.html 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -2306,6 +2306,31 @@
 <tr>
 <td>
                 <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALLOCATOR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide a C++11 version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code> in &lt;memory&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ATOMIC_SP</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library &lt;memory&gt; does not support atomic smart
+ pointer operations.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                   <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_ARRAY</span></code>
                 </p>
               </td>
@@ -2366,6 +2391,19 @@
 <tr>
 <td>
                 <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FUNCTIONAL</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library does not provide a C++11 compatible version
+ of &lt;functional&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                   <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_FUTURE</span></code>
                 </p>
               </td>
@@ -2522,6 +2560,19 @@
 <tr>
 <td>
                 <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_SMART_PTR</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library header &lt;memory&gt; has no shared_ptr and
+ unique_ptr.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                   <code class="computeroutput"><span class="identifier">BOOST_NO_AUTO_DECLARATIONS</span></code>
                 </p>
               </td>

Modified: trunk/libs/config/doc/html/index.html
==============================================================================
--- trunk/libs/config/doc/html/index.html (original)
+++ trunk/libs/config/doc/html/index.html 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -951,7 +951,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: March 21, 2012 at 18:21:54 GMT</small></p></td>
+<td align="left"><p><small>Last revised: April 22, 2012 at 10:30:25 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: trunk/libs/config/doc/macro_reference.qbk
==============================================================================
--- trunk/libs/config/doc/macro_reference.qbk (original)
+++ trunk/libs/config/doc/macro_reference.qbk 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -538,11 +538,14 @@
 [table
 [[Macro ][Description ]]
 
+[[`BOOST_NO_CXX11_ALLOCATOR`][The standard library does not provide a C++11 version of `std::allocator` in <memory>.]]
+[[`BOOST_NO_CXX11_ATOMIC_SP`][The standard library <memory> does not support atomic smart pointer operations.]]
 [[`BOOST_NO_CXX11_HDR_ARRAY`][The standard library does not provide header <array>.]]
 [[`BOOST_NO_CXX11_HDR_CHRONO`][The standard library does not provide header <chrono>.]]
 [[`BOOST_NO_CXX11_HDR_CODECVT`][The standard library does not provide header <codecvt>.]]
 [[`BOOST_NO_CXX11_HDR_CONDITION_VARIABLE`][The standard library does not provide header <condition_variable>.]]
 [[`BOOST_NO_CXX11_HDR_FORWARD_LIST`][The standard library does not provide header <forward_list>.]]
+[[`BOOST_NO_CXX11_HDR_FUNCTIONAL`][The standard library does not provide a C++11 compatible version of <functional>.]]
 [[`BOOST_NO_CXX11_HDR_FUTURE`][The standard library does not provide header <future>.]]
 [[`BOOST_NO_CXX11_HDR_INITIALIZER_LIST`][The standard library does not provide header <initializer_list>.]]
 [[`BOOST_NO_CXX11_HDR_MUTEX`][The standard library does not provide header <mutex>.]]
@@ -556,6 +559,7 @@
 [[`BOOST_NO_CXX11_HDR_TYPE_TRAITS`][The standard library does not provide header <type_traits>.]]
 [[`BOOST_NO_CXX11_HDR_UNORDERED_MAP`][The standard library does not provide header <unordered_map>.]]
 [[`BOOST_NO_CXX11_HDR_UNORDERED_SET`][The standard library does not provide header <unordered_set>.]]
+[[`BOOST_NO_CXX11_SMART_PTR`][The standard library header <memory> has no shared_ptr and unique_ptr.]]
 
 [[`BOOST_NO_AUTO_DECLARATIONS`][The compiler does not support
 type deduction for variables declared with the `auto` keyword (`auto var = ...;`).

Modified: trunk/libs/config/test/all/Jamfile.v2
==============================================================================
--- trunk/libs/config/test/all/Jamfile.v2 (original)
+++ trunk/libs/config/test/all/Jamfile.v2 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -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 Mar 21 13:05:19 2012
+# This file was automatically generated on Sun Apr 22 11:55:04 2012
 # by libs/config/tools/generate.cpp
 # Copyright John Maddock.
 # Use, modification and distribution are subject to the
@@ -223,6 +223,12 @@
 test-suite "BOOST_NO_CWCTYPE" :
 [ run ../no_cwctype_pass.cpp ]
 [ compile-fail ../no_cwctype_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_ALLOCATOR" :
+[ run ../no_cxx11_allocator_pass.cpp ]
+[ compile-fail ../no_cxx11_allocator_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_ATOMIC_SMART_PTR" :
+[ run ../no_cxx11_atomic_sp_pass.cpp ]
+[ compile-fail ../no_cxx11_atomic_sp_fail.cpp ] ;
 test-suite "BOOST_NO_CXX11_HDR_ARRAY" :
 [ run ../no_cxx11_hdr_array_pass.cpp ]
 [ compile-fail ../no_cxx11_hdr_array_fail.cpp ] ;
@@ -277,6 +283,12 @@
 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_SMART_PTR" :
+[ run ../no_cxx11_smart_ptr_pass.cpp ]
+[ compile-fail ../no_cxx11_smart_ptr_fail.cpp ] ;
+test-suite "BOOST_NO_CXX11_HDR_FUNCTIONAL" :
+[ run ../no_cxx_hdr_functional_pass.cpp ]
+[ compile-fail ../no_cxx_hdr_functional_fail.cpp ] ;
 test-suite "BOOST_NO_DECLTYPE" :
 [ run ../no_decltype_pass.cpp ]
 [ compile-fail ../no_decltype_fail.cpp ] ;

Added: trunk/libs/config/test/boost_no_cxx11_allocator.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/boost_no_cxx11_allocator.ipp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,34 @@
+// (C) Copyright John Maddock 2012
+
+// 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_ALLOCATOR
+// TITLE: C++11 <memory> doesn't have C++0x allocator support
+// DESCRIPTION: The compiler does not support the C++11 allocator features added to <memory>
+
+#include <memory>
+
+namespace boost_no_cxx11_allocator {
+
+int test()
+{
+ std::pointer_traits<char*>* p = 0;
+ std::pointer_safety s = std::relaxed;
+
+ char* (*l_undeclare_reachable)(char *p) = std::undeclare_reachable;
+ void (*l_declare_no_pointers)(char *p, size_t n) = std::declare_no_pointers;
+ void (*l_undeclare_no_pointers)(char *p, size_t n) = std::undeclare_no_pointers;
+ std::pointer_safety (*l_get_pointer_safety)() = std::get_pointer_safety;
+ void* (*l_align)(std::size_t alignment, std::size_t size, void *&ptr, std::size_t& space) = std::align;
+ std::allocator_arg_t aat;
+ std::uses_allocator<int, std::allocator<int> > ua;
+ std::allocator_traits<std::allocator<int> > at;
+
+ return 0;
+}
+
+}

Added: trunk/libs/config/test/boost_no_cxx11_atomic_sp.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/boost_no_cxx11_atomic_sp.ipp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// (C) Copyright John Maddock 2012
+
+// 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_ATOMIC_SMART_PTR
+// TITLE: C++11 <memory> does not support atomic smart pointer operations
+// DESCRIPTION: The compiler does not support the C++11 atomic smart pointer features added to <memory>
+
+#include <memory>
+
+namespace boost_no_cxx11_atomic_smart_ptr {
+
+int test()
+{
+ std::shared_ptr<int> spi(new int), spi2(new int);
+ spi = std::static_pointer_cast<int>(spi);
+
+ atomic_is_lock_free(&spi);
+ atomic_load(&spi);
+ atomic_load_explicit(&spi, std::memory_order_relaxed);
+ atomic_store(&spi, spi2);
+ atomic_store_explicit(&spi, spi2, std::memory_order_relaxed);
+ atomic_exchange(&spi, spi2);
+ atomic_exchange_explicit(&spi, std::memory_order_relaxed);
+ atomic_compare_exchange_weak(&spi, &spi2, spi);
+ atomic_compare_exchange_strong(&spi, &spi2, spi);
+ atomic_compare_exchange_weak_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
+ atomic_compare_exchange_strong_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
+
+ return 0;
+}
+
+}

Added: trunk/libs/config/test/boost_no_cxx11_smart_ptr.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/boost_no_cxx11_smart_ptr.ipp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,32 @@
+// (C) Copyright John Maddock 2012
+
+// 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_SMART_PTR
+// TITLE: C++11 <memory> has no shared_ptr and unique_ptr
+// DESCRIPTION: The compiler does not support the C++11 smart pointer features added to <memory>
+
+#include <memory>
+// Hash functions for shared pointers should be in <memory>
+// but with some std lib's we have to include <functional> as well...
+#include <functional>
+
+namespace boost_no_cxx11_smart_ptr {
+
+int test()
+{
+ std::unique_ptr<int> upi(new int);
+ std::shared_ptr<int> spi(new int), spi2(new int);
+ spi = std::static_pointer_cast<int>(spi);
+
+ std::hash<std::shared_ptr<int> > h1;
+ std::hash<std::unique_ptr<int> > h2;
+
+ return 0;
+}
+
+}

Added: trunk/libs/config/test/boost_no_cxx_hdr_functional.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/boost_no_cxx_hdr_functional.ipp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,43 @@
+// (C) Copyright John Maddock 2012
+
+// 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_HDR_FUNCTIONAL
+// TITLE: C++11 <functional> unavailable
+// DESCRIPTION: The compiler does not support the C++11 features added to <functional>
+
+#include <functional>
+
+void f(int, float){}
+
+namespace boost_no_cxx11_hdr_functional {
+
+int test()
+{
+ int i = 0;
+ std::ref(i);
+ std::cref(i);
+
+ std::bit_and<int> b1;
+ std::bit_or<int> b2;
+ std::bit_xor<int> b3;
+
+ std::hash<short> hs;
+
+ (void)b1;
+ (void)b2;
+ (void)b3;
+ (void)hs;
+
+ std::bind(f, std::placeholders::_1, 0.0f);
+
+ std::function<void(int, float)> fun(f);
+
+ return 0;
+}
+
+}

Modified: trunk/libs/config/test/config_info.cpp
==============================================================================
--- trunk/libs/config/test/config_info.cpp (original)
+++ trunk/libs/config/test/config_info.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -994,11 +994,14 @@
    PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
    PRINT_MACRO(BOOST_NO_CWCHAR);
    PRINT_MACRO(BOOST_NO_CWCTYPE);
+ PRINT_MACRO(BOOST_NO_CXX11_ALLOCATOR);
+ PRINT_MACRO(BOOST_NO_CXX11_ATOMIC_SMART_PTR);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_CHRONO);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_CODECVT);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_FORWARD_LIST);
+ PRINT_MACRO(BOOST_NO_CXX11_HDR_FUNCTIONAL);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_FUTURE);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_INITIALIZER_LIST);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_MUTEX);
@@ -1012,6 +1015,7 @@
    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_SMART_PTR);
    PRINT_MACRO(BOOST_NO_DECLTYPE);
    PRINT_MACRO(BOOST_NO_DECLTYPE_N3276);
    PRINT_MACRO(BOOST_NO_DEFAULTED_FUNCTIONS);
@@ -1107,6 +1111,8 @@
 
 
 
+
+
    // END GENERATED BLOCK
 
    PRINT_MACRO(BOOST_INTEL);

Modified: trunk/libs/config/test/config_test.cpp
==============================================================================
--- trunk/libs/config/test/config_test.cpp (original)
+++ trunk/libs/config/test/config_test.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -1,4 +1,4 @@
-// This file was automatically generated on Wed Mar 21 13:05:19 2012
+// This file was automatically generated on Sun Apr 22 11:55:04 2012
 // by libs/config/tools/generate.cpp
 // Copyright John Maddock 2002-4.
 // Use, modification and distribution are subject to the
@@ -102,6 +102,16 @@
 #else
 namespace boost_no_cwctype = empty_boost;
 #endif
+#ifndef BOOST_NO_CXX11_ALLOCATOR
+#include "boost_no_cxx11_allocator.ipp"
+#else
+namespace boost_no_cxx11_allocator = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#include "boost_no_cxx11_atomic_sp.ipp"
+#else
+namespace boost_no_cxx11_atomic_smart_ptr = empty_boost;
+#endif
 #ifndef BOOST_NO_CXX11_HDR_ARRAY
 #include "boost_no_cxx11_hdr_array.ipp"
 #else
@@ -192,6 +202,16 @@
 #else
 namespace boost_no_cxx11_hdr_unordered_set = empty_boost;
 #endif
+#ifndef BOOST_NO_CXX11_SMART_PTR
+#include "boost_no_cxx11_smart_ptr.ipp"
+#else
+namespace boost_no_cxx11_smart_ptr = empty_boost;
+#endif
+#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
+#include "boost_no_cxx_hdr_functional.ipp"
+#else
+namespace boost_no_cxx11_hdr_functional = empty_boost;
+#endif
 #ifndef BOOST_NO_DECLTYPE
 #include "boost_no_decltype.ipp"
 #else
@@ -1196,6 +1216,16 @@
       std::cerr << "Failed test for BOOST_NO_CWCTYPE 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;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_atomic_smart_ptr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_ATOMIC_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_no_cxx11_hdr_array::test())
    {
       std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1286,6 +1316,16 @@
       std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_no_cxx11_smart_ptr::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_SMART_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_cxx11_hdr_functional::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUNCTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_no_decltype::test())
    {
       std::cerr << "Failed test for BOOST_NO_DECLTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;

Added: trunk/libs/config/test/no_cxx11_allocator_fail.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx11_allocator_fail.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:42 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ALLOCATOR
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_ALLOCATOR should not be defined.
+// See file boost_no_cxx11_allocator.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_ALLOCATOR
+#include "boost_no_cxx11_allocator.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_allocator::test();
+}
+

Added: trunk/libs/config/test/no_cxx11_allocator_pass.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx11_allocator_pass.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:42 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ALLOCATOR
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_ALLOCATOR should be defined.
+// See file boost_no_cxx11_allocator.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_ALLOCATOR
+#include "boost_no_cxx11_allocator.ipp"
+#else
+namespace boost_no_cxx11_allocator = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_allocator::test();
+}
+

Added: trunk/libs/config/test/no_cxx11_atomic_sp_fail.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx11_atomic_sp_fail.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:42 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ATOMIC_SMART_PTR
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_ATOMIC_SMART_PTR should not be defined.
+// See file boost_no_cxx11_atomic_sp.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#include "boost_no_cxx11_atomic_sp.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_atomic_smart_ptr::test();
+}
+

Added: trunk/libs/config/test/no_cxx11_atomic_sp_pass.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx11_atomic_sp_pass.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:42 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_ATOMIC_SMART_PTR
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_ATOMIC_SMART_PTR should be defined.
+// See file boost_no_cxx11_atomic_sp.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_ATOMIC_SMART_PTR
+#include "boost_no_cxx11_atomic_sp.ipp"
+#else
+namespace boost_no_cxx11_atomic_smart_ptr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_atomic_smart_ptr::test();
+}
+

Added: trunk/libs/config/test/no_cxx11_smart_ptr_fail.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx11_smart_ptr_fail.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:43 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_SMART_PTR
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_SMART_PTR should not be defined.
+// See file boost_no_cxx11_smart_ptr.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_SMART_PTR
+#include "boost_no_cxx11_smart_ptr.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_smart_ptr::test();
+}
+

Added: trunk/libs/config/test/no_cxx11_smart_ptr_pass.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx11_smart_ptr_pass.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:43 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_SMART_PTR
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_SMART_PTR should be defined.
+// See file boost_no_cxx11_smart_ptr.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_SMART_PTR
+#include "boost_no_cxx11_smart_ptr.ipp"
+#else
+namespace boost_no_cxx11_smart_ptr = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_smart_ptr::test();
+}
+

Added: trunk/libs/config/test/no_cxx_hdr_functional_fail.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx_hdr_functional_fail.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:43 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_HDR_FUNCTIONAL
+// This file should not compile, if it does then
+// BOOST_NO_CXX11_HDR_FUNCTIONAL should not be defined.
+// See file boost_no_cxx_hdr_functional.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifdef BOOST_NO_CXX11_HDR_FUNCTIONAL
+#include "boost_no_cxx_hdr_functional.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_hdr_functional::test();
+}
+

Added: trunk/libs/config/test/no_cxx_hdr_functional_pass.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_cxx_hdr_functional_pass.cpp 2012-04-22 06:57:10 EDT (Sun, 22 Apr 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Sun Apr 22 11:15:43 2012
+// 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: generate.cpp 72327 2011-06-01 14:51:03Z eric_niebler $
+//
+
+
+// Test file for macro BOOST_NO_CXX11_HDR_FUNCTIONAL
+// This file should compile, if it does not then
+// BOOST_NO_CXX11_HDR_FUNCTIONAL should be defined.
+// See file boost_no_cxx_hdr_functional.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 <boost/config.hpp>
+#include "test.hpp"
+
+#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
+#include "boost_no_cxx_hdr_functional.ipp"
+#else
+namespace boost_no_cxx11_hdr_functional = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_cxx11_hdr_functional::test();
+}
+


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