$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r50118 - in trunk: boost/config/compiler boost/unordered libs/config/doc libs/config/doc/html libs/config/doc/html/boost_config libs/config/test libs/config/test/all libs/unordered/doc libs/unordered/test/unordered
From: daniel_james_at_[hidden]
Date: 2008-12-04 16:30:22
Author: danieljames
Date: 2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
New Revision: 50118
URL: http://svn.boost.org/trac/boost/changeset/50118
Log:
Add support for initializer lists to config and the unordered containers.
Added:
   trunk/libs/config/test/boost_no_initializer_lists.ipp
      - copied unchanged from r48950, /branches/initializer-list/libs/config/test/boost_no_initializer_lists.ipp
   trunk/libs/config/test/no_initializer_lists_fail.cpp
      - copied unchanged from r48950, /branches/initializer-list/libs/config/test/no_initializer_lists_fail.cpp
   trunk/libs/config/test/no_initializer_lists_pass.cpp
      - copied unchanged from r48950, /branches/initializer-list/libs/config/test/no_initializer_lists_pass.cpp
Text files modified: 
   trunk/boost/config/compiler/borland.hpp                                   |     2 ++                                      
   trunk/boost/config/compiler/common_edg.hpp                                |     5 +++++                                   
   trunk/boost/config/compiler/digitalmars.hpp                               |     1 +                                       
   trunk/boost/config/compiler/gcc.hpp                                       |     4 ++++                                    
   trunk/boost/config/compiler/metrowerks.hpp                                |     1 +                                       
   trunk/boost/config/compiler/mpw.hpp                                       |     2 ++                                      
   trunk/boost/config/compiler/pgi.hpp                                       |     1 +                                       
   trunk/boost/config/compiler/sgi_mipspro.hpp                               |     2 ++                                      
   trunk/boost/config/compiler/sunpro_cc.hpp                                 |     1 +                                       
   trunk/boost/config/compiler/vacpp.hpp                                     |     1 +                                       
   trunk/boost/config/compiler/visualc.hpp                                   |     4 ++++                                    
   trunk/boost/unordered/unordered_map.hpp                                   |    36 ++++++++++++++++++++++++++++++++++++    
   trunk/boost/unordered/unordered_set.hpp                                   |    36 ++++++++++++++++++++++++++++++++++++    
   trunk/libs/config/doc/html/boost_config/acknowledgements.html             |     4 ++--                                    
   trunk/libs/config/doc/html/boost_config/boost_macro_reference.html        |    16 ++++++++++++++--                        
   trunk/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html |     4 ++--                                    
   trunk/libs/config/doc/html/boost_config/rationale.html                    |     4 ++--                                    
   trunk/libs/config/doc/html/index.html                                     |     8 ++++----                                
   trunk/libs/config/doc/macro_reference.qbk                                 |     3 +++                                     
   trunk/libs/config/test/all/Jamfile.v2                                     |     5 ++++-                                   
   trunk/libs/config/test/config_info.cpp                                    |     2 ++                                      
   trunk/libs/config/test/config_test.cpp                                    |    12 +++++++++++-                            
   trunk/libs/unordered/doc/changes.qbk                                      |     2 ++                                      
   trunk/libs/unordered/test/unordered/assign_tests.cpp                      |    16 ++++++++++++++++                        
   trunk/libs/unordered/test/unordered/constructor_tests.cpp                 |    11 +++++++++++                             
   25 files changed, 169 insertions(+), 14 deletions(-)
Modified: trunk/boost/config/compiler/borland.hpp
==============================================================================
--- trunk/boost/config/compiler/borland.hpp	(original)
+++ trunk/boost/config/compiler/borland.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -158,6 +158,8 @@
 #  #endif //__BORLANDC__ >= 0x610
 #endif
 
+#define BOOST_NO_INITIALIZER_LISTS
+
 #if __BORLANDC__ >= 0x590
 #  define BOOST_HAS_TR1_HASH
 
Modified: trunk/boost/config/compiler/common_edg.hpp
==============================================================================
--- trunk/boost/config/compiler/common_edg.hpp	(original)
+++ trunk/boost/config/compiler/common_edg.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
Modified: trunk/boost/config/compiler/digitalmars.hpp
==============================================================================
--- trunk/boost/config/compiler/digitalmars.hpp	(original)
+++ trunk/boost/config/compiler/digitalmars.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
 
 //
Modified: trunk/boost/config/compiler/gcc.hpp
==============================================================================
--- trunk/boost/config/compiler/gcc.hpp	(original)
+++ trunk/boost/config/compiler/gcc.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
 //
Modified: trunk/boost/config/compiler/metrowerks.hpp
==============================================================================
--- trunk/boost/config/compiler/metrowerks.hpp	(original)
+++ trunk/boost/config/compiler/metrowerks.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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)
Modified: trunk/boost/config/compiler/mpw.hpp
==============================================================================
--- trunk/boost/config/compiler/mpw.hpp	(original)
+++ trunk/boost/config/compiler/mpw.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
 
 //
Modified: trunk/boost/config/compiler/pgi.hpp
==============================================================================
--- trunk/boost/config/compiler/pgi.hpp	(original)
+++ trunk/boost/config/compiler/pgi.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
 
