diff --git a/doc/html/boost_config/acknowledgements.html b/doc/html/boost_config/acknowledgements.html
index a1c5517b..b02bda6a 100644
--- a/doc/html/boost_config/acknowledgements.html
+++ b/doc/html/boost_config/acknowledgements.html
@@ -3,8 +3,8 @@
BOOST_NO_LONG_LONG
diff --git a/doc/html/boost_config/guidelines_for_boost_authors.html b/doc/html/boost_config/guidelines_for_boost_authors.html
index 17a76c72..2e16141f 100644
--- a/doc/html/boost_config/guidelines_for_boost_authors.html
+++ b/doc/html/boost_config/guidelines_for_boost_authors.html
@@ -3,8 +3,8 @@
Guidelines for Boost Authors
-
-
+
+
diff --git a/doc/html/boost_config/rationale.html b/doc/html/boost_config/rationale.html
index fe45071e..cdd610f0 100644
--- a/doc/html/boost_config/rationale.html
+++ b/doc/html/boost_config/rationale.html
@@ -3,8 +3,8 @@
Rationale
-
-
+
+
diff --git a/doc/html/index.html b/doc/html/index.html
index 7dac8d1b..2d82a1c3 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -3,8 +3,8 @@
Boost.Config
-
-
+
+
@@ -28,7 +28,7 @@
Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock
-Last revised: November 20, 2008 at 16:52:46 GMT |
+Last revised: December 04, 2008 at 21:06:12 GMT |
|
diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk
index a66b9b15..29c4703b 100644
--- a/doc/macro_reference.qbk
+++ b/doc/macro_reference.qbk
@@ -548,6 +548,9 @@ explicit conversion operators (`explicit operator T()`).
[[`BOOST_NO_EXTERN_TEMPLATE`][The compiler does not support
explicit instantiation declarations for templates (`explicit template`).
]]
+[[`BOOST_NO_INITIALIZER_LISTS`][
+The C++ compiler does not support C++0x initializer lists.
+]]
[[`BOOST_NO_LONG_LONG`][The compiler does not support `long long`.
]]
[[`BOOST_NO_RAW_LITERALS`][The compiler does not support
diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp
index d16c06d0..4d2afb46 100644
--- a/include/boost/config/compiler/borland.hpp
+++ b/include/boost/config/compiler/borland.hpp
@@ -158,6 +158,8 @@
# #endif //__BORLANDC__ >= 0x610
#endif
+#define BOOST_NO_INITIALIZER_LISTS
+
#if __BORLANDC__ >= 0x590
# define BOOST_HAS_TR1_HASH
diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp
index 0443be1a..cba8b2ae 100644
--- a/include/boost/config/compiler/common_edg.hpp
+++ b/include/boost/config/compiler/common_edg.hpp
@@ -43,6 +43,11 @@
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#endif
+#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG)
+// No support for initializer lists
+# define BOOST_NO_INITIALIZER_LISTS
+#endif
+
// See also kai.hpp which checks a Kai-specific symbol for EH
# if !defined(__KCC) && !defined(__EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
diff --git a/include/boost/config/compiler/digitalmars.hpp b/include/boost/config/compiler/digitalmars.hpp
index 46848479..a87af904 100644
--- a/include/boost/config/compiler/digitalmars.hpp
+++ b/include/boost/config/compiler/digitalmars.hpp
@@ -26,6 +26,7 @@
#define BOOST_NO_SFINAE
#define BOOST_NO_USING_TEMPLATE
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define BOOST_NO_INITIALIZER_LISTS
#endif
//
diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp
index 27df829b..639d9700 100644
--- a/include/boost/config/compiler/gcc.hpp
+++ b/include/boost/config/compiler/gcc.hpp
@@ -116,6 +116,10 @@
# endif
#endif
+#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
+# define BOOST_NO_INITIALIZER_LISTS
+#endif
+
//
// Potential C++0x features
//
diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp
index 2b60b56f..cbb588fe 100644
--- a/include/boost/config/compiler/metrowerks.hpp
+++ b/include/boost/config/compiler/metrowerks.hpp
@@ -42,6 +42,7 @@
# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_IS_ABSTRACT
+# define BOOST_NO_INITIALIZER_LISTS
# endif
#if !__option(wchar_type)
diff --git a/include/boost/config/compiler/mpw.hpp b/include/boost/config/compiler/mpw.hpp
index 8ab2aacb..cfe9461e 100644
--- a/include/boost/config/compiler/mpw.hpp
+++ b/include/boost/config/compiler/mpw.hpp
@@ -32,6 +32,8 @@
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
+
+# define BOOST_NO_INITIALIZER_LISTS
#endif
//
diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp
index 41f29c75..2cb89b89 100644
--- a/include/boost/config/compiler/pgi.hpp
+++ b/include/boost/config/compiler/pgi.hpp
@@ -21,6 +21,7 @@
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SWPRINTF
+#define BOOST_NO_INITIALIZER_LISTS
#else
diff --git a/include/boost/config/compiler/sgi_mipspro.hpp b/include/boost/config/compiler/sgi_mipspro.hpp
index 33e97e9a..8e578d71 100644
--- a/include/boost/config/compiler/sgi_mipspro.hpp
+++ b/include/boost/config/compiler/sgi_mipspro.hpp
@@ -21,6 +21,8 @@
#undef BOOST_NO_SWPRINTF
#undef BOOST_DEDUCED_TYPENAME
+
+#define BOOST_NO_INITIALIZER_LISTS
//
// version check:
// probably nothing to do here?
diff --git a/include/boost/config/compiler/sunpro_cc.hpp b/include/boost/config/compiler/sunpro_cc.hpp
index f513c2dc..bee32277 100644
--- a/include/boost/config/compiler/sunpro_cc.hpp
+++ b/include/boost/config/compiler/sunpro_cc.hpp
@@ -74,6 +74,7 @@
//
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_ADL_BARRIER
+#define BOOST_NO_INITIALIZER_LISTS
#if(__SUNPRO_CC >= 0x590)
# define BOOST_HAS_LONG_LONG
diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp
index 826939f1..ece883f6 100644
--- a/include/boost/config/compiler/vacpp.hpp
+++ b/include/boost/config/compiler/vacpp.hpp
@@ -27,6 +27,7 @@
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
+# define BOOST_NO_INITIALIZER_LISTS
#endif
//
diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp
index e88aee9a..d6a474a9 100644
--- a/include/boost/config/compiler/visualc.hpp
+++ b/include/boost/config/compiler/visualc.hpp
@@ -93,6 +93,10 @@
# define BOOST_NO_ADL_BARRIER
#endif
+#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
+# define BOOST_NO_INITIALIZER_LISTS
+#endif
+
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2
index cd761fb5..59bb7e3e 100644
--- a/test/all/Jamfile.v2
+++ b/test/all/Jamfile.v2
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Sat Sep 20 09:49:52 2008
+# This file was automatically generated on Wed Sep 24 11:44:22 2008
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -232,6 +232,9 @@ test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
[ run ../no_i64_limits_pass.cpp ]
[ compile-fail ../no_i64_limits_fail.cpp ] ;
+test-suite "BOOST_NO_INITIALIZER_LISTS" :
+[ run ../no_initializer_lists_pass.cpp ]
+[ compile-fail ../no_initializer_lists_fail.cpp ] ;
test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
[ run ../no_inline_memb_init_pass.cpp ]
[ compile-fail ../no_inline_memb_init_fail.cpp ] ;
diff --git a/test/boost_no_initializer_lists.ipp b/test/boost_no_initializer_lists.ipp
new file mode 100644
index 00000000..31f03bd0
--- /dev/null
+++ b/test/boost_no_initializer_lists.ipp
@@ -0,0 +1,23 @@
+// (C) Copyright Daniel James 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+
+// MACRO: BOOST_NO_INITIALIZER_LISTS
+// TITLE: Initializer Lists
+// DESCRIPTION: If the compiler does not support C++0x initializer lists
+
+#include
+
+namespace boost_no_initializer_lists {
+
+int test()
+{
+ std::initializer_list x = { 1, 2 };
+ return 0;
+}
+
+}
diff --git a/test/config_info.cpp b/test/config_info.cpp
index 87b9aa9a..cb8cb146 100644
--- a/test/config_info.cpp
+++ b/test/config_info.cpp
@@ -969,6 +969,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
+ PRINT_MACRO(BOOST_NO_INITIALIZER_LISTS);
PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
PRINT_MACRO(BOOST_NO_IOSFWD);
@@ -1039,6 +1040,7 @@ void print_boost_macros()
+
// END GENERATED BLOCK
diff --git a/test/config_test.cpp b/test/config_test.cpp
index 876cd37c..068f7525 100644
--- a/test/config_test.cpp
+++ b/test/config_test.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Sat Sep 20 09:49:52 2008
+// This file was automatically generated on Wed Sep 24 11:44:22 2008
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -117,6 +117,11 @@ namespace boost_no_function_template_ordering = empty_boost;
#else
namespace boost_no_ms_int64_numeric_limits = empty_boost;
#endif
+#ifndef BOOST_NO_INITIALIZER_LISTS
+#include "boost_no_initializer_lists.ipp"
+#else
+namespace boost_no_initializer_lists = empty_boost;
+#endif
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
#include "boost_no_inline_memb_init.ipp"
#else
@@ -966,6 +971,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_MS_INT64_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_initializer_lists::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_INITIALIZER_LISTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_inclass_member_initialization::test())
{
std::cerr << "Failed test for BOOST_NO_INCLASS_MEMBER_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
diff --git a/test/no_initializer_lists_fail.cpp b/test/no_initializer_lists_fail.cpp
new file mode 100644
index 00000000..1cc02556
--- /dev/null
+++ b/test/no_initializer_lists_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Sep 24 11:44:21 2008
+// 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_INITIALIZER_LISTS
+// This file should not compile, if it does then
+// BOOST_NO_INITIALIZER_LISTS should not be defined.
+// See file boost_no_initializer_lists.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include
+#include "test.hpp"
+
+#ifdef BOOST_NO_INITIALIZER_LISTS
+#include "boost_no_initializer_lists.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_initializer_lists::test();
+}
+
diff --git a/test/no_initializer_lists_pass.cpp b/test/no_initializer_lists_pass.cpp
new file mode 100644
index 00000000..74e3b5ad
--- /dev/null
+++ b/test/no_initializer_lists_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Wed Sep 24 11:44:21 2008
+// 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_INITIALIZER_LISTS
+// This file should compile, if it does not then
+// BOOST_NO_INITIALIZER_LISTS should be defined.
+// See file boost_no_initializer_lists.ipp for details
+
+// Must not have BOOST_ASSERT_CONFIG set; it defeats
+// the objective of this file:
+#ifdef BOOST_ASSERT_CONFIG
+# undef BOOST_ASSERT_CONFIG
+#endif
+
+#include
+#include "test.hpp"
+
+#ifndef BOOST_NO_INITIALIZER_LISTS
+#include "boost_no_initializer_lists.ipp"
+#else
+namespace boost_no_initializer_lists = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_initializer_lists::test();
+}
+
|