+
+
+ BOOST_NO_VARIADIC_TEMPLATES
|
diff --git a/doc/html/boost_config/guidelines_for_boost_authors.html b/doc/html/boost_config/guidelines_for_boost_authors.html
index 2e16141f..17a76c72 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 cdd610f0..fe45071e 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 58b2310d..8b25ea4b 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: January 03, 2009 at 22:54:59 GMT |
+Last revised: December 21, 2008 at 17:07:02 GMT |
|
diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk
index fc98548e..17dcf597 100644
--- a/doc/macro_reference.qbk
+++ b/doc/macro_reference.qbk
@@ -537,7 +537,8 @@ type `char32_t`.
`decltype`.
]]
[[`BOOST_NO_DEFAULTED_FUNCTIONS`][The compiler does not support
-defaulted (`= default`) functions.
+defaulted (`= default`) functions.
+]]
[[`BOOST_NO_DELETED_FUNCTIONS`][The compiler does not support
deleted (`= delete`) functions.
]]
@@ -564,8 +565,11 @@ scoped enumerations (`enum class`).
[[`BOOST_NO_STATIC_ASSERT`][The compiler does not support
`static_assert`.
]]
+[[`BOOST_NO_STD_UNORDERD`][The standard library does not support
+ and .
+]]
[[`BOOST_NO_UNICODE_LITERALS`][The compiler does not support
-Unicode (`u8`, `u`, `U') literals.
+Unicode (`u8`, `u`, `U`) literals.
]]
[[`BOOST_NO_VARIADIC_TEMPLATES`][The compiler does not support
variadic templates.
diff --git a/include/boost/config/auto_link.hpp b/include/boost/config/auto_link.hpp
index df58d4f9..f2eb583f 100644
--- a/include/boost/config/auto_link.hpp
+++ b/include/boost/config/auto_link.hpp
@@ -135,11 +135,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
-#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500)
+#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
+#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
+
+ // vc10:
+# define BOOST_LIB_TOOLSET "vc100"
+
#elif defined(__BORLANDC__)
// CBuilder 6:
diff --git a/include/boost/config/compiler/codegear.hpp b/include/boost/config/compiler/codegear.hpp
index d27817a9..ae57d76a 100644
--- a/include/boost/config/compiler/codegear.hpp
+++ b/include/boost/config/compiler/codegear.hpp
@@ -79,6 +79,7 @@
# define BOOST_HAS_MACRO_USE_FACET
+# define BOOST_NO_INITIALIZER_LISTS
// On non-Win32 platforms let the platform config figure this out:
# ifdef _WIN32
diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp
index e57f75cf..d6a474a9 100644
--- a/include/boost/config/compiler/visualc.hpp
+++ b/include/boost/config/compiler/visualc.hpp
@@ -22,6 +22,11 @@
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_VOID_RETURNS
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
+
+# if BOOST_MSVC == 1202
+# define BOOST_NO_STD_TYPEINFO
+# endif
+
// disable min/max macro defines on vc6:
//
#endif
@@ -79,7 +84,7 @@
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif
-#if _MSC_VER <= 1500 // 1500 == VC++ 9.0
+#if _MSC_VER <= 1600 // 1600 == VC++ 10.0
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
@@ -179,6 +184,8 @@
# define BOOST_COMPILER_VERSION 8.0
# elif _MSC_VER == 1500
# define BOOST_COMPILER_VERSION 9.0
+# elif _MSC_VER == 1600
+# define BOOST_COMPILER_VERSION 10.0
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
@@ -194,7 +201,7 @@
#endif
//
// last known and checked version is 1500 (VC9):
-#if (_MSC_VER > 1500)
+#if (_MSC_VER > 1600)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
diff --git a/include/boost/config/platform/bsd.hpp b/include/boost/config/platform/bsd.hpp
index 810d3707..f02b0e26 100644
--- a/include/boost/config/platform/bsd.hpp
+++ b/include/boost/config/platform/bsd.hpp
@@ -36,7 +36,8 @@
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in
// and not in
//
-#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3)) || defined(__OpenBSD__)
+#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
+ || defined(__OpenBSD__) || defined(__DragonFly__)
# define BOOST_HAS_PTHREADS
#endif
@@ -55,13 +56,13 @@
#endif
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
- || (__NetBSD_GCC__ >= 2095003))
+ || (__NetBSD_GCC__ >= 2095003) || defined(__DragonFly__))
# define BOOST_NO_CWCHAR
#endif
//
// The BSD has macros only, no functions:
//
-#if !defined(__OpenBSD__)
+#if !defined(__OpenBSD__) || defined(__DragonFly__)
# define BOOST_NO_CTYPE_FUNCTIONS
#endif
diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp
index 01f1238d..ff1aed94 100644
--- a/include/boost/config/stdlib/dinkumware.hpp
+++ b/include/boost/config/stdlib/dinkumware.hpp
@@ -78,6 +78,11 @@
# define BOOST_NO_STD_ITERATOR_TRAITS
#endif
+//
+// No std::unordered_* containers yet:
+//
+#define BOOST_NO_STD_UNORDERED
+
#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
// Intel C++ chokes over any non-trivial use of
// this may be an overly restrictive define, but regex fails without it:
diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp
index 749781fe..3114094e 100644
--- a/include/boost/config/stdlib/libcomo.hpp
+++ b/include/boost/config/stdlib/libcomo.hpp
@@ -32,6 +32,10 @@
# define BOOST_HAS_HASH
# define BOOST_HAS_SLIST
#endif
+//
+// We never have the new C++0x unordered containers:
+//
+#define BOOST_NO_STD_UNORDERED
//
// Intrinsic type_traits support.
diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp
index a619e3eb..8e1c811b 100644
--- a/include/boost/config/stdlib/libstdcpp3.hpp
+++ b/include/boost/config/stdlib/libstdcpp3.hpp
@@ -76,3 +76,8 @@
# define BOOST_HASH_MAP_HEADER
# endif
#endif
+
+#ifndef __GXX_EXPERIMENTAL_CXX0X__
+# define BOOST_NO_STD_UNORDERED
+#endif
+
diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp
index 3d0f76be..e488d13a 100644
--- a/include/boost/config/stdlib/modena.hpp
+++ b/include/boost/config/stdlib/modena.hpp
@@ -21,6 +21,10 @@
#ifndef MSIPL_WCHART
#define BOOST_NO_STD_WSTRING
#endif
+//
+// We never have the new C++0x unordered containers:
+//
+#define BOOST_NO_STD_UNORDERED
#define BOOST_STDLIB "Modena C++ standard library"
diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp
index f8d8752b..746878de 100644
--- a/include/boost/config/stdlib/msl.hpp
+++ b/include/boost/config/stdlib/msl.hpp
@@ -45,6 +45,10 @@
# define BOOST_NO_STD_USE_FACET
# define BOOST_HAS_TWO_ARG_USE_FACET
#endif
+//
+// We never have the new C++0x unordered containers:
+//
+#define BOOST_NO_STD_UNORDERED
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp
index ebf4c1f8..3e588824 100644
--- a/include/boost/config/stdlib/roguewave.hpp
+++ b/include/boost/config/stdlib/roguewave.hpp
@@ -151,3 +151,9 @@
# define _HP_INSTANTIATE_STD2_VL
# endif
#endif
+
+//
+// We never have the new C++0x unordered containers:
+//
+#define BOOST_NO_STD_UNORDERED
+
diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp
index f3fa05b2..b493d49c 100644
--- a/include/boost/config/stdlib/sgi.hpp
+++ b/include/boost/config/stdlib/sgi.hpp
@@ -76,6 +76,7 @@
//
#define BOOST_HAS_HASH
#define BOOST_HAS_SLIST
+#define BOOST_NO_STD_UNORDERED
//
// If this is GNU libstdc++2, then no and no std::wstring:
diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp
index b1dabf23..8d0677ea 100644
--- a/include/boost/config/stdlib/stlport.hpp
+++ b/include/boost/config/stdlib/stlport.hpp
@@ -61,6 +61,9 @@
# endif
#endif
+#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION < 0x500)
+# define BOOST_NO_STD_UNORDERED
+#endif
//
// Without member template support enabled, their are no template
// iterate constructors, and no std::allocator:
diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp
index 8321ee0c..c6c45660 100644
--- a/include/boost/config/stdlib/vacpp.hpp
+++ b/include/boost/config/stdlib/vacpp.hpp
@@ -11,6 +11,7 @@
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_STD_MESSAGES
+#define BOOST_NO_STD_UNORDERED
#define BOOST_STDLIB "Visual Age default standard library"
diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp
index f71c644f..142e8e00 100644
--- a/include/boost/config/suffix.hpp
+++ b/include/boost/config/suffix.hpp
@@ -223,7 +223,8 @@
// from here then add to the appropriate compiler section):
//
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
- || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
+ || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
+ && !defined(BOOST_HAS_THREADS)
# define BOOST_HAS_THREADS
#endif
diff --git a/module.cmake b/module.cmake
new file mode 100644
index 00000000..e69de29b
diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2
index 59bb7e3e..fd81f976 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 Wed Sep 24 11:44:22 2008
+# This file was automatically generated on Tue Dec 16 16:41:41 2008
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -337,6 +337,9 @@ test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
test-suite "BOOST_NO_STD_TYPEINFO" :
[ run ../no_std_typeinfo_pass.cpp ]
[ compile-fail ../no_std_typeinfo_fail.cpp ] ;
+test-suite "BOOST_NO_STD_UNORDERED" :
+[ run ../no_std_unordered_pass.cpp ]
+[ compile-fail ../no_std_unordered_fail.cpp ] ;
test-suite "BOOST_NO_STD_USE_FACET" :
[ run ../no_std_use_facet_pass.cpp ]
[ compile-fail ../no_std_use_facet_fail.cpp ] ;
diff --git a/test/boost_has_hash.ipp b/test/boost_has_hash.ipp
index c9cfeff8..fb89764d 100644
--- a/test/boost_has_hash.ipp
+++ b/test/boost_has_hash.ipp
@@ -11,9 +11,17 @@
// or hash_map classes.
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
-# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
-#include
-#include
+# ifdef BOOST_NO_STD_UNORDERED
+# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
+# include
+# include
+# else
+ // If we have BOOST_NO_STD_UNORDERED *not* defined, then we must
+ // not include the headers as they clash with the C++0x
+ // headers. ie in any given translation unit we can include one
+ // or the other, but not both.
+# define DISABLE_BOOST_HAS_HASH_TEST
+# endif
#else
#include
#include
@@ -25,6 +33,8 @@
namespace boost_has_hash{
+#ifndef DISABLE_BOOST_HAS_HASH_TEST
+
template
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set& )
{
@@ -35,12 +45,16 @@ void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map& )
{
}
+#endif
+
int test()
{
+#ifndef DISABLE_BOOST_HAS_HASH_TEST
BOOST_STD_EXTENSION_NAMESPACE::hash_set hs;
foo(hs);
BOOST_STD_EXTENSION_NAMESPACE::hash_map hm;
foo(hm);
+#endif
return 0;
}
diff --git a/test/boost_no_std_unordered.ipp b/test/boost_no_std_unordered.ipp
new file mode 100644
index 00000000..c7ad0869
--- /dev/null
+++ b/test/boost_no_std_unordered.ipp
@@ -0,0 +1,27 @@
+// (C) Copyright John Maddock and Dave Abrahams 2002.
+// 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_STD_UNORDERED
+// TITLE: and
+// DESCRIPTION: Check for C++0x unordered container support
+
+#include
+#include
+
+namespace boost_no_std_unordered{
+
+int test()
+{
+ std::unordered_map im;
+ std::unordered_set is;
+ std::unordered_multimap imm;
+ std::unordered_multiset ims;
+ return im.size() + is.size() + imm.size() + ims.size(); // all zero
+}
+
+}
+
diff --git a/test/config_info.cpp b/test/config_info.cpp
index cb8cb146..eb12b9c1 100644
--- a/test/config_info.cpp
+++ b/test/config_info.cpp
@@ -1001,6 +1001,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
PRINT_MACRO(BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN);
PRINT_MACRO(BOOST_NO_STD_TYPEINFO);
+ PRINT_MACRO(BOOST_NO_STD_UNORDERED);
PRINT_MACRO(BOOST_NO_STD_USE_FACET);
PRINT_MACRO(BOOST_NO_STD_WSTREAMBUF);
PRINT_MACRO(BOOST_NO_STD_WSTRING);
@@ -1041,6 +1042,7 @@ void print_boost_macros()
+
// END GENERATED BLOCK
diff --git a/test/config_test.cpp b/test/config_test.cpp
index 068f7525..c542a82f 100644
--- a/test/config_test.cpp
+++ b/test/config_test.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Wed Sep 24 11:44:22 2008
+// This file was automatically generated on Tue Dec 16 16:41:41 2008
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -292,6 +292,11 @@ namespace boost_no_std_output_iterator_assign = empty_boost;
#else
namespace boost_no_std_typeinfo = empty_boost;
#endif
+#ifndef BOOST_NO_STD_UNORDERED
+#include "boost_no_std_unordered.ipp"
+#else
+namespace boost_no_std_unordered = empty_boost;
+#endif
#ifndef BOOST_NO_STD_USE_FACET
#include "boost_no_std_use_facet.ipp"
#else
@@ -1146,6 +1151,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_STD_TYPEINFO at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_std_unordered::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_UNORDERED at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_std_use_facet::test())
{
std::cerr << "Failed test for BOOST_NO_STD_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
diff --git a/test/no_std_unordered_fail.cpp b/test/no_std_unordered_fail.cpp
new file mode 100644
index 00000000..afc31bea
--- /dev/null
+++ b/test/no_std_unordered_fail.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Dec 16 16:41:40 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: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_STD_UNORDERED
+// This file should not compile, if it does then
+// BOOST_NO_STD_UNORDERED should not be defined.
+// See file boost_no_std_unordered.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_STD_UNORDERED
+#include "boost_no_std_unordered.ipp"
+#else
+#error "this file should not compile"
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_unordered::test();
+}
+
diff --git a/test/no_std_unordered_pass.cpp b/test/no_std_unordered_pass.cpp
new file mode 100644
index 00000000..5ef2bf02
--- /dev/null
+++ b/test/no_std_unordered_pass.cpp
@@ -0,0 +1,37 @@
+// This file was automatically generated on Tue Dec 16 16:41:40 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: generate.cpp 49281 2008-10-11 15:40:44Z johnmaddock $
+//
+
+
+// Test file for macro BOOST_NO_STD_UNORDERED
+// This file should compile, if it does not then
+// BOOST_NO_STD_UNORDERED should be defined.
+// See file boost_no_std_unordered.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_STD_UNORDERED
+#include "boost_no_std_unordered.ipp"
+#else
+namespace boost_no_std_unordered = empty_boost;
+#endif
+
+int main( int, char *[] )
+{
+ return boost_no_std_unordered::test();
+}
+
|