The following macros all describe features that are required by the C++ standard,
if one of the following macros is defined, then it represents a defect in
the compiler's conformance with the standard.
@@ -282,6 +280,26 @@
BOOST_DEDUCED_TYPENAME
@@ -3294,14 +3252,12 @@
-
-
-
+
The following macros describe boost features; these are, generally speaking
the only boost macros that should be tested in user code.
diff --git a/doc/html/boost_config/guidelines_for_boost_authors.html b/doc/html/boost_config/guidelines_for_boost_authors.html
index 820adb10..d429863e 100644
--- a/doc/html/boost_config/guidelines_for_boost_authors.html
+++ b/doc/html/boost_config/guidelines_for_boost_authors.html
@@ -28,8 +28,8 @@
Boost Authors
The header <boost/config/warning_disable.hpp>
diff --git a/doc/html/index.html b/doc/html/index.html
index caec8875..d45b02b8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -28,7 +28,7 @@
Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock
-
-
-
+
![[Important]](../../../../doc/src/images/important.png) |
Important |
@@ -310,14 +308,12 @@
-
-
-
+
There are some configuration-options that represent user choices, rather
than compiler defects or platform specific options. These are listed in
<boost/config/user.hpp>
@@ -950,7 +946,7 @@
-Last revised: November 23, 2010 at 03:21:20 GMT |
+Last revised: April 06, 2011 at 10:49:30 GMT |
|
diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk
index 7f84ef44..40c0ff61 100644
--- a/doc/macro_reference.qbk
+++ b/doc/macro_reference.qbk
@@ -539,14 +539,10 @@ that are not yet supported by a particular compiler or library.
[[`BOOST_NO_0X_HDR_ARRAY`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_CHRONO`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_CODECVT`][The standard library does not provide header .]]
-[[`BOOST_NO_0X_HDR_CONCEPTS`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_CONDITION_VARIABLE`][The standard library does not provide header .]]
-[[`BOOST_NO_0X_HDR_CONTAINER_CONCEPTS`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_FORWARD_LIST`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_FUTURE`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_INITIALIZER_LIST`][The standard library does not provide header .]]
-[[`BOOST_NO_0X_HDR_ITERATOR_CONCEPTS`][The standard library does not provide header .]]
-[[`BOOST_NO_0X_HDR_MEMORY_CONCEPTS`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_MUTEX`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_RANDOM`][The standard library does not provide header .]]
[[`BOOST_NO_0X_HDR_RATIO`][The standard library does not provide header .]]
@@ -571,8 +567,6 @@ type `char16_t`.
[[`BOOST_NO_CHAR32_T`][The compiler does not support
type `char32_t`.
]]
-[[`BOOST_NO_CONCEPTS`][The compiler does not support Concepts.
-]]
[[`BOOST_NO_TEMPLATE_ALIASES`][The compiler does not support template aliases.
]]
[[`BOOST_NO_CONSTEXPR`][The compiler does not support
@@ -674,6 +668,17 @@ of `__BORLANDC__` /unless/ the macro `BOOST_DETECT_OUTDATED_WORKAROUNDS` is defi
[*Note]: the ultimate source of documentation for this macro is in [@../../../../boost/detail/workaround.hpp boost/detail/workaround.hpp].
]]
+[[`BOOST_PREVENT_MACRO_SUBSTITUTION`][
+Sometimes you have a function name with the same name as a C macro, for example "min" and "max"
+member functions, in which case one can prevent the function being expanded as a macro using:
+``
+someclass.min BOOST_PREVENT_MACRO_SUBSTITUTION(arg1, arg2);
+``
+The following also works in most, but not all, contexts:
+``
+(someclass.max)(arg1, arg2);
+``
+]]
[[`BOOST_DEDUCED_TYPENAME`][
Some compilers don't support the use of typename for dependent types in deduced
contexts. This macro expands to nothing on those compilers, and typename
diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp
index a989fd63..1ff0e87f 100644
--- a/include/boost/config/compiler/borland.hpp
+++ b/include/boost/config/compiler/borland.hpp
@@ -56,8 +56,13 @@
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_DEDUCED_TYPENAME
// workaround for missing WCHAR_MAX/WCHAR_MIN:
+#ifdef __cplusplus
#include
#include
+#else
+#include
+#include
+#endif // __cplusplus
#ifndef WCHAR_MAX
# define WCHAR_MAX 0xffff
#endif
@@ -69,7 +74,7 @@
// Borland C++ Builder 6 and below:
#if (__BORLANDC__ <= 0x564)
-# ifdef NDEBUG
+# if defined(NDEBUG) && defined(__cplusplus)
// fix broken so that Boost.test works:
# include
# undef strcmp
@@ -166,7 +171,6 @@
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
diff --git a/include/boost/config/compiler/clang.hpp b/include/boost/config/compiler/clang.hpp
index 08930337..4bb0d1f1 100644
--- a/include/boost/config/compiler/clang.hpp
+++ b/include/boost/config/compiler/clang.hpp
@@ -29,7 +29,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#if !__has_feature(cxx_decltype)
diff --git a/include/boost/config/compiler/codegear.hpp b/include/boost/config/compiler/codegear.hpp
index f6dc4c02..628afc23 100644
--- a/include/boost/config/compiler/codegear.hpp
+++ b/include/boost/config/compiler/codegear.hpp
@@ -60,7 +60,7 @@
// (Niels Dekker, LKEB, April 2010)
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-# ifdef NDEBUG
+# if defined(NDEBUG) && defined(__cplusplus)
// fix broken so that Boost.test works:
# include
# undef strcmp
@@ -93,7 +93,6 @@
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
diff --git a/include/boost/config/compiler/common_edg.hpp b/include/boost/config/compiler/common_edg.hpp
index 9042578b..e55fb714 100644
--- a/include/boost/config/compiler/common_edg.hpp
+++ b/include/boost/config/compiler/common_edg.hpp
@@ -74,7 +74,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/digitalmars.hpp b/include/boost/config/compiler/digitalmars.hpp
index 31c11bf0..ca560e9d 100644
--- a/include/boost/config/compiler/digitalmars.hpp
+++ b/include/boost/config/compiler/digitalmars.hpp
@@ -44,7 +44,9 @@
//
// Is this really the best way to detect whether the std lib is in namespace std?
//
+#ifdef __cplusplus
#include
+#endif
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
# define BOOST_NO_STDC_NAMESPACE
#endif
@@ -62,7 +64,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/gcc.hpp b/include/boost/config/compiler/gcc.hpp
index f633647d..62ef0af7 100644
--- a/include/boost/config/compiler/gcc.hpp
+++ b/include/boost/config/compiler/gcc.hpp
@@ -168,7 +168,7 @@
// Variadic templates compiler:
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
-# ifdef __VARIADIC_TEMPLATES
+# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
# define BOOST_HAS_VARIADIC_TMPL
# else
# define BOOST_NO_VARIADIC_TEMPLATES
@@ -182,25 +182,16 @@
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
+# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DELETED_FUNCTIONS
-# define BOOST_NO_INITIALIZER_LISTS
-# define BOOST_NO_SCOPED_ENUMS
#endif
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
# define BOOST_NO_SFINAE_EXPR
#endif
-// C++0x features in 4.4.1 and later
-//
-#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40401) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.4.1
-// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
-# define BOOST_NO_SCOPED_ENUMS
-#endif
-
-// C++0x features in 4.5.n and later
+// C++0x features in 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
@@ -209,27 +200,32 @@
# define BOOST_NO_UNICODE_LITERALS
#endif
-// C++0x features in 4.5.n and later
+// C++0x features in 4.5.1 and later
+//
+#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
+// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.5.1
+// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
+# define BOOST_NO_SCOPED_ENUMS
+#endif
+
+// C++0x features in 4.6.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_NULLPTR
#endif
+#ifndef BOOST_COMPILER
+# define BOOST_COMPILER "GNU C++ version " __VERSION__
+#endif
+
// ConceptGCC compiler:
// http://www.generic-programming.org/software/ConceptGCC/
#ifdef __GXX_CONCEPTS__
# define BOOST_HAS_CONCEPTS
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
-#else
-# define BOOST_NO_CONCEPTS
#endif
-#ifndef BOOST_COMPILER
-# define BOOST_COMPILER "GNU C++ version " __VERSION__
-#endif
-
-//
// versions check:
// we don't know gcc prior to version 2.90:
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
diff --git a/include/boost/config/compiler/hp_acc.hpp b/include/boost/config/compiler/hp_acc.hpp
index d0b672ec..1515ae7c 100644
--- a/include/boost/config/compiler/hp_acc.hpp
+++ b/include/boost/config/compiler/hp_acc.hpp
@@ -96,7 +96,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/intel.hpp b/include/boost/config/compiler/intel.hpp
index f209ae77..faa080fc 100644
--- a/include/boost/config/compiler/intel.hpp
+++ b/include/boost/config/compiler/intel.hpp
@@ -121,6 +121,7 @@
// in type_traits code among other things, getting this correct
// for the Intel compiler is actually remarkably fragile and tricky:
//
+#ifdef __cplusplus
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
#include
template< typename T > struct assert_no_intrinsic_wchar_t;
@@ -134,8 +135,9 @@ template<> struct assert_intrinsic_wchar_t {};
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
template<> struct assert_intrinsic_wchar_t {};
#endif
+#endif
-#if _MSC_VER+0 >= 1000
+#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
# if _MSC_VER >= 1200
# define BOOST_HAS_MS_INT64
# endif
@@ -209,7 +211,7 @@ template<> struct assert_intrinsic_wchar_t {};
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
# undef BOOST_NO_RVALUE_REFERENCES
-# undef BOOST_NO_SCOPED_ENUMS
+//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!!
# undef BOOST_NO_DELETED_FUNCTIONS
# undef BOOST_NO_DEFAULTED_FUNCTIONS
# undef BOOST_NO_LAMBDAS
@@ -218,9 +220,16 @@ template<> struct assert_intrinsic_wchar_t {};
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
#endif
+#if (BOOST_INTEL_CXX_VERSION < 1200)
+//
+// fenv.h appears not to work with Intel prior to 12.0:
+//
+# define BOOST_NO_FENV_H
+#endif
+
//
// last known and checked version:
-#if (BOOST_INTEL_CXX_VERSION > 1110)
+#if (BOOST_INTEL_CXX_VERSION > 1200)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# elif defined(_MSC_VER)
diff --git a/include/boost/config/compiler/metrowerks.hpp b/include/boost/config/compiler/metrowerks.hpp
index 21083b7a..4b9619fb 100644
--- a/include/boost/config/compiler/metrowerks.hpp
+++ b/include/boost/config/compiler/metrowerks.hpp
@@ -96,7 +96,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/mpw.hpp b/include/boost/config/compiler/mpw.hpp
index ae12f801..a8c3aae5 100644
--- a/include/boost/config/compiler/mpw.hpp
+++ b/include/boost/config/compiler/mpw.hpp
@@ -44,7 +44,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/pathscale.hpp b/include/boost/config/compiler/pathscale.hpp
index 13ede88d..8d986f3f 100644
--- a/include/boost/config/compiler/pathscale.hpp
+++ b/include/boost/config/compiler/pathscale.hpp
@@ -52,7 +52,6 @@
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DECLTYPE
# define BOOST_NO_CONSTEXPR
-# define BOOST_NO_CONCEPTS
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# define BOOST_NO_CHAR32_T
# define BOOST_NO_CHAR16_T
@@ -68,14 +67,10 @@
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_MUTEX
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_FORWARD_LIST
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CHRONO
#endif
diff --git a/include/boost/config/compiler/pgi.hpp b/include/boost/config/compiler/pgi.hpp
index fb3a6c0b..0078e986 100644
--- a/include/boost/config/compiler/pgi.hpp
+++ b/include/boost/config/compiler/pgi.hpp
@@ -51,7 +51,6 @@
//
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/sunpro_cc.hpp b/include/boost/config/compiler/sunpro_cc.hpp
index 85fa4625..86f3f246 100644
--- a/include/boost/config/compiler/sunpro_cc.hpp
+++ b/include/boost/config/compiler/sunpro_cc.hpp
@@ -103,7 +103,6 @@
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
diff --git a/include/boost/config/compiler/vacpp.hpp b/include/boost/config/compiler/vacpp.hpp
index 7ad616e4..419c420d 100644
--- a/include/boost/config/compiler/vacpp.hpp
+++ b/include/boost/config/compiler/vacpp.hpp
@@ -78,7 +78,6 @@
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
#endif
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#if ! __IBMCPP_DECLTYPE
# define BOOST_NO_DECLTYPE
diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp
index 38789367..8707c717 100644
--- a/include/boost/config/compiler/visualc.hpp
+++ b/include/boost/config/compiler/visualc.hpp
@@ -179,6 +179,7 @@
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_NULLPTR
+#define BOOST_NO_DECLTYPE
#endif // _MSC_VER < 1600
#if _MSC_VER >= 1600
@@ -188,10 +189,8 @@
// C++0x features not supported by any versions
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
-#define BOOST_NO_DECLTYPE
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
diff --git a/include/boost/config/platform/linux.hpp b/include/boost/config/platform/linux.hpp
index 51ae1334..a02aff78 100644
--- a/include/boost/config/platform/linux.hpp
+++ b/include/boost/config/platform/linux.hpp
@@ -11,7 +11,11 @@
#define BOOST_PLATFORM "linux"
// make sure we have __GLIBC_PREREQ if available at all
+#ifdef __cplusplus
#include
+#else
+#include
+#endif
//
// added to glibc 2.1.1
@@ -68,6 +72,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include
+#define BOOST_HAS_PTHREAD_YIELD
#ifndef __GNUC__
//
diff --git a/include/boost/config/platform/macos.hpp b/include/boost/config/platform/macos.hpp
index 2780ef99..6d876b12 100644
--- a/include/boost/config/platform/macos.hpp
+++ b/include/boost/config/platform/macos.hpp
@@ -64,16 +64,17 @@
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
# if !defined(BOOST_HAS_PTHREADS)
-# define BOOST_HAS_MPTASKS
+// MPTasks support is deprecated/removed from Boost:
+//# define BOOST_HAS_MPTASKS
# elif ( __dest_os == __mac_os_x )
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
// gettimeofday and no posix.
# define BOOST_HAS_GETTIMEOFDAY
# endif
-// The MP task implementation of Boost Threads aims to replace MP-unsafe
-// parts of the MSL, so we turn on threads unconditionally.
-# define BOOST_HAS_THREADS
+#ifdef BOOST_HAS_PTHREADS
+# define BOOST_HAS_THREADS
+#endif
// The remote call manager depends on this.
# define BOOST_BIND_ENABLE_PASCAL
diff --git a/include/boost/config/platform/symbian.hpp b/include/boost/config/platform/symbian.hpp
index ad379431..e02a7782 100644
--- a/include/boost/config/platform/symbian.hpp
+++ b/include/boost/config/platform/symbian.hpp
@@ -18,8 +18,11 @@
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
// make sure we have __GLIBC_PREREQ if available at all
-# include
-// boilerplate code:
+#ifdef __cplusplus
+#include
+#else
+#include
+#endif// boilerplate code:
# define BOOST_HAS_UNISTD_H
# include
// S60 SDK defines _POSIX_VERSION as POSIX.1
diff --git a/include/boost/config/select_compiler_config.hpp b/include/boost/config/select_compiler_config.hpp
index e19469ae..34a4da58 100644
--- a/include/boost/config/select_compiler_config.hpp
+++ b/include/boost/config/select_compiler_config.hpp
@@ -10,33 +10,6 @@
// See http://www.boost.org/ for most recent version.
-
-// one identification macro for each of the
-// compilers we support:
-
-# define BOOST_CXX_GCCXML 0
-# define BOOST_CXX_NVCC 0
-# define BOOST_CXX_COMO 0
-# define BOOST_CXX_PATHSCALE 0
-# define BOOST_CXX_CLANG 0
-# define BOOST_CXX_DMC 0
-# define BOOST_CXX_INTEL 0
-# define BOOST_CXX_GNUC 0
-# define BOOST_CXX_KCC 0
-# define BOOST_CXX_SGI 0
-# define BOOST_CXX_TRU64 0
-# define BOOST_CXX_GHS 0
-# define BOOST_CXX_BORLAND 0
-# define BOOST_CXX_CW 0
-# define BOOST_CXX_SUNPRO 0
-# define BOOST_CXX_HPACC 0
-# define BOOST_CXX_MPW 0
-# define BOOST_CXX_IBMCPP 0
-# define BOOST_CXX_MSVC 0
-# define BOOST_CXX_PGI 0
-# define BOOST_CXX_NVCC 0
-
-
// locate which compiler we are using and define
// BOOST_COMPILER_CONFIG as needed:
diff --git a/include/boost/config/select_stdlib_config.hpp b/include/boost/config/select_stdlib_config.hpp
index f0204823..96ede002 100644
--- a/include/boost/config/select_stdlib_config.hpp
+++ b/include/boost/config/select_stdlib_config.hpp
@@ -14,7 +14,11 @@
// First include to determine if some version of STLport is in use as the std lib
// (do not rely on this header being included since users can short-circuit this header
// if they know whose std lib they are using.)
-#include
+#ifdef __cplusplus
+# include
+#else
+# include
+#endif
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
// STLPort library; this _must_ come first, otherwise since
diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp
index a7579daa..33b56088 100644
--- a/include/boost/config/stdlib/dinkumware.hpp
+++ b/include/boost/config/stdlib/dinkumware.hpp
@@ -101,7 +101,6 @@
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
-# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
@@ -113,16 +112,13 @@
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
# define BOOST_NO_0X_HDR_TUPLE
#endif
-
-// C++0x headers not yet implemented
//
+// C++0x headers not yet (fully) implemented:
+//
+# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_CHRONO
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FUTURE
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_THREAD
diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp
index 16a842ae..341cf970 100644
--- a/include/boost/config/stdlib/libcomo.hpp
+++ b/include/boost/config/stdlib/libcomo.hpp
@@ -38,14 +38,10 @@
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp
index db7f6f15..07c70433 100644
--- a/include/boost/config/stdlib/libcpp.hpp
+++ b/include/boost/config/stdlib/libcpp.hpp
@@ -19,15 +19,17 @@
#define BOOST_HAS_THREADS
-#define BOOST_NO_0X_HDR_CONCEPTS
-#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
-#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
-
#ifdef _LIBCPP_HAS_NO_VARIADICS
# define BOOST_NO_0X_HDR_TUPLE
#endif
+//
+// These appear to be unusable/incomplete so far:
+//
+# define BOOST_NO_0X_HDR_CHRONO
+# define BOOST_NO_0X_HDR_FUTURE
+# define BOOST_NO_0X_HDR_TYPE_TRAITS
+
// libc++ uses a non-standard messages_base
#define BOOST_NO_STD_MESSAGES
diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp
index c048b896..52d58373 100644
--- a/include/boost/config/stdlib/libstdcpp3.hpp
+++ b/include/boost/config/stdlib/libstdcpp3.hpp
@@ -104,10 +104,8 @@
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_ARRAY
-# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_TUPLE
-# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
@@ -123,23 +121,33 @@
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
-# define BOOST_NO_0X_HDR_THREAD
+#else
+# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
+# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
+#endif
+
+#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_0X_HDR_MUTEX))
+# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
+# define BOOST_NO_0X_HDR_MUTEX
#endif
// C++0x features in GCC 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
+# define BOOST_NO_0X_HDR_FUTURE
+# define BOOST_NO_0X_HDR_RANDOM
#endif
-// C++0x headers not yet implemented
+// C++0x features in GCC 4.5.0 and later
//
-# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
-# define BOOST_NO_0X_HDR_FUTURE
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_TYPEINDEX
+#endif
+// C++0x headers not yet (fully!) implemented
+//
+# define BOOST_NO_0X_HDR_THREAD
+# define BOOST_NO_0X_HDR_TYPE_TRAITS
+# define BOOST_NO_0X_HDR_CODECVT
// --- end ---
diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp
index 147060d9..626e712b 100644
--- a/include/boost/config/stdlib/modena.hpp
+++ b/include/boost/config/stdlib/modena.hpp
@@ -27,14 +27,10 @@
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp
index 8185e351..adb3d478 100644
--- a/include/boost/config/stdlib/msl.hpp
+++ b/include/boost/config/stdlib/msl.hpp
@@ -51,14 +51,10 @@
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp
index b43623b5..95ac36c6 100644
--- a/include/boost/config/stdlib/roguewave.hpp
+++ b/include/boost/config/stdlib/roguewave.hpp
@@ -154,22 +154,20 @@
# endif
#endif
-// C++0x headers not yet implemented
-//
#if _RWSTD_VER < 0x05000000
# define BOOST_NO_0X_HDR_ARRAY
-# define BOOST_NO_0X_HDR_TYPE_TRAITS
#endif
+// type_traits header is incomplete:
+# define BOOST_NO_0X_HDR_TYPE_TRAITS
+//
+// C++0x headers not yet implemented
+//
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp
index 5731fe5e..c8d77d55 100644
--- a/include/boost/config/stdlib/sgi.hpp
+++ b/include/boost/config/stdlib/sgi.hpp
@@ -121,14 +121,10 @@
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp
index 85176a4d..d3069992 100644
--- a/include/boost/config/stdlib/stlport.hpp
+++ b/include/boost/config/stdlib/stlport.hpp
@@ -215,14 +215,10 @@ namespace boost { using std::min; using std::max; }
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp
index 3fcf6e05..32a1fc08 100644
--- a/include/boost/config/stdlib/vacpp.hpp
+++ b/include/boost/config/stdlib/vacpp.hpp
@@ -27,14 +27,10 @@
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
-# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp
index 9cce6fd7..30622872 100644
--- a/include/boost/config/suffix.hpp
+++ b/include/boost/config/suffix.hpp
@@ -341,6 +341,9 @@
#if defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
# define BOOST_NO_INITIALIZER_LISTS
#endif
+#if defined(BOOST_NO_INITIALIZER_LISTS) && !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
+# define BOOST_NO_0X_HDR_INITIALIZER_LIST
+#endif
//
// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_RVALUE_REFERENCES is not defined
@@ -376,7 +379,7 @@
// works as expected with standard conforming compilers. The resulting
// double inclusion of is harmless.
-# ifdef BOOST_NO_STDC_NAMESPACE
+# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
# include
namespace std { using ::ptrdiff_t; using ::size_t; }
# endif
@@ -395,7 +398,7 @@
// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
-# ifdef BOOST_NO_STD_MIN_MAX
+# if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
namespace std {
template
@@ -506,7 +509,7 @@ namespace std {
// but it's use may generate either warnings (with -ansi), or errors
// (with -pedantic -ansi) unless it's use is prefixed by __extension__
//
-#if defined(BOOST_HAS_LONG_LONG)
+#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
namespace boost{
# ifdef __GNUC__
__extension__ typedef long long long_long_type;
@@ -560,7 +563,7 @@ namespace boost{
//
-#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
# include "boost/type.hpp"
# include "boost/non_type.hpp"
@@ -598,7 +601,7 @@ namespace boost{
// When BOOST_NO_STD_TYPEINFO is defined, we can just import
// the global definition into std namespace:
-#ifdef BOOST_NO_STD_TYPEINFO
+#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
#include
namespace std{ using ::type_info; }
#endif
diff --git a/include/boost/config/warning_disable.hpp b/include/boost/config/warning_disable.hpp
index 26ff1323..fea8e829 100644
--- a/include/boost/config/warning_disable.hpp
+++ b/include/boost/config/warning_disable.hpp
@@ -23,7 +23,7 @@
// Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:
// not even std library ones! Doing so may turn the warning
// off too late to be of any use. For example the VC++ C4996
-// warning can be omitted from if that header is included
+// warning can be emitted from if that header is included
// before or by this one :-(
//
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
index 8d2bdb21..df613523 100644
--- a/test/Jamfile.v2
+++ b/test/Jamfile.v2
@@ -24,7 +24,8 @@ if $(is_unix)
}
test-suite config
- :
+ :
+ [ compile config_test_c.c ]
[ run config_test.cpp
: #args
: #input-files
diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2
index 3321838b..fa3fbfd4 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 25 16:53:42 2010
+# This file was automatically generated on Tue Mar 15 12:25:21 2011
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -31,9 +31,6 @@ test-suite "BOOST_HAS_BETHREADS" :
test-suite "BOOST_HAS_CLOCK_GETTIME" :
[ run ../has_clock_gettime_pass.cpp ]
[ compile-fail ../has_clock_gettime_fail.cpp ] ;
-test-suite "BOOST_HAS_CONCEPTS" :
-[ run ../has_concepts_pass.cpp ]
-[ compile-fail ../has_concepts_fail.cpp ] ;
test-suite "BOOST_HAS_DIRENT_H" :
[ run ../has_dirent_h_pass.cpp ]
[ compile-fail ../has_dirent_h_fail.cpp ] ;
@@ -184,15 +181,9 @@ test-suite "BOOST_NO_0X_HDR_CHRONO" :
test-suite "BOOST_NO_0X_HDR_CODECVT" :
[ run ../no_0x_hdr_codecvt_pass.cpp ]
[ compile-fail ../no_0x_hdr_codecvt_fail.cpp ] ;
-test-suite "BOOST_NO_0X_HDR_CONCEPTS" :
-[ run ../no_0x_hdr_concepts_pass.cpp ]
-[ compile-fail ../no_0x_hdr_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CONDITION_VARIABLE" :
[ run ../no_0x_hdr_condition_variable_pass.cpp ]
[ compile-fail ../no_0x_hdr_condition_variable_fail.cpp ] ;
-test-suite "BOOST_NO_0X_HDR_CONTAINER_CONCEPTS" :
-[ run ../no_0x_hdr_container_concepts_pass.cpp ]
-[ compile-fail ../no_0x_hdr_container_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_FORWARD_LIST" :
[ run ../no_0x_hdr_forward_list_pass.cpp ]
[ compile-fail ../no_0x_hdr_forward_list_fail.cpp ] ;
@@ -202,12 +193,6 @@ test-suite "BOOST_NO_0X_HDR_FUTURE" :
test-suite "BOOST_NO_0X_HDR_INITIALIZER_LIST" :
[ run ../no_0x_hdr_initializer_list_pass.cpp ]
[ compile-fail ../no_0x_hdr_initializer_list_fail.cpp ] ;
-test-suite "BOOST_NO_0X_HDR_ITERATOR_CONCEPTS" :
-[ run ../no_0x_hdr_iterator_concepts_pass.cpp ]
-[ compile-fail ../no_0x_hdr_iterator_concepts_fail.cpp ] ;
-test-suite "BOOST_NO_0X_HDR_MEMORY_CONCEPTS" :
-[ run ../no_0x_hdr_memory_concepts_pass.cpp ]
-[ compile-fail ../no_0x_hdr_memory_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_MUTEX" :
[ run ../no_0x_hdr_mutex_pass.cpp ]
[ compile-fail ../no_0x_hdr_mutex_fail.cpp ] ;
@@ -271,9 +256,6 @@ test-suite "BOOST_NO_CHAR32_T" :
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_CONCEPTS" :
-[ run ../no_concepts_pass.cpp ]
-[ compile-fail ../no_concepts_fail.cpp ] ;
test-suite "BOOST_NO_CONSTEXPR" :
[ run ../no_constexpr_pass.cpp ]
[ compile-fail ../no_constexpr_fail.cpp ] ;
@@ -325,6 +307,9 @@ test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
test-suite "BOOST_NO_EXTERN_TEMPLATE" :
[ run ../no_extern_template_pass.cpp ]
[ compile-fail ../no_extern_template_fail.cpp ] ;
+test-suite "BOOST_NO_FENV_H" :
+[ run ../no_fenv_h_pass.cpp ]
+[ compile-fail ../no_fenv_h_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS" :
[ run ../no_function_template_default_args_pass.cpp ]
[ compile-fail ../no_function_template_default_args_fail.cpp ] ;
diff --git a/test/boost_has_concepts.ipp b/test/boost_has_concepts.ipp
deleted file mode 100644
index abc1740a..00000000
--- a/test/boost_has_concepts.ipp
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2007 Douglas Gregor
-// 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_HAS_CONCEPTS
-// TITLE: concepts
-// DESCRIPTION: The compiler supports C++0x concepts
-
-namespace boost_has_concepts {
-
-concept C { }
-
-concept_map C { }
-
-int test()
-{
- return 0;
-}
-
-}
diff --git a/test/boost_no_0x_hdr_array.ipp b/test/boost_no_0x_hdr_array.ipp
index b61414b5..86609c8b 100644
--- a/test/boost_no_0x_hdr_array.ipp
+++ b/test/boost_no_0x_hdr_array.ipp
@@ -16,7 +16,8 @@ namespace boost_no_0x_hdr_array {
int test()
{
- return 0;
+ std::array a = { 1, 2, 3 };
+ return a.size() == 3 ? 0 : 1;
}
}
diff --git a/test/boost_no_0x_hdr_chrono.ipp b/test/boost_no_0x_hdr_chrono.ipp
index 0f54f114..dad06692 100644
--- a/test/boost_no_0x_hdr_chrono.ipp
+++ b/test/boost_no_0x_hdr_chrono.ipp
@@ -16,6 +16,15 @@ namespace boost_no_0x_hdr_chrono {
int test()
{
+ using std::chrono::nanoseconds;
+ using std::chrono::microseconds;
+ using std::chrono::milliseconds;
+ using std::chrono::seconds;
+ using std::chrono::minutes;
+ using std::chrono::hours;
+ using std::chrono::system_clock;
+ using std::chrono::monotonic_clock;
+ using std::chrono::high_resolution_clock;
return 0;
}
diff --git a/test/boost_no_0x_hdr_codecvt.ipp b/test/boost_no_0x_hdr_codecvt.ipp
index e42cca6b..96d1ee17 100644
--- a/test/boost_no_0x_hdr_codecvt.ipp
+++ b/test/boost_no_0x_hdr_codecvt.ipp
@@ -16,6 +16,9 @@ namespace boost_no_0x_hdr_codecvt {
int test()
{
+ using std::codecvt_utf8;
+ using std::codecvt_utf16;
+ using std::codecvt_utf8_utf16;
return 0;
}
diff --git a/test/boost_no_0x_hdr_concepts.ipp b/test/boost_no_0x_hdr_concepts.ipp
deleted file mode 100644
index dceda408..00000000
--- a/test/boost_no_0x_hdr_concepts.ipp
+++ /dev/null
@@ -1,22 +0,0 @@
-// (C) Copyright Beman Dawes 2009
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for more information.
-
-// MACRO: BOOST_NO_0X_HDR_CONCEPTS
-// TITLE: C++0x header unavailable
-// DESCRIPTION: The standard library does not supply C++0x header
-
-#include
-
-namespace boost_no_0x_hdr_concepts {
-
-int test()
-{
- return 0;
-}
-
-}
diff --git a/test/boost_no_0x_hdr_condition_variable.ipp b/test/boost_no_0x_hdr_condition_variable.ipp
index 585aa2cf..fc06a356 100644
--- a/test/boost_no_0x_hdr_condition_variable.ipp
+++ b/test/boost_no_0x_hdr_condition_variable.ipp
@@ -16,6 +16,8 @@ namespace boost_no_0x_hdr_condition_variable {
int test()
{
+ using std::condition_variable;
+ using std::condition_variable_any;
return 0;
}
diff --git a/test/boost_no_0x_hdr_container_concepts.ipp b/test/boost_no_0x_hdr_container_concepts.ipp
deleted file mode 100644
index af9d5103..00000000
--- a/test/boost_no_0x_hdr_container_concepts.ipp
+++ /dev/null
@@ -1,22 +0,0 @@
-// (C) Copyright Beman Dawes 2009
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for more information.
-
-// MACRO: BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
-// TITLE: C++0x header unavailable
-// DESCRIPTION: The standard library does not supply C++0x header
-
-#include
-
-namespace boost_no_0x_hdr_container_concepts {
-
-int test()
-{
- return 0;
-}
-
-}
diff --git a/test/boost_no_0x_hdr_forward_list.ipp b/test/boost_no_0x_hdr_forward_list.ipp
index 45d90fa6..59d16afb 100644
--- a/test/boost_no_0x_hdr_forward_list.ipp
+++ b/test/boost_no_0x_hdr_forward_list.ipp
@@ -16,7 +16,8 @@ namespace boost_no_0x_hdr_forward_list {
int test()
{
- return 0;
+ std::forward_list l(2u, 2);
+ return *l.begin() == 2 ? 0 : 1;
}
}
diff --git a/test/boost_no_0x_hdr_future.ipp b/test/boost_no_0x_hdr_future.ipp
index 528509a8..42fd55e6 100644
--- a/test/boost_no_0x_hdr_future.ipp
+++ b/test/boost_no_0x_hdr_future.ipp
@@ -16,6 +16,19 @@ namespace boost_no_0x_hdr_future {
int test()
{
+ using std::is_error_code_enum;
+ using std::make_error_code;
+ using std::make_error_condition;
+ using std::future_category;
+ using std::future_error;
+ using std::promise;
+ using std::promise;
+ using std::promise;
+ using std::future;
+ using std::shared_future;
+ using std::atomic_future;
+ using std::packaged_task; // undefined
+ using std::async;
return 0;
}
diff --git a/test/boost_no_0x_hdr_initializer_list.ipp b/test/boost_no_0x_hdr_initializer_list.ipp
index 3e48cf47..c026ecbb 100644
--- a/test/boost_no_0x_hdr_initializer_list.ipp
+++ b/test/boost_no_0x_hdr_initializer_list.ipp
@@ -14,8 +14,13 @@
namespace boost_no_0x_hdr_initializer_list {
+void foo(const std::initializer_list& l)
+{
+}
+
int test()
{
+ foo( { "a", "b", "c" } );
return 0;
}
diff --git a/test/boost_no_0x_hdr_iterator_concepts.ipp b/test/boost_no_0x_hdr_iterator_concepts.ipp
deleted file mode 100644
index f0637333..00000000
--- a/test/boost_no_0x_hdr_iterator_concepts.ipp
+++ /dev/null
@@ -1,22 +0,0 @@
-// (C) Copyright Beman Dawes 2009
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for more information.
-
-// MACRO: BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-// TITLE: C++0x header unavailable
-// DESCRIPTION: The standard library does not supply C++0x header
-
-#include
-
-namespace boost_no_0x_hdr_iterator_concepts {
-
-int test()
-{
- return 0;
-}
-
-}
diff --git a/test/boost_no_0x_hdr_memory_concepts.ipp b/test/boost_no_0x_hdr_memory_concepts.ipp
deleted file mode 100644
index fec1d7b0..00000000
--- a/test/boost_no_0x_hdr_memory_concepts.ipp
+++ /dev/null
@@ -1,22 +0,0 @@
-// (C) Copyright Beman Dawes 2009
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for more information.
-
-// MACRO: BOOST_NO_0X_HDR_MEMORY_CONCEPTS
-// TITLE: C++0x header unavailable
-// DESCRIPTION: The standard library does not supply C++0x header
-
-#include
-
-namespace boost_no_0x_hdr_memory_concepts {
-
-int test()
-{
- return 0;
-}
-
-}
diff --git a/test/boost_no_0x_hdr_mutex.ipp b/test/boost_no_0x_hdr_mutex.ipp
index c1e7ec9c..d3a9d25b 100644
--- a/test/boost_no_0x_hdr_mutex.ipp
+++ b/test/boost_no_0x_hdr_mutex.ipp
@@ -16,6 +16,10 @@ namespace boost_no_0x_hdr_mutex {
int test()
{
+ using std::mutex;
+ using std::recursive_mutex;
+ using std::timed_mutex;
+ using std::recursive_timed_mutex;
return 0;
}
diff --git a/test/boost_no_0x_hdr_random.ipp b/test/boost_no_0x_hdr_random.ipp
index 956f24e2..07d58b5e 100644
--- a/test/boost_no_0x_hdr_random.ipp
+++ b/test/boost_no_0x_hdr_random.ipp
@@ -16,6 +16,15 @@ namespace boost_no_0x_hdr_random {
int test()
{
+ using std::minstd_rand0;
+ using std::mt19937;
+ using std::mt19937_64;
+ using std::ranlux24_base;
+ using std::ranlux48_base;
+ using std::ranlux24;
+ using std::ranlux48;
+ using std::knuth_b;
+ using std::default_random_engine;
return 0;
}
diff --git a/test/boost_no_0x_hdr_ratio.ipp b/test/boost_no_0x_hdr_ratio.ipp
index 8200b41a..beeab5b7 100644
--- a/test/boost_no_0x_hdr_ratio.ipp
+++ b/test/boost_no_0x_hdr_ratio.ipp
@@ -16,6 +16,21 @@ namespace boost_no_0x_hdr_ratio {
int test()
{
+ using std::atto;
+ using std::femto;
+ using std::pico;
+ using std::nano;
+ using std::micro;
+ using std::milli;
+ using std::centi;
+ using std::deci;
+ using std::deca;
+ using std::hecto;
+ using std::kilo;
+ using std::mega;
+ using std::tera;
+ using std::peta;
+ using std::exa;
return 0;
}
diff --git a/test/boost_no_0x_hdr_regex.ipp b/test/boost_no_0x_hdr_regex.ipp
index 1b40caf1..f82693e3 100644
--- a/test/boost_no_0x_hdr_regex.ipp
+++ b/test/boost_no_0x_hdr_regex.ipp
@@ -16,6 +16,8 @@ namespace boost_no_0x_hdr_regex {
int test()
{
+ using std::regex;
+ using std::wregex;
return 0;
}
diff --git a/test/boost_no_0x_hdr_system_error.ipp b/test/boost_no_0x_hdr_system_error.ipp
index a69912f3..158f7c1e 100644
--- a/test/boost_no_0x_hdr_system_error.ipp
+++ b/test/boost_no_0x_hdr_system_error.ipp
@@ -16,6 +16,10 @@ namespace boost_no_0x_hdr_system_error {
int test()
{
+ using std::error_category;
+ using std::error_code;
+ using std::error_condition;
+ using std::system_error;
return 0;
}
diff --git a/test/boost_no_0x_hdr_thread.ipp b/test/boost_no_0x_hdr_thread.ipp
index a6dfa057..c07b03e4 100644
--- a/test/boost_no_0x_hdr_thread.ipp
+++ b/test/boost_no_0x_hdr_thread.ipp
@@ -16,6 +16,11 @@ namespace boost_no_0x_hdr_thread {
int test()
{
+ using std::thread;
+ using std::this_thread::get_id;
+ using std::this_thread::yield;
+ using std::this_thread::sleep_until;
+ using std::this_thread::sleep_for;
return 0;
}
diff --git a/test/boost_no_0x_hdr_type_traits.ipp b/test/boost_no_0x_hdr_type_traits.ipp
index 9993804a..44dc6a6f 100644
--- a/test/boost_no_0x_hdr_type_traits.ipp
+++ b/test/boost_no_0x_hdr_type_traits.ipp
@@ -16,6 +16,90 @@ namespace boost_no_0x_hdr_type_traits {
int test()
{
+ using std::integral_constant;
+ using std::true_type;
+ using std::false_type;
+ using std::is_void;
+ using std::is_integral;
+ using std::is_floating_point;
+ using std::is_array;
+ using std::is_pointer;
+ using std::is_lvalue_reference;
+ using std::is_rvalue_reference;
+ using std::is_member_object_pointer;
+ using std::is_member_function_pointer;
+ using std::is_enum;
+ using std::is_union;
+ using std::is_class;
+ using std::is_function;
+ using std::is_reference;
+ using std::is_arithmetic;
+ using std::is_fundamental;
+ using std::is_object;
+ using std::is_scalar;
+ using std::is_compound;
+ using std::is_member_pointer;
+ using std::is_const;
+ using std::is_volatile;
+ using std::is_trivial;
+ using std::is_trivially_copyable;
+ using std::is_standard_layout;
+ using std::is_pod;
+ using std::is_literal_type;
+ using std::is_empty;
+ using std::is_polymorphic;
+ using std::is_abstract;
+ using std::is_constructible;
+ using std::is_nothrow_constructible;
+ using std::has_default_constructor;
+ using std::has_copy_constructor;
+ using std::has_copy_assign;
+ using std::has_move_constructor;
+ using std::has_move_assign;
+ using std::has_trivial_default_constructor;
+ using std::has_trivial_copy_constructor;
+ using std::has_trivial_move_constructor;
+ using std::has_trivial_copy_assign;
+ using std::has_trivial_move_assign;
+ using std::has_trivial_destructor;
+ using std::has_nothrow_default_constructor;
+ using std::has_nothrow_copy_constructor;
+ using std::has_nothrow_move_constructor;
+ using std::has_nothrow_copy_assign;
+ using std::has_nothrow_move_assign;
+ using std::has_virtual_destructor;
+ using std::is_signed;
+ using std::is_unsigned;
+ using std::alignment_of;
+ using std::rank;
+ using std::extent;
+ using std::is_same;
+ using std::is_base_of;
+ using std::is_convertible;
+ using std::is_explicitly_convertible;
+ using std::remove_const;
+ using std::remove_volatile;
+ using std::remove_cv;
+ using std::add_const;
+ using std::add_volatile;
+ using std::add_cv;
+ using std::remove_reference;
+ using std::add_lvalue_reference;
+ using std::add_rvalue_reference;
+ using std::make_signed;
+ using std::make_unsigned;
+ using std::remove_extent;
+ using std::remove_all_extents;
+ using std::remove_pointer;
+ using std::add_pointer;
+ using std::aligned_storage;
+ using std::aligned_union;
+ using std::decay;
+ using std::enable_if;
+ using std::conditional;
+ using std::common_type;
+ using std::underlying_type;
+ using std::result_of;
return 0;
}
diff --git a/test/boost_no_0x_hdr_unordered_map.ipp b/test/boost_no_0x_hdr_unordered_map.ipp
index 5377535b..3d44a1c5 100644
--- a/test/boost_no_0x_hdr_unordered_map.ipp
+++ b/test/boost_no_0x_hdr_unordered_map.ipp
@@ -16,7 +16,9 @@ namespace boost_no_0x_hdr_unordered_map {
int test()
{
- return 0;
+ std::unordered_map s1;
+ std::unordered_multimap s2;
+ return s1.empty() && s2.empty() ? 0 : 1;
}
}
diff --git a/test/boost_no_0x_hdr_unordered_set.ipp b/test/boost_no_0x_hdr_unordered_set.ipp
index 2bf6cd95..f72f1b6a 100644
--- a/test/boost_no_0x_hdr_unordered_set.ipp
+++ b/test/boost_no_0x_hdr_unordered_set.ipp
@@ -16,7 +16,9 @@ namespace boost_no_0x_hdr_unordered_set {
int test()
{
- return 0;
+ std::unordered_set s1;
+ std::unordered_multiset s2;
+ return s1.empty() && s2.empty() ? 0 : 1;
}
}
diff --git a/test/boost_no_concepts.ipp b/test/boost_no_concepts.ipp
deleted file mode 100644
index d5202b0d..00000000
--- a/test/boost_no_concepts.ipp
+++ /dev/null
@@ -1,22 +0,0 @@
-// (C) Copyright Beman Dawes 2009
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for more information.
-
-// MACRO: BOOST_NO_CONCEPTS
-// TITLE: C++0x concepts feature unavailable
-// DESCRIPTION: The compiler does not support the C++0x concepts feature
-
-namespace boost_no_concepts {
-
-concept Foo { }
-
-int test()
-{
- return 0;
-}
-
-}
diff --git a/test/boost_no_constexpr.ipp b/test/boost_no_constexpr.ipp
index 4ab80a02..c246e234 100644
--- a/test/boost_no_constexpr.ipp
+++ b/test/boost_no_constexpr.ipp
@@ -14,6 +14,26 @@ namespace boost_no_constexpr {
constexpr int square(int x) { return x * x; } // from N2235
+// from 5.19:
+constexpr const int* addr(const int& ir) { return &ir; }
+static const int x = 5;
+constexpr const int* xp = addr(x);
+
+struct A
+{
+ constexpr A(int i) : val(i) { }
+ constexpr operator int() { return val; }
+ constexpr operator long() { return 43; }
+private:
+ int val;
+};
+
+template struct X { };
+
+constexpr A a = 42;
+
+X xx; // OK: unique conversion to int
+
int test()
{
int i = square(5);
diff --git a/test/boost_no_defaulted_functions.ipp b/test/boost_no_defaulted_functions.ipp
index b7c5c9a7..c571cc23 100644
--- a/test/boost_no_defaulted_functions.ipp
+++ b/test/boost_no_defaulted_functions.ipp
@@ -10,6 +10,10 @@
// TITLE: C++0x defaulted functions unavailable
// DESCRIPTION: The compiler does not support C++0x defaulted functions
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
+# error Defaulted functions aren't really supported in non-C++0x mode
+#endif
+
namespace boost_no_defaulted_functions {
struct foo {
diff --git a/test/boost_no_deleted_functions.ipp b/test/boost_no_deleted_functions.ipp
index 072e0f95..dac4972b 100644
--- a/test/boost_no_deleted_functions.ipp
+++ b/test/boost_no_deleted_functions.ipp
@@ -10,6 +10,10 @@
// TITLE: C++0x =delete functions unavailable
// DESCRIPTION: The compiler does not support C++0x =delete functions
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
+# error Deleted functions aren't really supported in non-C++0x mode
+#endif
+
namespace boost_no_deleted_functions {
struct foo {
diff --git a/test/boost_no_explicit_cvt_ops.ipp b/test/boost_no_explicit_cvt_ops.ipp
index 2293c247..c370e440 100644
--- a/test/boost_no_explicit_cvt_ops.ipp
+++ b/test/boost_no_explicit_cvt_ops.ipp
@@ -10,6 +10,10 @@
// TITLE: C++0x explicit conversion operators unavailable
// DESCRIPTION: The compiler does not support C++0x explicit conversion operators
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
+# error This feature isn't really available in non-C++0x mode
+#endif
+
namespace boost_no_explicit_conversion_operators {
struct foo {
diff --git a/test/boost_no_fenv_h.ipp b/test/boost_no_fenv_h.ipp
index 97ed5124..1bb71160 100644
--- a/test/boost_no_fenv_h.ipp
+++ b/test/boost_no_fenv_h.ipp
@@ -8,21 +8,21 @@
// MACRO: BOOST_NO_FENV_H
// TITLE: fenv.h
-// DESCRIPTION: There is no POSIX available. If is
+// DESCRIPTION: There is no standard available. If is
// available, should be included
// instead of directly including .
-#include
+#include
namespace boost_no_fenv_h {
int test()
{
- /// POSIX required typedefs
+ /// C++0x required typedefs
typedef ::fenv_t has_fenv_t;
typedef ::fexcept_t has_fexcept_t;
- /// POSIX required macros
+ /// C++0x required macros
#if !defined(FE_DIVBYZERO)
#error platform does not define FE_DIVBYZERO
#endif
@@ -31,47 +31,27 @@ int test()
#error platform does not define FE_INEXACT
#endif
- #if !defined(FE_INVALID)
- #error platform does not define FE_INVALID
+ #if !defined(FE_ALL_EXCEPT)
+ #error platform does not define FE_ALL_EXCEPT
#endif
+
+ int i;
+ fexcept_t fe;
+ fenv_t env;
- #if !defined(FE_OVERFLOW)
- #error platform does not define FE_OVERFLOW
- #endif
+ i = feclearexcept(FE_ALL_EXCEPT);
+ i += fetestexcept(FE_ALL_EXCEPT); // All flags should be zero
+ i += fegetexceptflag(&fe, FE_ALL_EXCEPT);
+ i += fesetexceptflag(&fe, FE_ALL_EXCEPT);
+ i += feraiseexcept(0);
+ i += fesetround(fegetround());
+ i += fegetenv(&env);
+ i += fesetenv(&env);
+ i += feholdexcept(&env);
+ if(i)
+ i += feupdateenv(&env);
- #if !defined(FE_UNDERFLOW)
- #error platform does not define FE_UNDERFLOW
- #endif
-
- #if !defined(FE_DOWNWARD)
- #error platform does not define FE_DOWNWARD
- #endif
-
- #if !defined(FE_TONEAREST)
- #error platform does not define FE_TONEAREST
- #endif
-
- #if !defined(FE_UPWARD)
- #error platform does not define FE_UPWARD
- #endif
-
- #if !defined(FE_DFL_ENV)
- #error platform does not define FE_DFL_ENV
- #endif
-
- int (*has_feclearexcept)(int) = ::feclearexcept;
- int (*has_fegetenv)(fenv_t*) = ::fegetenv;
- int (*has_fegetexcept)(fexcept_t*, int) = ::fegetexcept;
- int (*has_fegetround)(void) = ::fegetround;
- int (*has_feholdexcept)(fenv_t*) = ::feholdexcept;
- int (*has_feraiseexcept)(int) = ::feraiseexcept;
- int (*has_fesetenv)(const fenv_t*) = ::fesetenv;
- int (*has_fesetexceptflag)(const fexcept_t*, int) = ::fesetexceptflag;
- int (*has_fesetround)(int) = ::fesetround;
- int (*has_fetestexcept)(int) = ::fetestexcept;
- int (*has_feupdateenv)(const fenv_t*) = ::feupdateenv;
-
- return 0;
+ return i;
}
}
diff --git a/test/boost_no_initializer_lists.ipp b/test/boost_no_initializer_lists.ipp
index 4bc96a28..22897e1e 100644
--- a/test/boost_no_initializer_lists.ipp
+++ b/test/boost_no_initializer_lists.ipp
@@ -12,6 +12,7 @@
#include
#include
+#include
namespace boost_no_initializer_lists {
diff --git a/test/boost_no_lambdas.ipp b/test/boost_no_lambdas.ipp
index 1d9285f0..d02da69c 100644
--- a/test/boost_no_lambdas.ipp
+++ b/test/boost_no_lambdas.ipp
@@ -10,6 +10,10 @@
// TITLE: C++0x lambda feature unavailable
// DESCRIPTION: The compiler does not support the C++0x lambda feature
+#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
+# error This feature isn't really available in non-C++0x mode
+#endif
+
namespace boost_no_lambdas {
int test()
diff --git a/test/boost_no_scoped_enums.ipp b/test/boost_no_scoped_enums.ipp
index 1396da18..8b6a4a66 100644
--- a/test/boost_no_scoped_enums.ipp
+++ b/test/boost_no_scoped_enums.ipp
@@ -15,7 +15,14 @@ namespace boost_no_scoped_enums {
int test()
{
enum class scoped_enum { yes, no, maybe };
- return 0;
+ // This tests bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
+ bool b = (scoped_enum::yes == scoped_enum::yes)
+ && (scoped_enum::yes != scoped_enum::no)
+ && (scoped_enum::yes < scoped_enum::no)
+ && (scoped_enum::yes <= scoped_enum::no)
+ && (scoped_enum::no > scoped_enum::yes)
+ && (scoped_enum::no >= scoped_enum::yes);
+ return b ? 0 : 1;
}
}
diff --git a/test/config_info.cpp b/test/config_info.cpp
index 762e6c56..1abe8d8c 100644
--- a/test/config_info.cpp
+++ b/test/config_info.cpp
@@ -914,7 +914,6 @@ void print_boost_macros()
PRINT_MACRO(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL);
PRINT_MACRO(BOOST_HAS_BETHREADS);
PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
- PRINT_MACRO(BOOST_HAS_CONCEPTS);
PRINT_MACRO(BOOST_HAS_DIRENT_H);
PRINT_MACRO(BOOST_HAS_EXPM1);
PRINT_MACRO(BOOST_HAS_FTIME);
@@ -966,14 +965,10 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_0X_HDR_ARRAY);
PRINT_MACRO(BOOST_NO_0X_HDR_CHRONO);
PRINT_MACRO(BOOST_NO_0X_HDR_CODECVT);
- PRINT_MACRO(BOOST_NO_0X_HDR_CONCEPTS);
PRINT_MACRO(BOOST_NO_0X_HDR_CONDITION_VARIABLE);
- PRINT_MACRO(BOOST_NO_0X_HDR_CONTAINER_CONCEPTS);
PRINT_MACRO(BOOST_NO_0X_HDR_FORWARD_LIST);
PRINT_MACRO(BOOST_NO_0X_HDR_FUTURE);
PRINT_MACRO(BOOST_NO_0X_HDR_INITIALIZER_LIST);
- PRINT_MACRO(BOOST_NO_0X_HDR_ITERATOR_CONCEPTS);
- PRINT_MACRO(BOOST_NO_0X_HDR_MEMORY_CONCEPTS);
PRINT_MACRO(BOOST_NO_0X_HDR_MUTEX);
PRINT_MACRO(BOOST_NO_0X_HDR_RANDOM);
PRINT_MACRO(BOOST_NO_0X_HDR_RATIO);
@@ -994,7 +989,6 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CHAR16_T);
PRINT_MACRO(BOOST_NO_CHAR32_T);
PRINT_MACRO(BOOST_NO_COMPLETE_VALUE_INITIALIZATION);
- PRINT_MACRO(BOOST_NO_CONCEPTS);
PRINT_MACRO(BOOST_NO_CONSTEXPR);
PRINT_MACRO(BOOST_NO_CTYPE_FUNCTIONS);
PRINT_MACRO(BOOST_NO_CV_SPECIALIZATIONS);
@@ -1011,6 +1005,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS);
PRINT_MACRO(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS);
PRINT_MACRO(BOOST_NO_EXTERN_TEMPLATE);
+ PRINT_MACRO(BOOST_NO_FENV_H);
PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_FUNCTION_TEMPLATE_ORDERING);
PRINT_MACRO(BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS);
@@ -1078,6 +1073,8 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_VARIADIC_TEMPLATES);
PRINT_MACRO(BOOST_NO_VOID_RETURNS);
+
+
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
diff --git a/test/config_test.cpp b/test/config_test.cpp
index 90d13fd2..2a83e6d6 100644
--- a/test/config_test.cpp
+++ b/test/config_test.cpp
@@ -1,4 +1,4 @@
-// This file was automatically generated on Sat Sep 25 16:53:42 2010
+// This file was automatically generated on Tue Mar 15 12:25:21 2011
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -37,21 +37,11 @@ namespace boost_no_0x_hdr_chrono = empty_boost;
#else
namespace boost_no_0x_hdr_codecvt = empty_boost;
#endif
-#ifndef BOOST_NO_0X_HDR_CONCEPTS
-#include "boost_no_0x_hdr_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_concepts = empty_boost;
-#endif
#ifndef BOOST_NO_0X_HDR_CONDITION_VARIABLE
#include "boost_no_0x_hdr_condition_variable.ipp"
#else
namespace boost_no_0x_hdr_condition_variable = empty_boost;
#endif
-#ifndef BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
-#include "boost_no_0x_hdr_container_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_container_concepts = empty_boost;
-#endif
#ifndef BOOST_NO_0X_HDR_FORWARD_LIST
#include "boost_no_0x_hdr_forward_list.ipp"
#else
@@ -67,16 +57,6 @@ namespace boost_no_0x_hdr_future = empty_boost;
#else
namespace boost_no_0x_hdr_initializer_list = empty_boost;
#endif
-#ifndef BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
-#include "boost_no_0x_hdr_iterator_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_iterator_concepts = empty_boost;
-#endif
-#ifndef BOOST_NO_0X_HDR_MEMORY_CONCEPTS
-#include "boost_no_0x_hdr_memory_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_memory_concepts = empty_boost;
-#endif
#ifndef BOOST_NO_0X_HDR_MUTEX
#include "boost_no_0x_hdr_mutex.ipp"
#else
@@ -182,11 +162,6 @@ namespace boost_no_char32_t = empty_boost;
#else
namespace boost_no_complete_value_initialization = empty_boost;
#endif
-#ifndef BOOST_NO_CONCEPTS
-#include "boost_no_concepts.ipp"
-#else
-namespace boost_no_concepts = empty_boost;
-#endif
#ifndef BOOST_NO_CONSTEXPR
#include "boost_no_constexpr.ipp"
#else
@@ -272,6 +247,11 @@ namespace boost_no_explicit_function_template_arguments = empty_boost;
#else
namespace boost_no_extern_template = empty_boost;
#endif
+#ifndef BOOST_NO_FENV_H
+#include "boost_no_fenv_h.ipp"
+#else
+namespace boost_no_fenv_h = empty_boost;
+#endif
#ifndef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#include "boost_no_function_template_default_args.ipp"
#else
@@ -623,11 +603,6 @@ namespace boost_has_bethreads = empty_boost;
#else
namespace boost_has_clock_gettime = empty_boost;
#endif
-#ifdef BOOST_HAS_CONCEPTS
-#include "boost_has_concepts.ipp"
-#else
-namespace boost_has_concepts = empty_boost;
-#endif
#ifdef BOOST_HAS_DIRENT_H
#include "boost_has_dirent_h.ipp"
#else
@@ -881,11 +856,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_CLOCK_GETTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_has_concepts::test())
- {
- std::cerr << "Failed test for BOOST_HAS_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_has_dirent_h::test())
{
std::cerr << "Failed test for BOOST_HAS_DIRENT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1136,21 +1106,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_0X_HDR_CODECVT at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_0x_hdr_concepts::test())
- {
- std::cerr << "Failed test for BOOST_NO_0X_HDR_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_0x_hdr_condition_variable::test())
{
std::cerr << "Failed test for BOOST_NO_0X_HDR_CONDITION_VARIABLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_0x_hdr_container_concepts::test())
- {
- std::cerr << "Failed test for BOOST_NO_0X_HDR_CONTAINER_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_0x_hdr_forward_list::test())
{
std::cerr << "Failed test for BOOST_NO_0X_HDR_FORWARD_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1166,16 +1126,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_0X_HDR_INITIALIZER_LIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_0x_hdr_iterator_concepts::test())
- {
- std::cerr << "Failed test for BOOST_NO_0X_HDR_ITERATOR_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
- if(0 != boost_no_0x_hdr_memory_concepts::test())
- {
- std::cerr << "Failed test for BOOST_NO_0X_HDR_MEMORY_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_0x_hdr_mutex::test())
{
std::cerr << "Failed test for BOOST_NO_0X_HDR_MUTEX at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1281,11 +1231,6 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_COMPLETE_VALUE_INITIALIZATION at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
- if(0 != boost_no_concepts::test())
- {
- std::cerr << "Failed test for BOOST_NO_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
- ++error_count;
- }
if(0 != boost_no_constexpr::test())
{
std::cerr << "Failed test for BOOST_NO_CONSTEXPR at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1371,6 +1316,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_EXTERN_TEMPLATE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
+ if(0 != boost_no_fenv_h::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_FENV_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
if(0 != boost_no_function_template_default_args::test())
{
std::cerr << "Failed test for BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS at: " << __FILE__ << ":" << __LINE__ << std::endl;
diff --git a/test/config_test_c.c b/test/config_test_c.c
new file mode 100644
index 00000000..9955dbe6
--- /dev/null
+++ b/test/config_test_c.c
@@ -0,0 +1,9 @@
+
+
+#include
+
+
+int main()
+{
+ return 0;
+}
diff --git a/test/has_concepts_fail.cpp b/test/has_concepts_fail.cpp
deleted file mode 100644
index d864f8f4..00000000
--- a/test/has_concepts_fail.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// This file was automatically generated on Sat Aug 25 12:32:20 2007
-// 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.
-
-// Test file for macro BOOST_HAS_CONCEPTS
-// This file should not compile, if it does then
-// BOOST_HAS_CONCEPTS should be defined.
-// See file boost_has_concepts.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_HAS_CONCEPTS
-#include "boost_has_concepts.ipp"
-#else
-#error "this file should not compile"
-#endif
-
-int main( int, char *[] )
-{
- return boost_has_concepts::test();
-}
-
diff --git a/test/has_concepts_pass.cpp b/test/has_concepts_pass.cpp
deleted file mode 100644
index 1883693d..00000000
--- a/test/has_concepts_pass.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// This file was automatically generated on Sat Aug 25 12:32:20 2007
-// 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.
-
-// Test file for macro BOOST_HAS_CONCEPTS
-// This file should compile, if it does not then
-// BOOST_HAS_CONCEPTS should not be defined.
-// See file boost_has_concepts.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_HAS_CONCEPTS
-#include "boost_has_concepts.ipp"
-#else
-namespace boost_has_concepts = empty_boost;
-#endif
-
-int main( int, char *[] )
-{
- return boost_has_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_concepts_fail.cpp b/test/no_0x_hdr_concepts_fail.cpp
deleted file mode 100644
index d9572a19..00000000
--- a/test/no_0x_hdr_concepts_fail.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_CONCEPTS
-// This file should not compile, if it does then
-// BOOST_NO_0X_HDR_CONCEPTS should not be defined.
-// See file boost_no_0x_hdr_concepts.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_0X_HDR_CONCEPTS
-#include "boost_no_0x_hdr_concepts.ipp"
-#else
-#error "this file should not compile"
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_concepts_pass.cpp b/test/no_0x_hdr_concepts_pass.cpp
deleted file mode 100644
index 335043bf..00000000
--- a/test/no_0x_hdr_concepts_pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_CONCEPTS
-// This file should compile, if it does not then
-// BOOST_NO_0X_HDR_CONCEPTS should be defined.
-// See file boost_no_0x_hdr_concepts.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_0X_HDR_CONCEPTS
-#include "boost_no_0x_hdr_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_concepts = empty_boost;
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_container_concepts_fail.cpp b/test/no_0x_hdr_container_concepts_fail.cpp
deleted file mode 100644
index e5eb9a08..00000000
--- a/test/no_0x_hdr_container_concepts_fail.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_CONTAINER_CONCEPTS
-// This file should not compile, if it does then
-// BOOST_NO_0X_HDR_CONTAINER_CONCEPTS should not be defined.
-// See file boost_no_0x_hdr_container_concepts.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_0X_HDR_CONTAINER_CONCEPTS
-#include "boost_no_0x_hdr_container_concepts.ipp"
-#else
-#error "this file should not compile"
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_container_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_container_concepts_pass.cpp b/test/no_0x_hdr_container_concepts_pass.cpp
deleted file mode 100644
index e2e4fc97..00000000
--- a/test/no_0x_hdr_container_concepts_pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_CONTAINER_CONCEPTS
-// This file should compile, if it does not then
-// BOOST_NO_0X_HDR_CONTAINER_CONCEPTS should be defined.
-// See file boost_no_0x_hdr_container_concepts.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_0X_HDR_CONTAINER_CONCEPTS
-#include "boost_no_0x_hdr_container_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_container_concepts = empty_boost;
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_container_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_iterator_concepts_fail.cpp b/test/no_0x_hdr_iterator_concepts_fail.cpp
deleted file mode 100644
index 728a31c4..00000000
--- a/test/no_0x_hdr_iterator_concepts_fail.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_ITERATOR_CONCEPTS
-// This file should not compile, if it does then
-// BOOST_NO_0X_HDR_ITERATOR_CONCEPTS should not be defined.
-// See file boost_no_0x_hdr_iterator_concepts.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_0X_HDR_ITERATOR_CONCEPTS
-#include "boost_no_0x_hdr_iterator_concepts.ipp"
-#else
-#error "this file should not compile"
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_iterator_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_iterator_concepts_pass.cpp b/test/no_0x_hdr_iterator_concepts_pass.cpp
deleted file mode 100644
index 77d8d20d..00000000
--- a/test/no_0x_hdr_iterator_concepts_pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_ITERATOR_CONCEPTS
-// This file should compile, if it does not then
-// BOOST_NO_0X_HDR_ITERATOR_CONCEPTS should be defined.
-// See file boost_no_0x_hdr_iterator_concepts.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_0X_HDR_ITERATOR_CONCEPTS
-#include "boost_no_0x_hdr_iterator_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_iterator_concepts = empty_boost;
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_iterator_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_memory_concepts_fail.cpp b/test/no_0x_hdr_memory_concepts_fail.cpp
deleted file mode 100644
index aef47c02..00000000
--- a/test/no_0x_hdr_memory_concepts_fail.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_MEMORY_CONCEPTS
-// This file should not compile, if it does then
-// BOOST_NO_0X_HDR_MEMORY_CONCEPTS should not be defined.
-// See file boost_no_0x_hdr_memory_concepts.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_0X_HDR_MEMORY_CONCEPTS
-#include "boost_no_0x_hdr_memory_concepts.ipp"
-#else
-#error "this file should not compile"
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_memory_concepts::test();
-}
-
diff --git a/test/no_0x_hdr_memory_concepts_pass.cpp b/test/no_0x_hdr_memory_concepts_pass.cpp
deleted file mode 100644
index 516b50ed..00000000
--- a/test/no_0x_hdr_memory_concepts_pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_0X_HDR_MEMORY_CONCEPTS
-// This file should compile, if it does not then
-// BOOST_NO_0X_HDR_MEMORY_CONCEPTS should be defined.
-// See file boost_no_0x_hdr_memory_concepts.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_0X_HDR_MEMORY_CONCEPTS
-#include "boost_no_0x_hdr_memory_concepts.ipp"
-#else
-namespace boost_no_0x_hdr_memory_concepts = empty_boost;
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_0x_hdr_memory_concepts::test();
-}
-
diff --git a/test/no_concepts_fail.cpp b/test/no_concepts_fail.cpp
deleted file mode 100644
index 6478e187..00000000
--- a/test/no_concepts_fail.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_CONCEPTS
-// This file should not compile, if it does then
-// BOOST_NO_CONCEPTS should not be defined.
-// See file boost_no_concepts.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_CONCEPTS
-#include "boost_no_concepts.ipp"
-#else
-#error "this file should not compile"
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_concepts::test();
-}
-
diff --git a/test/no_concepts_pass.cpp b/test/no_concepts_pass.cpp
deleted file mode 100644
index ad36d9c2..00000000
--- a/test/no_concepts_pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// This file was automatically generated on Fri May 15 11:57:42 2009
-// 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_CONCEPTS
-// This file should compile, if it does not then
-// BOOST_NO_CONCEPTS should be defined.
-// See file boost_no_concepts.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_CONCEPTS
-#include "boost_no_concepts.ipp"
-#else
-namespace boost_no_concepts = empty_boost;
-#endif
-
-int main( int, char *[] )
-{
- return boost_no_concepts::test();
-}
-
diff --git a/tools/generate.cpp b/tools/generate.cpp
index 87adc55c..c9a0b0d4 100644
--- a/tools/generate.cpp
+++ b/tools/generate.cpp
@@ -124,7 +124,7 @@ void write_test_file(const fs::path& file,
{
if(!fs::exists(file))
{
- std::cout << "Writing test file " << file.native_directory_string() << std::endl;
+ std::cout << "Writing test file " << file.string() << std::endl;
fs::ofstream ofs(file);
std::time_t t = std::time(0);
@@ -180,13 +180,13 @@ void write_test_file(const fs::path& file,
}
else
{
- std::cout << "Skipping existing test file " << file.native_directory_string() << std::endl;
+ std::cout << "Skipping existing test file " << file.string() << std::endl;
}
}
void process_ipp_file(const fs::path& file, bool positive_test)
{
- std::cout << "Info: Scanning file: " << file.native_directory_string() << std::endl;
+ std::cout << "Info: Scanning file: " << file.string() << std::endl;
// our variables:
std::string file_text;
@@ -210,7 +210,7 @@ void process_ipp_file(const fs::path& file, bool positive_test)
}
if(macro_name.empty())
{
- std::cout << "Error: no macro definition found in " << file.native_directory_string();
+ std::cout << "Error: no macro definition found in " << file.string();
}
else
{
@@ -219,10 +219,10 @@ void process_ipp_file(const fs::path& file, bool positive_test)
// get the output filesnames:
boost::regex file_regex("boost_([^.]+)\\.ipp");
- positive_file = file.branch_path() / boost::regex_replace(file.leaf(), file_regex, "$1_pass.cpp");
- negative_file = file.branch_path() / boost::regex_replace(file.leaf(), file_regex, "$1_fail.cpp");
- write_test_file(positive_file, macro_name, namespace_name, file.leaf(), positive_test, true);
- write_test_file(negative_file, macro_name, namespace_name, file.leaf(), positive_test, false);
+ positive_file = file.branch_path() / boost::regex_replace(file.leaf().string(), file_regex, "$1_pass.cpp");
+ negative_file = file.branch_path() / boost::regex_replace(file.leaf().string(), file_regex, "$1_fail.cpp");
+ write_test_file(positive_file, macro_name, namespace_name, file.leaf().string(), positive_test, true);
+ write_test_file(negative_file, macro_name, namespace_name, file.leaf().string(), positive_test, false);
// always create config_test data,
// positive and negative tests go to separate streams, because for some
@@ -232,7 +232,7 @@ void process_ipp_file(const fs::path& file, bool positive_test)
if(!positive_test)
*pout << "n";
*pout << "def " << macro_name
- << "\n#include \"" << file.leaf() << "\"\n#else\nnamespace "
+ << "\n#include \"" << file.leaf().string() << "\"\n#else\nnamespace "
<< namespace_name << " = empty_boost;\n#endif\n";
config_test2 << " if(0 != " << namespace_name << "::test())\n"
@@ -243,12 +243,12 @@ void process_ipp_file(const fs::path& file, bool positive_test)
// always generate the jamfile data:
jamfile << "test-suite \"" << macro_name << "\" : \n"
- "[ run " << positive_file.leaf() << " config_options ]\n"
- "[ compile-fail " << negative_file.leaf() << " config_options ] ;\n";
+ "[ run " << positive_file.leaf().string() << " config_options ]\n"
+ "[ compile-fail " << negative_file.leaf().string() << " config_options ] ;\n";
jamfile_v2 << "test-suite \"" << macro_name << "\" : \n"
- "[ run ../" << positive_file.leaf() << " ]\n"
- "[ compile-fail ../" << negative_file.leaf() << " ] ;\n";
+ "[ run ../" << positive_file.leaf().string() << " ]\n"
+ "[ compile-fail ../" << negative_file.leaf().string() << " ] ;\n";
}
@@ -268,7 +268,7 @@ int cpp_main(int argc, char* argv[])
fs::path p(__FILE__, fs::native);
config_path = p.branch_path().branch_path() / "test";
}
- std::cout << "Info: Boost.Config test path set as: " << config_path.native_directory_string() << std::endl;
+ std::cout << "Info: Boost.Config test path set as: " << config_path.string() << std::endl;
// enumerate *.ipp files:
boost::regex ipp_mask("boost_(?:(has)|no).*\\.ipp");
@@ -276,7 +276,7 @@ int cpp_main(int argc, char* argv[])
fs::directory_iterator i(config_path), j;
while(i != j)
{
- if(boost::regex_match(i->path().leaf(), ipp_match, ipp_mask))
+ if(boost::regex_match(i->path().leaf().string(), ipp_match, ipp_mask))
{
process_ipp_file(*i, ipp_match[1].matched);
}
|