Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r77457 - in trunk: boost/config/compiler libs/config/doc libs/config/test libs/config/test/all
From: lorcaminiti_at_[hidden]
Date: 2012-03-21 13:32:38


Author: lcaminiti
Date: 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
New Revision: 77457
URL: http://svn.boost.org/trac/boost/changeset/77457

Log:
Added BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS macro to Boost.Config, updated tests and docs.
(Plus I had to run dos2unix on auto generated config_info.cpp because of "inconsistent line ending" SVN error...)
Added:
   trunk/libs/config/test/boost_no_tem_local_classes.ipp (contents, props changed)
   trunk/libs/config/test/no_tem_local_classes_fail.cpp (contents, props changed)
   trunk/libs/config/test/no_tem_local_classes_pass.cpp (contents, props changed)
Text files modified:
   trunk/boost/config/compiler/borland.hpp | 1
   trunk/boost/config/compiler/clang.hpp | 4
   trunk/boost/config/compiler/codegear.hpp | 1
   trunk/boost/config/compiler/common_edg.hpp | 1
   trunk/boost/config/compiler/cray.hpp | 1
   trunk/boost/config/compiler/digitalmars.hpp | 1
   trunk/boost/config/compiler/gcc.hpp | 1
   trunk/boost/config/compiler/gcc_xml.hpp | 1
   trunk/boost/config/compiler/hp_acc.hpp | 1
   trunk/boost/config/compiler/intel.hpp | 2
   trunk/boost/config/compiler/metrowerks.hpp | 1
   trunk/boost/config/compiler/mpw.hpp | 1
   trunk/boost/config/compiler/pathscale.hpp | 1
   trunk/boost/config/compiler/pgi.hpp | 1
   trunk/boost/config/compiler/sunpro_cc.hpp | 1
   trunk/boost/config/compiler/vacpp.hpp | 1
   trunk/boost/config/compiler/visualc.hpp | 1
   trunk/libs/config/doc/macro_reference.qbk | 5
   trunk/libs/config/test/all/Jamfile.v2 | 101 ++++++------
   trunk/libs/config/test/config_info.cpp | 32 ++-
   trunk/libs/config/test/config_test.cpp | 308 ++++++++++++++++++++-------------------
   21 files changed, 254 insertions(+), 213 deletions(-)

Modified: trunk/boost/config/compiler/borland.hpp
==============================================================================
--- trunk/boost/config/compiler/borland.hpp (original)
+++ trunk/boost/config/compiler/borland.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -178,6 +178,7 @@
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS
 #define BOOST_NO_RVALUE_REFERENCES

Modified: trunk/boost/config/compiler/clang.hpp
==============================================================================
--- trunk/boost/config/compiler/clang.hpp (original)
+++ trunk/boost/config/compiler/clang.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -72,6 +72,10 @@
 # define BOOST_NO_LAMBDAS
 #endif
 
+#if __clang_major__ < 2 || (__clang_major__ == 2 && __clang_minor__ < 9)
+# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS // From version 2.9 on.
+#endif
+
 #if !__has_feature(cxx_noexcept)
 # define BOOST_NO_NOEXCEPT
 #endif

Modified: trunk/boost/config/compiler/codegear.hpp
==============================================================================
--- trunk/boost/config/compiler/codegear.hpp (original)
+++ trunk/boost/config/compiler/codegear.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -99,6 +99,7 @@
 #define BOOST_NO_EXTERN_TEMPLATE
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/common_edg.hpp
==============================================================================
--- trunk/boost/config/compiler/common_edg.hpp (original)
+++ trunk/boost/config/compiler/common_edg.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -82,6 +82,7 @@
 #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/cray.hpp
==============================================================================
--- trunk/boost/config/compiler/cray.hpp (original)
+++ trunk/boost/config/compiler/cray.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -42,6 +42,7 @@
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 #define BOOST_NO_DELETED_FUNCTIONS

Modified: trunk/boost/config/compiler/digitalmars.hpp
==============================================================================
--- trunk/boost/config/compiler/digitalmars.hpp (original)
+++ trunk/boost/config/compiler/digitalmars.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -73,6 +73,7 @@
 #define BOOST_NO_EXTERN_TEMPLATE
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/gcc.hpp
==============================================================================
--- trunk/boost/config/compiler/gcc.hpp (original)
+++ trunk/boost/config/compiler/gcc.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -196,6 +196,7 @@
 #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
 # define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 # define BOOST_NO_LAMBDAS
+# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 # define BOOST_NO_RAW_LITERALS
 # define BOOST_NO_UNICODE_LITERALS
 #endif

Modified: trunk/boost/config/compiler/gcc_xml.hpp
==============================================================================
--- trunk/boost/config/compiler/gcc_xml.hpp (original)
+++ trunk/boost/config/compiler/gcc_xml.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -49,6 +49,7 @@
 # define BOOST_NO_SCOPED_ENUMS
 # define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 # define BOOST_NO_LAMBDAS
+# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 # define BOOST_NO_RAW_LITERALS
 # define BOOST_NO_UNICODE_LITERALS
 # define BOOST_NO_NOEXCEPT

Modified: trunk/boost/config/compiler/hp_acc.hpp
==============================================================================
--- trunk/boost/config/compiler/hp_acc.hpp (original)
+++ trunk/boost/config/compiler/hp_acc.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -106,6 +106,7 @@
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/intel.hpp
==============================================================================
--- trunk/boost/config/compiler/intel.hpp (original)
+++ trunk/boost/config/compiler/intel.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -205,6 +205,7 @@
 // http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
 //
 //# undef BOOST_NO_LAMBDAS
+//# undef BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 //# undef BOOST_NO_DECLTYPE
 //# undef BOOST_NO_AUTO_DECLARATIONS
 //# undef BOOST_NO_AUTO_MULTIDECLARATIONS
@@ -216,6 +217,7 @@
 # undef BOOST_NO_DELETED_FUNCTIONS
 # undef BOOST_NO_DEFAULTED_FUNCTIONS
 # undef BOOST_NO_LAMBDAS
+# undef BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 # undef BOOST_NO_DECLTYPE
 # undef BOOST_NO_AUTO_DECLARATIONS
 # undef BOOST_NO_AUTO_MULTIDECLARATIONS

Modified: trunk/boost/config/compiler/metrowerks.hpp
==============================================================================
--- trunk/boost/config/compiler/metrowerks.hpp (original)
+++ trunk/boost/config/compiler/metrowerks.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -106,6 +106,7 @@
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/mpw.hpp
==============================================================================
--- trunk/boost/config/compiler/mpw.hpp (original)
+++ trunk/boost/config/compiler/mpw.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -54,6 +54,7 @@
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/pathscale.hpp
==============================================================================
--- trunk/boost/config/compiler/pathscale.hpp (original)
+++ trunk/boost/config/compiler/pathscale.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -45,6 +45,7 @@
 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
 # define BOOST_NO_NOEXCEPT
 # define BOOST_NO_LAMBDAS
+# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 # define BOOST_NO_MS_INT64_NUMERIC_LIMITS
 # define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 # define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS

Modified: trunk/boost/config/compiler/pgi.hpp
==============================================================================
--- trunk/boost/config/compiler/pgi.hpp (original)
+++ trunk/boost/config/compiler/pgi.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -76,6 +76,7 @@
 #define BOOST_NO_EXTERN_TEMPLATE
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_NUMERIC_LIMITS_LOWEST

Modified: trunk/boost/config/compiler/sunpro_cc.hpp
==============================================================================
--- trunk/boost/config/compiler/sunpro_cc.hpp (original)
+++ trunk/boost/config/compiler/sunpro_cc.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -113,6 +113,7 @@
 #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/vacpp.hpp
==============================================================================
--- trunk/boost/config/compiler/vacpp.hpp (original)
+++ trunk/boost/config/compiler/vacpp.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -97,6 +97,7 @@
 #endif
 #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 #define BOOST_NO_LAMBDAS
+#define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
 #define BOOST_NO_RAW_LITERALS

Modified: trunk/boost/config/compiler/visualc.hpp
==============================================================================
--- trunk/boost/config/compiler/visualc.hpp (original)
+++ trunk/boost/config/compiler/visualc.hpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -196,6 +196,7 @@
 # define BOOST_NO_AUTO_DECLARATIONS
 # define BOOST_NO_AUTO_MULTIDECLARATIONS
 # define BOOST_NO_LAMBDAS
+# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 # define BOOST_NO_RVALUE_REFERENCES
 # define BOOST_NO_STATIC_ASSERT
 # define BOOST_NO_NULLPTR

