diff --git a/doc/html/boost_config/boost_macro_reference.html b/doc/html/boost_config/boost_macro_reference.html index b7390a01..5287e835 100644 --- a/doc/html/boost_config/boost_macro_reference.html +++ b/doc/html/boost_config/boost_macro_reference.html @@ -533,6 +533,23 @@ + +

+ BOOST_NO_NUMERIC_LIMITS_LOWEST +

+ + +

+ Standard library +

+ + +

+ Static function numeric_limits<T>::lowest() is not available for use. +

+ + +

BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS diff --git a/doc/html/index.html b/doc/html/index.html index fe1235db..48677667 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)

@@ -950,7 +950,7 @@
- +

Last revised: August 17, 2010 at 09:09:56 GMT

Last revised: September 26, 2010 at 09:24:20 GMT


diff --git a/doc/macro_reference.qbk b/doc/macro_reference.qbk index 54d2ea2b..1c7e8c46 100644 --- a/doc/macro_reference.qbk +++ b/doc/macro_reference.qbk @@ -144,6 +144,9 @@ The C++ implementation does not provide the `` header. Never check for this symbol in library code; always include ``, which guarantees to provide `std::numeric_limits`. ]] +[[`BOOST_NO_NUMERIC_LIMITS_LOWEST`][Standard library][ +Static function `numeric_limits::lowest()` is not available for use. +]] [[`BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS`][Standard library][ Constants such as `numeric_limits::is_signed` are not available for use at compile-time. diff --git a/include/boost/config/platform/cygwin.hpp b/include/boost/config/platform/cygwin.hpp index 5627dd60..8e1bcb01 100644 --- a/include/boost/config/platform/cygwin.hpp +++ b/include/boost/config/platform/cygwin.hpp @@ -41,6 +41,13 @@ // boilerplate code: #include + +// +// Cygwin lies about XSI conformance, there is no nl_types.h: +// +#ifdef BOOST_HAS_NL_TYPES_H +# undef BOOST_HAS_NL_TYPES_H +#endif diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index ea8faf14..e33fef12 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -125,6 +125,7 @@ # define BOOST_NO_0X_HDR_MUTEX # define BOOST_NO_0X_HDR_RATIO # define BOOST_NO_0X_HDR_THREAD +# define BOOST_NO_NUMERIC_LIMITS_LOWEST #ifdef _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp index 97a39f3e..16a842ae 100644 --- a/include/boost/config/stdlib/libcomo.hpp +++ b/include/boost/config/stdlib/libcomo.hpp @@ -58,6 +58,7 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST // // Intrinsic type_traits support. diff --git a/include/boost/config/stdlib/libstdcpp3.hpp b/include/boost/config/stdlib/libstdcpp3.hpp index 815d605c..01dd4907 100644 --- a/include/boost/config/stdlib/libstdcpp3.hpp +++ b/include/boost/config/stdlib/libstdcpp3.hpp @@ -115,6 +115,12 @@ # define BOOST_NO_0X_HDR_THREAD #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 +#endif + // C++0x headers not yet implemented // # define BOOST_NO_0X_HDR_CODECVT diff --git a/include/boost/config/stdlib/modena.hpp b/include/boost/config/stdlib/modena.hpp index 10792cda..147060d9 100644 --- a/include/boost/config/stdlib/modena.hpp +++ b/include/boost/config/stdlib/modena.hpp @@ -47,6 +47,7 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST #define BOOST_STDLIB "Modena C++ standard library" diff --git a/include/boost/config/stdlib/msl.hpp b/include/boost/config/stdlib/msl.hpp index beb15de6..8185e351 100644 --- a/include/boost/config/stdlib/msl.hpp +++ b/include/boost/config/stdlib/msl.hpp @@ -71,6 +71,7 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST #define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp index 830c32ef..dcd0af84 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -177,4 +177,5 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST diff --git a/include/boost/config/stdlib/sgi.hpp b/include/boost/config/stdlib/sgi.hpp index 293886bc..4d426473 100644 --- a/include/boost/config/stdlib/sgi.hpp +++ b/include/boost/config/stdlib/sgi.hpp @@ -130,6 +130,7 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST #define BOOST_STDLIB "SGI standard library" diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index bb6fe134..0e1c9b2b 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -225,6 +225,7 @@ namespace boost { using std::min; using std::max; } # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST #define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/include/boost/config/stdlib/vacpp.hpp b/include/boost/config/stdlib/vacpp.hpp index 3504971f..0fc092f0 100644 --- a/include/boost/config/stdlib/vacpp.hpp +++ b/include/boost/config/stdlib/vacpp.hpp @@ -37,6 +37,7 @@ # define BOOST_NO_STD_UNORDERED // deprecated; see following # define BOOST_NO_0X_HDR_UNORDERED_MAP # define BOOST_NO_0X_HDR_UNORDERED_SET +# define BOOST_NO_NUMERIC_LIMITS_LOWEST #define BOOST_STDLIB "Visual Age default standard library" diff --git a/test/all/Jamfile.v2 b/test/all/Jamfile.v2 index 483bf98f..3321838b 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 Tue Aug 17 09:59:01 2010 +# This file was automatically generated on Sat Sep 25 16:53:42 2010 # by libs/config/tools/generate.cpp # Copyright John Maddock. # Use, modification and distribution are subject to the @@ -367,6 +367,9 @@ test-suite "BOOST_NO_LIMITS" : test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" : [ run ../no_limits_const_exp_pass.cpp ] [ compile-fail ../no_limits_const_exp_fail.cpp ] ; +test-suite "BOOST_NO_NUMERIC_LIMITS_LOWEST" : +[ run ../no_limits_lowest_pass.cpp ] +[ compile-fail ../no_limits_lowest_fail.cpp ] ; test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" : [ run ../no_ll_limits_pass.cpp ] [ compile-fail ../no_ll_limits_fail.cpp ] ; diff --git a/test/boost_no_limits_lowest.ipp b/test/boost_no_limits_lowest.ipp new file mode 100644 index 00000000..ae09aa72 --- /dev/null +++ b/test/boost_no_limits_lowest.ipp @@ -0,0 +1,31 @@ +// (C) Copyright Vicente J. Botet Escriba 2010. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See http://www.boost.org/libs/config for most recent version. + +// MACRO: BOOST_NO_NUMERIC_LIMITS_LOWEST +// TITLE: static function lowest() in numeric_limits class +// DESCRIPTION: static function numeric_limits::lowest() are not available for use. + +#include + +namespace boost_no_numeric_limits_lowest{ + +int f() +{ + // this is never called, it just has to compile: + return std::numeric_limits::lowest(); +} + +int test() +{ + return 0; +} + +} + + + + diff --git a/test/config_info.cpp b/test/config_info.cpp index cf62f529..1f6bb1da 100644 --- a/test/config_info.cpp +++ b/test/config_info.cpp @@ -1026,6 +1026,7 @@ void print_boost_macros() PRINT_MACRO(BOOST_NO_MS_INT64_NUMERIC_LIMITS); PRINT_MACRO(BOOST_NO_NESTED_FRIENDSHIP); PRINT_MACRO(BOOST_NO_NULLPTR); + PRINT_MACRO(BOOST_NO_NUMERIC_LIMITS_LOWEST); PRINT_MACRO(BOOST_NO_OPERATORS_IN_NAMESPACE); PRINT_MACRO(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS); PRINT_MACRO(BOOST_NO_POINTER_TO_MEMBER_CONST); @@ -1086,6 +1087,8 @@ void print_boost_macros() + + // END GENERATED BLOCK PRINT_MACRO(BOOST_INTEL); diff --git a/test/config_test.cpp b/test/config_test.cpp index fdce11dd..90d13fd2 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -1,4 +1,4 @@ -// This file was automatically generated on Tue Aug 17 09:59:01 2010 +// This file was automatically generated on Sat Sep 25 16:53:42 2010 // by libs/config/tools/generate.cpp // Copyright John Maddock 2002-4. // Use, modification and distribution are subject to the @@ -342,6 +342,11 @@ namespace boost_no_limits = empty_boost; #else namespace boost_no_limits_compile_time_constants = empty_boost; #endif +#ifndef BOOST_NO_NUMERIC_LIMITS_LOWEST +#include "boost_no_limits_lowest.ipp" +#else +namespace boost_no_numeric_limits_lowest = empty_boost; +#endif #ifndef BOOST_NO_LONG_LONG_NUMERIC_LIMITS #include "boost_no_ll_limits.ipp" #else @@ -1436,6 +1441,11 @@ int main( int, char *[] ) std::cerr << "Failed test for BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS at: " << __FILE__ << ":" << __LINE__ << std::endl; ++error_count; } + if(0 != boost_no_numeric_limits_lowest::test()) + { + std::cerr << "Failed test for BOOST_NO_NUMERIC_LIMITS_LOWEST at: " << __FILE__ << ":" << __LINE__ << std::endl; + ++error_count; + } if(0 != boost_no_long_long_numeric_limits::test()) { std::cerr << "Failed test for BOOST_NO_LONG_LONG_NUMERIC_LIMITS at: " << __FILE__ << ":" << __LINE__ << std::endl;