Modified: trunk/boost/config/compiler/sgi_mipspro.hpp
==============================================================================
--- trunk/boost/config/compiler/sgi_mipspro.hpp	(original)
+++ trunk/boost/config/compiler/sgi_mipspro.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -21,6 +21,8 @@
 
 #undef BOOST_NO_SWPRINTF
 #undef BOOST_DEDUCED_TYPENAME
+
+#define BOOST_NO_INITIALIZER_LISTS
 //
 // version check:
 // probably nothing to do here?
Modified: trunk/boost/config/compiler/sunpro_cc.hpp
==============================================================================
--- trunk/boost/config/compiler/sunpro_cc.hpp	(original)
+++ trunk/boost/config/compiler/sunpro_cc.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
Modified: trunk/boost/config/compiler/vacpp.hpp
==============================================================================
--- trunk/boost/config/compiler/vacpp.hpp	(original)
+++ trunk/boost/config/compiler/vacpp.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
 
 //
Modified: trunk/boost/config/compiler/visualc.hpp
==============================================================================
--- trunk/boost/config/compiler/visualc.hpp	(original)
+++ trunk/boost/config/compiler/visualc.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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
Modified: trunk/boost/unordered/unordered_map.hpp
==============================================================================
--- trunk/boost/unordered/unordered_map.hpp	(original)
+++ trunk/boost/unordered/unordered_map.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -135,6 +135,24 @@
 #endif
 #endif
 
+#if !defined(BOOST_NO_INITIALIZER_LISTS)
+        unordered_map(std::initializer_list<value_type> list,
+                size_type n = boost::unordered_detail::default_initial_bucket_count,
+                const hasher &hf = hasher(),
+                const key_equal &eql = key_equal(),
+                const allocator_type &a = allocator_type())
+            : base(list.begin(), list.end(), n, hf, eql, a)
+        {
+        }
+
+        unordered_map& operator=(std::initializer_list<value_type> list)
+        {
+            base.data_.clear();
+            base.insert_range(list.begin(), list.end());
+            return *this;
+        }
+#endif
+
     private:
 
         BOOST_DEDUCED_TYPENAME implementation::iterator_base const&
@@ -523,6 +541,24 @@
 #endif
 #endif
 
+#if !defined(BOOST_NO_INITIALIZER_LISTS)
+        unordered_multimap(std::initializer_list<value_type> list,
+                size_type n = boost::unordered_detail::default_initial_bucket_count,
+                const hasher &hf = hasher(),
+                const key_equal &eql = key_equal(),
+                const allocator_type &a = allocator_type())
+            : base(list.begin(), list.end(), n, hf, eql, a)
+        {
+        }
+
+        unordered_multimap& operator=(std::initializer_list<value_type> list)
+        {
+            base.data_.clear();
+            base.insert_range(list.begin(), list.end());
+            return *this;
+        }
+#endif
+
 
     private:
 
Modified: trunk/boost/unordered/unordered_set.hpp
==============================================================================
--- trunk/boost/unordered/unordered_set.hpp	(original)
+++ trunk/boost/unordered/unordered_set.hpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -133,6 +133,24 @@
 #endif
 #endif
 
+#if !defined(BOOST_NO_INITIALIZER_LISTS)
+        unordered_set(std::initializer_list<value_type> list,
+                size_type n = boost::unordered_detail::default_initial_bucket_count,
+                const hasher &hf = hasher(),
+                const key_equal &eql = key_equal(),
+                const allocator_type &a = allocator_type())
+            : base(list.begin(), list.end(), n, hf, eql, a)
+        {
+        }
+
+        unordered_set& operator=(std::initializer_list<value_type> list)
+        {
+            base.data_.clear();
+            base.insert_range(list.begin(), list.end());
+            return *this;
+        }
+#endif
+
     private:
 
         BOOST_DEDUCED_TYPENAME implementation::iterator_base const&
@@ -493,6 +511,24 @@
 #endif
 #endif
 
+#if !defined(BOOST_NO_INITIALIZER_LISTS)
+        unordered_multiset(std::initializer_list<value_type> list,
+                size_type n = boost::unordered_detail::default_initial_bucket_count,
+                const hasher &hf = hasher(),
+                const key_equal &eql = key_equal(),
+                const allocator_type &a = allocator_type())
+            : base(list.begin(), list.end(), n, hf, eql, a)
+        {
+        }
+
+        unordered_multiset& operator=(std::initializer_list<value_type> list)
+        {
+            base.data_.clear();
+            base.insert_range(list.begin(), list.end());
+            return *this;
+        }
+#endif
+
     private:
 
         BOOST_DEDUCED_TYPENAME implementation::iterator_base const&