Modified: trunk/libs/config/doc/macro_reference.qbk
==============================================================================
--- trunk/libs/config/doc/macro_reference.qbk (original)
+++ trunk/libs/config/doc/macro_reference.qbk 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -598,6 +598,11 @@
 ]]
 [[`BOOST_NO_LAMBDAS`][The compiler does not support Lambdas.
 ]]
+[[`BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS`][The compiler does not support
+local classes as template parameters (this macro intentionally does not
+control support for unnamed types as template parameters, see also
+[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]).
+]]
 [[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
 ]]
 [[`BOOST_NO_NOEXCEPT`][The compiler does not support `noexcept`.

Modified: trunk/libs/config/test/all/Jamfile.v2
==============================================================================
--- trunk/libs/config/test/all/Jamfile.v2 (original)
+++ trunk/libs/config/test/all/Jamfile.v2 2012-03-21 13:32:36 EDT (Wed, 21 Mar 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 Sun Nov 27 09:43:19 2011
+# This file was automatically generated on Wed Mar 21 13:05:19 2012
 # by libs/config/tools/generate.cpp
 # Copyright John Maddock.
 # Use, modification and distribution are subject to the
@@ -175,6 +175,54 @@
 test-suite "BOOST_HAS_WINTHREADS" :
 [ run ../has_winthreads_pass.cpp ]
 [ compile-fail ../has_winthreads_fail.cpp ] ;
+test-suite "BOOST_NO_ADL_BARRIER" :
+[ run ../no_adl_barrier_pass.cpp ]
+[ compile-fail ../no_adl_barrier_fail.cpp ] ;
+test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
+[ run ../no_arg_dep_lookup_pass.cpp ]
+[ compile-fail ../no_arg_dep_lookup_fail.cpp ] ;
+test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
+[ run ../no_array_type_spec_pass.cpp ]
+[ compile-fail ../no_array_type_spec_fail.cpp ] ;
+test-suite "BOOST_NO_AUTO_DECLARATIONS" :
+[ run ../no_auto_declarations_pass.cpp ]
+[ compile-fail ../no_auto_declarations_fail.cpp ] ;
+test-suite "BOOST_NO_AUTO_MULTIDECLARATIONS" :
+[ run ../no_auto_multidecl_pass.cpp ]
+[ compile-fail ../no_auto_multidecl_fail.cpp ] ;
+test-suite "BOOST_NO_AUTO_PTR" :
+[ run ../no_auto_ptr_pass.cpp ]
+[ compile-fail ../no_auto_ptr_fail.cpp ] ;
+test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
+[ run ../no_bcb_partial_spec_pass.cpp ]
+[ compile-fail ../no_bcb_partial_spec_fail.cpp ] ;
+test-suite "BOOST_NO_CHAR16_T" :
+[ run ../no_char16_t_pass.cpp ]
+[ compile-fail ../no_char16_t_fail.cpp ] ;
+test-suite "BOOST_NO_CHAR32_T" :
+[ run ../no_char32_t_pass.cpp ]
+[ compile-fail ../no_char32_t_fail.cpp ] ;
+test-suite "BOOST_NO_COMPLETE_VALUE_INITIALIZATION" :
+[ run ../no_com_value_init_pass.cpp ]
+[ compile-fail ../no_com_value_init_fail.cpp ] ;
+test-suite "BOOST_NO_CONSTEXPR" :
+[ run ../no_constexpr_pass.cpp ]
+[ compile-fail ../no_constexpr_fail.cpp ] ;
+test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
+[ run ../no_ctype_functions_pass.cpp ]
+[ compile-fail ../no_ctype_functions_fail.cpp ] ;
+test-suite "BOOST_NO_CV_SPECIALIZATIONS" :
+[ run ../no_cv_spec_pass.cpp ]
+[ compile-fail ../no_cv_spec_fail.cpp ] ;
+test-suite "BOOST_NO_CV_VOID_SPECIALIZATIONS" :
+[ run ../no_cv_void_spec_pass.cpp ]
+[ compile-fail ../no_cv_void_spec_fail.cpp ] ;
+test-suite "BOOST_NO_CWCHAR" :
+[ run ../no_cwchar_pass.cpp ]
+[ compile-fail ../no_cwchar_fail.cpp ] ;
+test-suite "BOOST_NO_CWCTYPE" :
+[ run ../no_cwctype_pass.cpp ]
+[ compile-fail ../no_cwctype_fail.cpp ] ;
 test-suite "BOOST_NO_CXX11_HDR_ARRAY" :
 [ run ../no_cxx11_hdr_array_pass.cpp ]
 [ compile-fail ../no_cxx11_hdr_array_fail.cpp ] ;
@@ -229,54 +277,6 @@
 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_ADL_BARRIER" :
-[ run ../no_adl_barrier_pass.cpp ]
-[ compile-fail ../no_adl_barrier_fail.cpp ] ;
-test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
-[ run ../no_arg_dep_lookup_pass.cpp ]
-[ compile-fail ../no_arg_dep_lookup_fail.cpp ] ;
-test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
-[ run ../no_array_type_spec_pass.cpp ]
-[ compile-fail ../no_array_type_spec_fail.cpp ] ;
-test-suite "BOOST_NO_AUTO_DECLARATIONS" :
-[ run ../no_auto_declarations_pass.cpp ]
-[ compile-fail ../no_auto_declarations_fail.cpp ] ;
-test-suite "BOOST_NO_AUTO_MULTIDECLARATIONS" :
-[ run ../no_auto_multidecl_pass.cpp ]
-[ compile-fail ../no_auto_multidecl_fail.cpp ] ;
-test-suite "BOOST_NO_AUTO_PTR" :
-[ run ../no_auto_ptr_pass.cpp ]
-[ compile-fail ../no_auto_ptr_fail.cpp ] ;
-test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
-[ run ../no_bcb_partial_spec_pass.cpp ]
-[ compile-fail ../no_bcb_partial_spec_fail.cpp ] ;
-test-suite "BOOST_NO_CHAR16_T" :
-[ run ../no_char16_t_pass.cpp ]
-[ compile-fail ../no_char16_t_fail.cpp ] ;
-test-suite "BOOST_NO_CHAR32_T" :
-[ run ../no_char32_t_pass.cpp ]
-[ compile-fail ../no_char32_t_fail.cpp ] ;
-test-suite "BOOST_NO_COMPLETE_VALUE_INITIALIZATION" :
-[ run ../no_com_value_init_pass.cpp ]
-[ compile-fail ../no_com_value_init_fail.cpp ] ;
-test-suite "BOOST_NO_CONSTEXPR" :
-[ run ../no_constexpr_pass.cpp ]
-[ compile-fail ../no_constexpr_fail.cpp ] ;
-test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
-[ run ../no_ctype_functions_pass.cpp ]
-[ compile-fail ../no_ctype_functions_fail.cpp ] ;
-test-suite "BOOST_NO_CV_SPECIALIZATIONS" :
-[ run ../no_cv_spec_pass.cpp ]
-[ compile-fail ../no_cv_spec_fail.cpp ] ;
-test-suite "BOOST_NO_CV_VOID_SPECIALIZATIONS" :
-[ run ../no_cv_void_spec_pass.cpp ]
-[ compile-fail ../no_cv_void_spec_fail.cpp ] ;
-test-suite "BOOST_NO_CWCHAR" :
-[ run ../no_cwchar_pass.cpp ]
-[ compile-fail ../no_cwchar_fail.cpp ] ;
-test-suite "BOOST_NO_CWCTYPE" :
-[ run ../no_cwctype_pass.cpp ]
-[ compile-fail ../no_cwctype_fail.cpp ] ;
 test-suite "BOOST_NO_DECLTYPE" :
 [ run ../no_decltype_pass.cpp ]
 [ compile-fail ../no_decltype_fail.cpp ] ;
@@ -484,6 +484,9 @@
 test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
 [ run ../no_template_template_pass.cpp ]
 [ compile-fail ../no_template_template_fail.cpp ] ;
+test-suite "BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS" :
+[ run ../no_tem_local_classes_pass.cpp ]
+[ compile-fail ../no_tem_local_classes_fail.cpp ] ;
 test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
 [ run ../no_two_phase_lookup_pass.cpp ]
 [ compile-fail ../no_two_phase_lookup_fail.cpp ] ;

Added: trunk/libs/config/test/boost_no_tem_local_classes.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/boost_no_tem_local_classes.ipp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -0,0 +1,33 @@
+
+// Copyright (C) 2009-2012 Lorenzo Caminiti
+// Distributed under the Boost Software License, Version 1.0
+// (see accompanying file LICENSE_1_0.txt or a copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+// Home at http://www.boost.org/libs/config
+
+// MACRO: BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+// TITLE: local classes as template parameters
+// DESCRIPTION: Local classes cannot be passed as template parameters.
+
+// NOTE: Local classes cannot be passed as template parameters in C++03 (even
+// if some C++03 compilers, like MSVC and older GCC, allow it). Local classes
+// can instead be passed as template parameters in C++11 (see also N2657, note
+// that this macro does not check if unnamed types can also be passed as
+// template parameters but it is intentionally limited to local named classes
+// because some non C++11 compilers might only support local named classes as
+// template parameters which is still very useful to program local functors).
+namespace boost_no_local_class_template_parameters {
+
+template<typename T> struct a { void use() {} };
+template<typename T> void f(T x) {}
+
+int test() {
+ class local_class {} local_obj;
+ a<local_class> a1;
+ a1.use(); // Avoid unused variable warning.
+ f(local_obj);
+ return 0;
+}
+
+} // namespace
+

Modified: trunk/libs/config/test/config_info.cpp
==============================================================================
--- trunk/libs/config/test/config_info.cpp (original)
+++ trunk/libs/config/test/config_info.cpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -979,6 +979,21 @@
    PRINT_MACRO(BOOST_HAS_WINTHREADS);
    PRINT_MACRO(BOOST_MSVC6_MEMBER_TEMPLATES);
    PRINT_MACRO(BOOST_MSVC_STD_ITERATOR);
+ PRINT_MACRO(BOOST_NO_ADL_BARRIER);
+ PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP);
+ PRINT_MACRO(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_AUTO_DECLARATIONS);
+ PRINT_MACRO(BOOST_NO_AUTO_MULTIDECLARATIONS);
+ PRINT_MACRO(BOOST_NO_AUTO_PTR);
+ PRINT_MACRO(BOOST_NO_CHAR16_T);
+ PRINT_MACRO(BOOST_NO_CHAR32_T);
+ PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
+ PRINT_MACRO(BOOST_NO_CONSTEXPR);
+ PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
+ PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
+ PRINT_MACRO(BOOST_NO_CWCHAR);
+ PRINT_MACRO(BOOST_NO_CWCTYPE);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_CHRONO);
    PRINT_MACRO(BOOST_NO_CXX11_HDR_CODECVT);
@@ -997,21 +1012,6 @@
    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_ADL_BARRIER);
