From dd3ebc8776c1b33e5479d2b0aa894d20118ccc77 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Mon, 25 Apr 2011 12:10:48 +0000 Subject: [PATCH] Merge Boost.Config changes to release. [SVN r71480] --- .../boost_config/boost_macro_reference.html | 140 ++++++------------ .../guidelines_for_boost_authors.html | 8 +- doc/html/index.html | 16 +- doc/macro_reference.qbk | 17 ++- include/boost/config/compiler/borland.hpp | 8 +- include/boost/config/compiler/clang.hpp | 1 - include/boost/config/compiler/codegear.hpp | 3 +- include/boost/config/compiler/common_edg.hpp | 1 - include/boost/config/compiler/digitalmars.hpp | 3 +- include/boost/config/compiler/gcc.hpp | 36 ++--- include/boost/config/compiler/hp_acc.hpp | 1 - include/boost/config/compiler/intel.hpp | 15 +- include/boost/config/compiler/metrowerks.hpp | 1 - include/boost/config/compiler/mpw.hpp | 1 - include/boost/config/compiler/pathscale.hpp | 5 - include/boost/config/compiler/pgi.hpp | 1 - include/boost/config/compiler/sunpro_cc.hpp | 1 - include/boost/config/compiler/vacpp.hpp | 1 - include/boost/config/compiler/visualc.hpp | 3 +- include/boost/config/platform/linux.hpp | 5 + include/boost/config/platform/macos.hpp | 9 +- include/boost/config/platform/symbian.hpp | 7 +- .../boost/config/select_compiler_config.hpp | 27 ---- include/boost/config/select_stdlib_config.hpp | 6 +- include/boost/config/stdlib/dinkumware.hpp | 10 +- include/boost/config/stdlib/libcomo.hpp | 4 - include/boost/config/stdlib/libcpp.hpp | 12 +- include/boost/config/stdlib/libstdcpp3.hpp | 28 ++-- include/boost/config/stdlib/modena.hpp | 4 - include/boost/config/stdlib/msl.hpp | 4 - include/boost/config/stdlib/roguewave.hpp | 12 +- include/boost/config/stdlib/sgi.hpp | 4 - include/boost/config/stdlib/stlport.hpp | 4 - include/boost/config/stdlib/vacpp.hpp | 4 - include/boost/config/suffix.hpp | 13 +- include/boost/config/warning_disable.hpp | 2 +- test/Jamfile.v2 | 3 +- test/all/Jamfile.v2 | 23 +-- test/boost_has_concepts.ipp | 23 --- test/boost_no_0x_hdr_array.ipp | 3 +- test/boost_no_0x_hdr_chrono.ipp | 9 ++ test/boost_no_0x_hdr_codecvt.ipp | 3 + test/boost_no_0x_hdr_concepts.ipp | 22 --- test/boost_no_0x_hdr_condition_variable.ipp | 2 + test/boost_no_0x_hdr_container_concepts.ipp | 22 --- test/boost_no_0x_hdr_forward_list.ipp | 3 +- test/boost_no_0x_hdr_future.ipp | 13 ++ test/boost_no_0x_hdr_initializer_list.ipp | 5 + test/boost_no_0x_hdr_iterator_concepts.ipp | 22 --- test/boost_no_0x_hdr_memory_concepts.ipp | 22 --- test/boost_no_0x_hdr_mutex.ipp | 4 + test/boost_no_0x_hdr_random.ipp | 9 ++ test/boost_no_0x_hdr_ratio.ipp | 15 ++ test/boost_no_0x_hdr_regex.ipp | 2 + test/boost_no_0x_hdr_system_error.ipp | 4 + test/boost_no_0x_hdr_thread.ipp | 5 + test/boost_no_0x_hdr_type_traits.ipp | 84 +++++++++++ test/boost_no_0x_hdr_unordered_map.ipp | 4 +- test/boost_no_0x_hdr_unordered_set.ipp | 4 +- test/boost_no_concepts.ipp | 22 --- test/boost_no_constexpr.ipp | 20 +++ test/boost_no_defaulted_functions.ipp | 4 + test/boost_no_deleted_functions.ipp | 4 + test/boost_no_explicit_cvt_ops.ipp | 4 + test/boost_no_fenv_h.ipp | 64 +++----- test/boost_no_initializer_lists.ipp | 1 + test/boost_no_lambdas.ipp | 4 + test/boost_no_scoped_enums.ipp | 9 +- test/config_info.cpp | 9 +- test/config_test.cpp | 72 ++------- test/config_test_c.c | 9 ++ test/has_concepts_fail.cpp | 34 ----- test/has_concepts_pass.cpp | 34 ----- test/no_0x_hdr_concepts_fail.cpp | 37 ----- test/no_0x_hdr_concepts_pass.cpp | 37 ----- test/no_0x_hdr_container_concepts_fail.cpp | 37 ----- test/no_0x_hdr_container_concepts_pass.cpp | 37 ----- test/no_0x_hdr_iterator_concepts_fail.cpp | 37 ----- test/no_0x_hdr_iterator_concepts_pass.cpp | 37 ----- test/no_0x_hdr_memory_concepts_fail.cpp | 37 ----- test/no_0x_hdr_memory_concepts_pass.cpp | 37 ----- test/no_concepts_fail.cpp | 37 ----- test/no_concepts_pass.cpp | 37 ----- tools/generate.cpp | 30 ++-- 84 files changed, 445 insertions(+), 968 deletions(-) delete mode 100644 test/boost_has_concepts.ipp delete mode 100644 test/boost_no_0x_hdr_concepts.ipp delete mode 100644 test/boost_no_0x_hdr_container_concepts.ipp delete mode 100644 test/boost_no_0x_hdr_iterator_concepts.ipp delete mode 100644 test/boost_no_0x_hdr_memory_concepts.ipp delete mode 100644 test/boost_no_concepts.ipp create mode 100644 test/config_test_c.c delete mode 100644 test/has_concepts_fail.cpp delete mode 100644 test/has_concepts_pass.cpp delete mode 100644 test/no_0x_hdr_concepts_fail.cpp delete mode 100644 test/no_0x_hdr_concepts_pass.cpp delete mode 100644 test/no_0x_hdr_container_concepts_fail.cpp delete mode 100644 test/no_0x_hdr_container_concepts_pass.cpp delete mode 100644 test/no_0x_hdr_iterator_concepts_fail.cpp delete mode 100644 test/no_0x_hdr_iterator_concepts_pass.cpp delete mode 100644 test/no_0x_hdr_memory_concepts_fail.cpp delete mode 100644 test/no_0x_hdr_memory_concepts_pass.cpp delete mode 100644 test/no_concepts_fail.cpp delete mode 100644 test/no_concepts_pass.cpp diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index 7986b6b3..0cf66fc7 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -42,14 +42,12 @@
Macros for libraries with separate source code
-