Modified: trunk/libs/config/doc/html/boost_config/acknowledgements.html
==============================================================================
--- trunk/libs/config/doc/html/boost_config/acknowledgements.html	(original)
+++ trunk/libs/config/doc/html/boost_config/acknowledgements.html	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Acknowledgements</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
-<link rel="home" href="../index.html" title="Boost.Config">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Boost.Config">
 <link rel="up" href="../index.html" title="Boost.Config">
 <link rel="prev" href="rationale.html" title="Rationale">
 </head>
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	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Boost Macro Reference</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
-<link rel="home" href="../index.html" title="Boost.Config">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Boost.Config">
 <link rel="up" href="../index.html" title="Boost.Config">
 <link rel="prev" href="../index.html" title="Boost.Config">
 <link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
@@ -2335,6 +2335,18 @@
 <tr>
 <td>
               <p>
+                <code class="computeroutput"><span class="identifier">BOOST_NO_INITIALIZER_LISTS</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                The C++ compiler does not support C++0x initializer lists.
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
                 <code class="computeroutput"><span class="identifier">BOOST_NO_LONG_LONG</span></code>
               </p>
               </td>
Modified: trunk/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
==============================================================================
--- trunk/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html	(original)
+++ trunk/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Guidelines for Boost Authors</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
-<link rel="home" href="../index.html" title="Boost.Config">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Boost.Config">
 <link rel="up" href="../index.html" title="Boost.Config">
 <link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
 <link rel="next" href="rationale.html" title="Rationale">
Modified: trunk/libs/config/doc/html/boost_config/rationale.html
==============================================================================
--- trunk/libs/config/doc/html/boost_config/rationale.html	(original)
+++ trunk/libs/config/doc/html/boost_config/rationale.html	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Rationale</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
-<link rel="home" href="../index.html" title="Boost.Config">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Boost.Config">
 <link rel="up" href="../index.html" title="Boost.Config">
 <link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
 <link rel="next" href="acknowledgements.html" title="Acknowledgements">
Modified: trunk/libs/config/doc/html/index.html
==============================================================================
--- trunk/libs/config/doc/html/index.html	(original)
+++ trunk/libs/config/doc/html/index.html	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Boost.Config</title>
 <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_8125">
-<link rel="home" href="index.html" title="Boost.Config">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="index.html" title="Boost.Config">
 <link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -28,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id527120"></a><p>
+<a name="id2843756"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -960,7 +960,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: November 20, 2008 at 16:52:46 GMT</small></p></td>
+<td align="left"><p><small>Last revised: December 04, 2008 at 21:06:12 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	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -548,6 +548,9 @@
 [[`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
Modified: trunk/libs/config/test/all/Jamfile.v2
==============================================================================
--- trunk/libs/config/test/all/Jamfile.v2	(original)
+++ trunk/libs/config/test/all/Jamfile.v2	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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_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 ] ;
Modified: trunk/libs/config/test/config_info.cpp
==============================================================================
--- trunk/libs/config/test/config_info.cpp	(original)
+++ trunk/libs/config/test/config_info.cpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -969,6 +969,7 @@
    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);
@@ -1041,6 +1042,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	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -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 @@
 #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 @@
       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;
Modified: trunk/libs/unordered/doc/changes.qbk
==============================================================================
--- trunk/libs/unordered/doc/changes.qbk	(original)
+++ trunk/libs/unordered/doc/changes.qbk	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -59,5 +59,7 @@
   the allocator's `construct` method - once for the pointers and once for the
   value. It now constructs the node with a single call to construct and
   then constructs the value using in place construction.
+* Add support for C++0x initializer lists where they're available (currently
+  only g++ 4.4 in C++0x mode).
 
 [endsect]
Modified: trunk/libs/unordered/test/unordered/assign_tests.cpp
==============================================================================
--- trunk/libs/unordered/test/unordered/assign_tests.cpp	(original)
+++ trunk/libs/unordered/test/unordered/assign_tests.cpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -103,6 +103,22 @@
     ((default_generator)(generate_collisions))
 )
 
+#if !defined(BOOST_NO_INITIALIZER_LISTS)
+
+UNORDERED_AUTO_TEST(assign_initializer_list)
+{
+    std::cerr<<"Initializer List Tests\n";
+
+    boost::unordered_set<int> x;
+    x.insert(10);
+    x.insert(20);
+    x = { 1, 2, -10 };
+    BOOST_CHECK(x.find(10) == x.end());
+    BOOST_CHECK(x.find(-10) != x.end());
+}
+
+#endif
+
 }
 
 RUN_TESTS()
Modified: trunk/libs/unordered/test/unordered/constructor_tests.cpp
==============================================================================
--- trunk/libs/unordered/test/unordered/constructor_tests.cpp	(original)
+++ trunk/libs/unordered/test/unordered/constructor_tests.cpp	2008-12-04 16:30:19 EST (Thu, 04 Dec 2008)
@@ -288,6 +288,17 @@
     ((test_map)(test_multimap))
 )
 
+#if !defined(BOOST_NO_INITIALIZER_LISTS)
+
+UNORDERED_AUTO_TEST(test_initializer_list) {
+    std::cerr<<"Initializer List Tests\n";
+    boost::unordered_set<int> x1 = { 2, 10, 45, -5 };
+    BOOST_CHECK(x1.find(10) != x1.end());
+    BOOST_CHECK(x1.find(46) == x1.end());
+}
+
+#endif
+
 }
 
 RUN_TESTS()