- PRINT_MACRO(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP);
- PRINT_MACRO(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS);
- PRINT_MACRO(BOOST_NO_AUTO_DECLARATIONS);
- PRINT_MACRO(BOOST_NO_AUTO_MULTIDECLARATIONS);
- PRINT_MACRO(BOOST_NO_AUTO_PTR);
- PRINT_MACRO(BOOST_NO_CHAR16_T);
- PRINT_MACRO(BOOST_NO_CHAR32_T);
- PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
- PRINT_MACRO(BOOST_NO_CONSTEXPR);
- PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
- PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
- PRINT_MACRO(BOOST_NO_CV_VOID_SPECIALIZATIONS);
- PRINT_MACRO(BOOST_NO_CWCHAR);
- PRINT_MACRO(BOOST_NO_CWCTYPE);
    PRINT_MACRO(BOOST_NO_DECLTYPE);
    PRINT_MACRO(BOOST_NO_DECLTYPE_N3276);
    PRINT_MACRO(BOOST_NO_DEFAULTED_FUNCTIONS);
@@ -1036,6 +1036,7 @@
    PRINT_MACRO(BOOST_NO_LAMBDAS);
    PRINT_MACRO(BOOST_NO_LIMITS);
    PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS);
+ PRINT_MACRO(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS);
    PRINT_MACRO(BOOST_NO_LONG_LONG);
    PRINT_MACRO(BOOST_NO_LONG_LONG_NUMERIC_LIMITS);
    PRINT_MACRO(BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS);