-

-

+

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_NO_FENV_H +

+ + +

+ Platform, Standard library +

+ + +

+ The C standard library doesn't provide <fenv.h>. + <boost/detail/fenv.hpp> + should be included instead of <fenv.h> + for maximum portability on platforms which do provide <fenv.h>. +

+ + +

BOOST_NO_DEPENDENT_NESTED_DERIVATIONS @@ -1306,14 +1324,12 @@

-

-

-

+

The following macros describe features that are not required by the C++ standard. The macro is only defined if the feature is present.

@@ -1695,26 +1711,6 @@ - -

- BOOST_HAS_FENV_H -

- - -

- Platform, Standard library -

- - -

- The platform has a <fenv.h>. - <boost/detail/fenv.hpp> - should be included instead of <fenv.h> - for maximum portability. -

- - -

BOOST_HAS_STDINT_H @@ -2325,18 +2321,6 @@ - -

- BOOST_NO_0X_HDR_CONCEPTS -

- - -

- The standard library does not provide header <concepts>. -

- - -

BOOST_NO_0X_HDR_CONDITION_VARIABLE @@ -2349,18 +2333,6 @@ - -

- BOOST_NO_0X_HDR_CONTAINER_CONCEPTS -

- - -

- The standard library does not provide header <container_concepts>. -

- - -

BOOST_NO_0X_HDR_FORWARD_LIST @@ -2397,30 +2369,6 @@ - -

- BOOST_NO_0X_HDR_ITERATOR_CONCEPTS -

- - -

- The standard library does not provide header <iterator_concepts>. -

- - - - -

- BOOST_NO_0X_HDR_MEMORY_CONCEPTS -

- - -

- The standard library does not provide header <memory_concepts>. -

- - -

BOOST_NO_0X_HDR_MUTEX @@ -2609,18 +2557,6 @@ - -

- BOOST_NO_CONCEPTS -

- - -

- The compiler does not support Concepts. -

- - -

BOOST_NO_TEMPLATE_ALIASES @@ -2883,14 +2819,12 @@

-

-

-

+

The following macros are either simple helpers, or macros that provide workarounds for compiler/standard library defects.

@@ -2960,6 +2894,30 @@ + +

+ 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 @@ -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
-
- Disabling Compiler Warnings
+
Disabling + Compiler Warnings
Adding New Defect Macros
Adding @@ -105,8 +105,8 @@

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 @@

-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -75,8 +75,8 @@
Guidelines for Boost Authors
-
- Disabling Compiler Warnings
+
Disabling + Compiler Warnings
Adding New Defect Macros
Adding @@ -166,14 +166,12 @@ developers list.

-

-

-
+
@@ -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 @@

[Important] Important
- +

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() << "