@@ -1105,6 +1106,7 @@
 
 
 
+
    // 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-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -1,4 +1,4 @@
-// This file was automatically generated on Sun Nov 27 09:43:19 2011
+// This file was automatically generated on Wed Mar 21 13:05:19 2012
 // by libs/config/tools/generate.cpp
 // Copyright John Maddock 2002-4.
 // Use, modification and distribution are subject to the
@@ -22,6 +22,86 @@
 
 int error_count = 0;
 
+#ifndef BOOST_NO_ADL_BARRIER
+#include "boost_no_adl_barrier.ipp"
+#else
+namespace boost_no_adl_barrier = empty_boost;
+#endif
+#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#include "boost_no_arg_dep_lookup.ipp"
+#else
+namespace boost_no_argument_dependent_lookup = empty_boost;
+#endif
+#ifndef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+#include "boost_no_array_type_spec.ipp"
+#else
+namespace boost_no_array_type_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_AUTO_DECLARATIONS
+#include "boost_no_auto_declarations.ipp"
+#else
+namespace boost_no_auto_declarations = empty_boost;
+#endif
+#ifndef BOOST_NO_AUTO_MULTIDECLARATIONS
+#include "boost_no_auto_multidecl.ipp"
+#else
+namespace boost_no_auto_multideclarations = empty_boost;
+#endif
+#ifndef BOOST_NO_AUTO_PTR
+#include "boost_no_auto_ptr.ipp"
+#else
+namespace boost_no_auto_ptr = empty_boost;
+#endif
+#ifndef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+#include "boost_no_bcb_partial_spec.ipp"
+#else
+namespace boost_bcb_partial_specialization_bug = empty_boost;
+#endif
+#ifndef BOOST_NO_CHAR16_T
+#include "boost_no_char16_t.ipp"
+#else
+namespace boost_no_char16_t = empty_boost;
+#endif
+#ifndef BOOST_NO_CHAR32_T
+#include "boost_no_char32_t.ipp"
+#else
+namespace boost_no_char32_t = empty_boost;
+#endif
+#ifndef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+#include "boost_no_com_value_init.ipp"
+#else
+namespace boost_no_complete_value_initialization = empty_boost;
+#endif
+#ifndef BOOST_NO_CONSTEXPR
+#include "boost_no_constexpr.ipp"
+#else
+namespace boost_no_constexpr = empty_boost;
+#endif
+#ifndef BOOST_NO_CTYPE_FUNCTIONS
+#include "boost_no_ctype_functions.ipp"
+#else
+namespace boost_no_ctype_functions = empty_boost;
+#endif
+#ifndef BOOST_NO_CV_SPECIALIZATIONS
+#include "boost_no_cv_spec.ipp"
+#else
+namespace boost_no_cv_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
+#include "boost_no_cv_void_spec.ipp"
+#else
+namespace boost_no_cv_void_specializations = empty_boost;
+#endif
+#ifndef BOOST_NO_CWCHAR
+#include "boost_no_cwchar.ipp"
+#else
+namespace boost_no_cwchar = empty_boost;
+#endif
+#ifndef BOOST_NO_CWCTYPE
+#include "boost_no_cwctype.ipp"
+#else
+namespace boost_no_cwctype = empty_boost;
+#endif
 #ifndef BOOST_NO_CXX11_HDR_ARRAY
 #include "boost_no_cxx11_hdr_array.ipp"
 #else
@@ -112,86 +192,6 @@
 #else
 namespace boost_no_cxx11_hdr_unordered_set = empty_boost;
 #endif
-#ifndef BOOST_NO_ADL_BARRIER
-#include "boost_no_adl_barrier.ipp"
-#else
-namespace boost_no_adl_barrier = empty_boost;
-#endif
-#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#include "boost_no_arg_dep_lookup.ipp"
-#else
-namespace boost_no_argument_dependent_lookup = empty_boost;
-#endif
-#ifndef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#include "boost_no_array_type_spec.ipp"
-#else
-namespace boost_no_array_type_specializations = empty_boost;
-#endif
-#ifndef BOOST_NO_AUTO_DECLARATIONS
-#include "boost_no_auto_declarations.ipp"
-#else
-namespace boost_no_auto_declarations = empty_boost;
-#endif
-#ifndef BOOST_NO_AUTO_MULTIDECLARATIONS
-#include "boost_no_auto_multidecl.ipp"
-#else
-namespace boost_no_auto_multideclarations = empty_boost;
-#endif
-#ifndef BOOST_NO_AUTO_PTR
-#include "boost_no_auto_ptr.ipp"
-#else
-namespace boost_no_auto_ptr = empty_boost;
-#endif
-#ifndef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#include "boost_no_bcb_partial_spec.ipp"
-#else
-namespace boost_bcb_partial_specialization_bug = empty_boost;
-#endif
-#ifndef BOOST_NO_CHAR16_T
-#include "boost_no_char16_t.ipp"
-#else
-namespace boost_no_char16_t = empty_boost;
-#endif
-#ifndef BOOST_NO_CHAR32_T
-#include "boost_no_char32_t.ipp"
-#else
-namespace boost_no_char32_t = empty_boost;
-#endif
-#ifndef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#include "boost_no_com_value_init.ipp"
-#else
-namespace boost_no_complete_value_initialization = empty_boost;
-#endif
-#ifndef BOOST_NO_CONSTEXPR
-#include "boost_no_constexpr.ipp"
-#else
-namespace boost_no_constexpr = empty_boost;
-#endif
-#ifndef BOOST_NO_CTYPE_FUNCTIONS
-#include "boost_no_ctype_functions.ipp"
-#else
-namespace boost_no_ctype_functions = empty_boost;
-#endif
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-#include "boost_no_cv_spec.ipp"
-#else
-namespace boost_no_cv_specializations = empty_boost;
-#endif
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-#include "boost_no_cv_void_spec.ipp"
-#else
-namespace boost_no_cv_void_specializations = empty_boost;
-#endif
-#ifndef BOOST_NO_CWCHAR
-#include "boost_no_cwchar.ipp"
-#else
-namespace boost_no_cwchar = empty_boost;
-#endif
-#ifndef BOOST_NO_CWCTYPE
-#include "boost_no_cwctype.ipp"
-#else
-namespace boost_no_cwctype = empty_boost;
-#endif
 #ifndef BOOST_NO_DECLTYPE
 #include "boost_no_decltype.ipp"
 #else
@@ -537,6 +537,11 @@
 #else
 namespace boost_no_template_templates = empty_boost;
 #endif
+#ifndef BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#include "boost_no_tem_local_classes.ipp"
+#else
+namespace boost_no_local_class_template_parameters = empty_boost;
+#endif
 #ifndef BOOST_NO_TWO_PHASE_NAME_LOOKUP
 #include "boost_no_two_phase_lookup.ipp"
 #else
@@ -1111,174 +1116,174 @@
       std::cerr << "Failed test for BOOST_HAS_WINTHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_array::test())
+ if(0 != boost_no_adl_barrier::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_ADL_BARRIER at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_chrono::test())
+ if(0 != boost_no_argument_dependent_lookup::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CHRONO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_codecvt::test())
+ if(0 != boost_no_array_type_specializations::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CODECVT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_condition_variable::test())
+ if(0 != boost_no_auto_declarations::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CONDITION_VARIABLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_AUTO_DECLARATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_forward_list::test())
+ if(0 != boost_no_auto_multideclarations::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FORWARD_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_AUTO_MULTIDECLARATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_future::test())
+ if(0 != boost_no_auto_ptr::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUTURE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_AUTO_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_initializer_list::test())
+ if(0 != boost_bcb_partial_specialization_bug::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_INITIALIZER_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_BCB_PARTIAL_SPECIALIZATION_BUG at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_mutex::test())
+ if(0 != boost_no_char16_t::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_MUTEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CHAR16_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_random::test())
+ if(0 != boost_no_char32_t::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_RANDOM at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CHAR32_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_ratio::test())
+ if(0 != boost_no_complete_value_initialization::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_RATIO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_COMPLETE_VALUE_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_regex::test())
+ if(0 != boost_no_constexpr::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_REGEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_system_error::test())
+ if(0 != boost_no_ctype_functions::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_SYSTEM_ERROR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CTYPE_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_thread::test())
+ if(0 != boost_no_cv_specializations::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_THREAD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CV_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_tuple::test())
+ if(0 != boost_no_cv_void_specializations::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CV_VOID_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_typeindex::test())
+ if(0 != boost_no_cwchar::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CWCHAR at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_type_traits::test())
+ if(0 != boost_no_cwctype::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_unordered_map::test())
+ if(0 != boost_no_cxx11_hdr_array::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_MAP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_ARRAY at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cxx11_hdr_unordered_set::test())
+ if(0 != boost_no_cxx11_hdr_chrono::test())
    {
- std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CHRONO at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_adl_barrier::test())
+ if(0 != boost_no_cxx11_hdr_codecvt::test())
    {
- std::cerr << "Failed test for BOOST_NO_ADL_BARRIER at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CODECVT at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_argument_dependent_lookup::test())
+ if(0 != boost_no_cxx11_hdr_condition_variable::test())
    {
- std::cerr << "Failed test for BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_CONDITION_VARIABLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_array_type_specializations::test())
+ if(0 != boost_no_cxx11_hdr_forward_list::test())
    {
- std::cerr << "Failed test for BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FORWARD_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_auto_declarations::test())
+ if(0 != boost_no_cxx11_hdr_future::test())
    {
- std::cerr << "Failed test for BOOST_NO_AUTO_DECLARATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUTURE at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_auto_multideclarations::test())
+ if(0 != boost_no_cxx11_hdr_initializer_list::test())
    {
- std::cerr << "Failed test for BOOST_NO_AUTO_MULTIDECLARATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_INITIALIZER_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_auto_ptr::test())
+ if(0 != boost_no_cxx11_hdr_mutex::test())
    {
- std::cerr << "Failed test for BOOST_NO_AUTO_PTR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_MUTEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_bcb_partial_specialization_bug::test())
+ if(0 != boost_no_cxx11_hdr_random::test())
    {
- std::cerr << "Failed test for BOOST_BCB_PARTIAL_SPECIALIZATION_BUG at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_RANDOM at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_char16_t::test())
+ if(0 != boost_no_cxx11_hdr_ratio::test())
    {
- std::cerr << "Failed test for BOOST_NO_CHAR16_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_RATIO at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_char32_t::test())
+ if(0 != boost_no_cxx11_hdr_regex::test())
    {
- std::cerr << "Failed test for BOOST_NO_CHAR32_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_REGEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_complete_value_initialization::test())
+ if(0 != boost_no_cxx11_hdr_system_error::test())
    {
- std::cerr << "Failed test for BOOST_NO_COMPLETE_VALUE_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_SYSTEM_ERROR at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_constexpr::test())
+ if(0 != boost_no_cxx11_hdr_thread::test())
    {
- std::cerr << "Failed test for BOOST_NO_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_THREAD at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_ctype_functions::test())
+ if(0 != boost_no_cxx11_hdr_tuple::test())
    {
- std::cerr << "Failed test for BOOST_NO_CTYPE_FUNCTIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TUPLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cv_specializations::test())
+ if(0 != boost_no_cxx11_hdr_typeindex::test())
    {
- std::cerr << "Failed test for BOOST_NO_CV_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPEINDEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cv_void_specializations::test())
+ if(0 != boost_no_cxx11_hdr_type_traits::test())
    {
- std::cerr << "Failed test for BOOST_NO_CV_VOID_SPECIALIZATIONS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_TYPE_TRAITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cwchar::test())
+ if(0 != boost_no_cxx11_hdr_unordered_map::test())
    {
- std::cerr << "Failed test for BOOST_NO_CWCHAR at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_MAP at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
- if(0 != boost_no_cwctype::test())
+ if(0 != boost_no_cxx11_hdr_unordered_set::test())
    {
- std::cerr << "Failed test for BOOST_NO_CWCTYPE at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ std::cerr << "Failed test for BOOST_NO_CXX11_HDR_UNORDERED_SET at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
    if(0 != boost_no_decltype::test())
@@ -1626,6 +1631,11 @@
       std::cerr << "Failed test for BOOST_NO_TEMPLATE_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_no_local_class_template_parameters::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_no_two_phase_name_lookup::test())
    {
       std::cerr << "Failed test for BOOST_NO_TWO_PHASE_NAME_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;

Added: trunk/libs/config/test/no_tem_local_classes_fail.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_tem_local_classes_fail.cpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Mar 21 13:05:19 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$
+//
+
+
+// Test file for macro BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+// This file should not compile, if it does then
+// BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS should not be defined.
+// See file boost_no_tem_local_classes.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_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#include "boost_no_tem_local_classes.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_local_class_template_parameters::test();
+}
+

Added: trunk/libs/config/test/no_tem_local_classes_pass.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_tem_local_classes_pass.cpp 2012-03-21 13:32:36 EDT (Wed, 21 Mar 2012)
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Mar 21 13:05:19 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$
+//
+
+
+// Test file for macro BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
+// This file should compile, if it does not then
+// BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS should be defined.
+// See file boost_no_tem_local_classes.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_LOCAL_CLASS_TEMPLATE_PARAMETERS
+#include "boost_no_tem_local_classes.ipp"
+#else
+namespace boost_no_local_class_template_parameters = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_local_class_template_parameters::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