Merge branch 'develop'

This commit is contained in:
jzmaddock
2015-10-15 10:45:05 +01:00
26 changed files with 284 additions and 56 deletions

View File

@@ -1,6 +1,6 @@
# #
# *** DO NOT EDIT THIS FILE BY HAND *** # *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Fri Jun 26 21:48:00 2015 # This file was automatically generated on Thu Aug 13 16:32:12 2015
# by libs/config/tools/generate.cpp # by libs/config/tools/generate.cpp
# Copyright John Maddock. # Copyright John Maddock.
# Use, modification and distribution are subject to the # Use, modification and distribution are subject to the
@@ -41,6 +41,9 @@ explicit dirent_h ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_EXPM1 : expm1 ; run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_EXPM1 : expm1 ;
alias expm1 : expm1.output ; alias expm1 : expm1.output ;
explicit expm1 ; explicit expm1 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_FLOAT128 : float128 ;
alias float128 : float128.output ;
explicit float128 ;
run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_FTIME : ftime ; run-simple test_case.cpp : : : <define>TEST_BOOST_HAS_FTIME : ftime ;
alias ftime : ftime.output ; alias ftime : ftime.output ;
explicit ftime ; explicit ftime ;

View File

@@ -1,4 +1,4 @@
// This file was automatically generated on Fri Jun 26 21:48:00 2015 // This file was automatically generated on Thu Aug 13 16:32:12 2015
// by libs/config/tools/generate.cpp // by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4. // Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
@@ -29,6 +29,10 @@ namespace test = boost_has_dirent_h;
# include "../test/boost_has_expm1.ipp" # include "../test/boost_has_expm1.ipp"
namespace test = boost_has_expm1; namespace test = boost_has_expm1;
#endif #endif
#ifdef TEST_BOOST_HAS_FLOAT128
# include "../test/boost_has_float128.ipp"
namespace test = boost_has_float128;
#endif
#ifdef TEST_BOOST_HAS_FTIME #ifdef TEST_BOOST_HAS_FTIME
# include "../test/boost_has_ftime.ipp" # include "../test/boost_has_ftime.ipp"
namespace test = boost_has_ftime; namespace test = boost_has_ftime;

View File

@@ -1427,6 +1427,25 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_FLOAT128</span></code>
</p>
</td>
<td>
<p>
Compiler
</p>
</td>
<td>
<p>
The compiler has <code class="computeroutput"><span class="identifier">__float128</span></code>
as a native type which is distinct from all the regular C++ floating
point types.
</p>
</td>
</tr>
<tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_FTIME</span></code> <code class="computeroutput"><span class="identifier">BOOST_HAS_FTIME</span></code>

View File

@@ -988,7 +988,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: July 07, 2015 at 10:18:34 GMT</small></p></td> <td align="left"><p><small>Last revised: August 13, 2015 at 16:11:58 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@@ -348,6 +348,9 @@ The platform has the POSIX header `<dirent.h>`.
[[`BOOST_HAS_EXPM1`][Platform][ [[`BOOST_HAS_EXPM1`][Platform][
The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>` The platform has the functions `expm1`, `expm1f` and `expm1l` in `<math.h>`
]] ]]
[[`BOOST_HAS_FLOAT128`][Compiler][
The compiler has `__float128` as a native type which is distinct
from all the regular C++ floating point types.]]
[[`BOOST_HAS_FTIME`][Platform][ [[`BOOST_HAS_FTIME`][Platform][
The platform has the Win32 API type FTIME. The platform has the Win32 API type FTIME.
]] ]]

View File

@@ -23,6 +23,10 @@
#define __has_extension __has_feature #define __has_extension __has_feature
#endif #endif
#ifndef __has_attribute
#define __has_attribute(x) 0
#endif
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) #if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
@@ -255,13 +259,15 @@
// All versions with __cplusplus above this value seem to support this: // All versions with __cplusplus above this value seem to support this:
# define BOOST_NO_CXX14_DIGIT_SEPARATORS # define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif #endif
//
// __builtin_unreachable:
// Unused attribute: #if defined(__has_builtin) && __has_builtin(__builtin_unreachable)
#if defined(__GNUC__) && (__GNUC__ >= 4) #define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
#endif #endif
// Clang has supported the 'unused' attribute since the first release.
#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
#ifndef BOOST_COMPILER #ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__ # define BOOST_COMPILER "Clang version " __clang_version__
#endif #endif

View File

@@ -143,6 +143,19 @@
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) #if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
# define BOOST_HAS_INT128 # define BOOST_HAS_INT128
#endif #endif
//
// Recent GCC versions have a __float128 native type, we need to
// include a std lib header to detect this - not ideal, but we'll
// be including <cstddef> later anyway when we select the std lib.
//
#ifdef __cplusplus
#include <cstddef>
#else
#include <stddef.h>
#endif
#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__)
# define BOOST_HAS_FLOAT128
#endif
// C++0x features in 4.3.n and later // C++0x features in 4.3.n and later
// //
@@ -263,7 +276,12 @@
// //
// Unused attribute: // Unused attribute:
#if __GNUC__ >= 4 #if __GNUC__ >= 4
# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused)) # define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
#endif
//
// __builtin_unreachable:
#if BOOST_GCC_VERSION >= 40800
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif #endif
#ifndef BOOST_COMPILER #ifndef BOOST_COMPILER

View File

@@ -20,6 +20,9 @@
#include <boost/config/compiler/visualc.hpp> #include <boost/config/compiler/visualc.hpp>
#undef BOOST_MSVC
#undef BOOST_MSVC_FULL_VER
#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900) #if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
// //
// These appear to be supported, even though VC++ may not support them: // These appear to be supported, even though VC++ may not support them:
@@ -36,6 +39,9 @@
#include <boost/config/compiler/gcc.hpp> #include <boost/config/compiler/gcc.hpp>
#undef BOOST_GCC_VERSION
#undef BOOST_GCC_CXX11
#endif #endif
#undef BOOST_COMPILER #undef BOOST_COMPILER

View File

@@ -125,19 +125,15 @@
#define BOOST_NO_CXX11_FINAL #define BOOST_NO_CXX11_FINAL
#endif #endif
// #if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
// Issues that effect all known versions:
//
// Variadic templates pass our test case, but enabling this
// causes the compiler to issue a signal 11 and bail out
// in various libraries. The others fail our test cases.
//
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES #define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS #define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#define BOOST_NO_CXX11_DECLTYPE_N3276 #define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS #define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_REF_QUALIFIERS
#endif
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
// //
// C++0x features // C++0x features

View File

@@ -0,0 +1,18 @@
// Copyright Nuxi, https://nuxi.nl/ 2015.
// 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)
#define BOOST_PLATFORM "CloudABI"
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_EXPM1
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_LOG1P
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD

View File

@@ -74,6 +74,14 @@
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME # define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif #endif
//
// Windows Runtime
//
#if defined(WINAPI_FAMILY) && \
(WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
# define BOOST_NO_ANSI_APIS
#endif
#ifndef BOOST_DISABLE_WIN32 #ifndef BOOST_DISABLE_WIN32
// WEK: Added // WEK: Added
#define BOOST_HAS_FTIME #define BOOST_HAS_FTIME

View File

@@ -80,6 +80,10 @@
#elif defined(__VMS) #elif defined(__VMS)
// VMS: // VMS:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp" # define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
#elif defined(__CloudABI__)
// Nuxi CloudABI:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
#else #else
# if defined(unix) \ # if defined(unix) \

View File

@@ -172,10 +172,19 @@
// Bug specific to VC14, // Bug specific to VC14,
// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t // See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2 // and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
#if _CPPLIB_VER == 650 #if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650)
# define BOOST_NO_CXX11_HDR_CODECVT # define BOOST_NO_CXX11_HDR_CODECVT
#endif #endif
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr is not available.
// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
# define BOOST_NO_AUTO_PTR
# endif
#endif
#ifdef _CPPLIB_VER #ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
#else #else

View File

@@ -251,6 +251,10 @@
#define BOOST_NO_CXX11_HDR_FUTURE #define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST #define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_ATOMIC #define BOOST_NO_CXX11_HDR_ATOMIC
// shared_ptr is present, but is not convertible to bool
// which causes all kinds of problems especially in Boost.Thread
// but probably elsewhere as well.
#define BOOST_NO_CXX11_SMART_PTR
#endif #endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) #if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))

View File

@@ -444,10 +444,12 @@ namespace std {
// is defined, in which case it evaluates to return x; Use when you have a return // is defined, in which case it evaluates to return x; Use when you have a return
// statement that can never be reached. // statement that can never be reached.
#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION #ifndef BOOST_UNREACHABLE_RETURN
# define BOOST_UNREACHABLE_RETURN(x) return x; # ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
#else # define BOOST_UNREACHABLE_RETURN(x) return x;
# define BOOST_UNREACHABLE_RETURN(x) # else
# define BOOST_UNREACHABLE_RETURN(x)
# endif
#endif #endif
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------// // BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
@@ -501,6 +503,16 @@ namespace boost{
# endif # endif
} }
#endif #endif
// same again for __float128:
#if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus)
namespace boost {
# ifdef __GNUC__
__extension__ typedef __float128 float128_type;
# else
typedef __float128 float128_type;
# endif
}
#endif
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// // BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//

View File

@@ -69,7 +69,7 @@
# endif # endif
#ifdef __QNX__ #if defined(__QNX__) && defined(__EXT_QNX)
// QNX (Dinkumware stdlib) defines these as non-standard names. // QNX (Dinkumware stdlib) defines these as non-standard names.
// Reflect to the standard names. // Reflect to the standard names.

View File

@@ -19,7 +19,7 @@
// BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version // BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 105900 #define BOOST_VERSION 106000
// //
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
@@ -27,6 +27,6 @@
// number, y is the minor version number, and z is the patch level if not 0. // number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to. // This is used by <config/auto_link.hpp> to select which library version to link to.
#define BOOST_LIB_VERSION "1_59" #define BOOST_LIB_VERSION "1_60"
#endif #endif

View File

@@ -78,7 +78,7 @@ test-suite config
[ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off : config_info_no_except ] [ run config_info.cpp : : : <test-info>always_show_run_output <exception-handling>off : config_info_no_except ]
[ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ] [ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
[ run abi/abi_test.cpp abi/main.cpp ] [ run abi/abi_test.cpp abi/main.cpp ]
[ run limits_test.cpp ../../test/build//boost_test_exec_monitor ] [ run limits_test.cpp ]
[ run link/main.cpp link//link_test [ run link/main.cpp link//link_test
: #args : #args
: #input-files : #input-files

View File

@@ -1,7 +1,7 @@
# #
# Regression test Jamfile for boost configuration setup. # Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND *** # *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Fri Jun 26 21:48:00 2015 # This file was automatically generated on Thu Aug 13 16:32:12 2015
# by libs/config/tools/generate.cpp # by libs/config/tools/generate.cpp
# Copyright John Maddock. # Copyright John Maddock.
# Use, modification and distribution are subject to the # Use, modification and distribution are subject to the
@@ -37,6 +37,9 @@ test-suite "BOOST_HAS_DIRENT_H" :
test-suite "BOOST_HAS_EXPM1" : test-suite "BOOST_HAS_EXPM1" :
[ run ../has_expm1_pass.cpp ] [ run ../has_expm1_pass.cpp ]
[ compile-fail ../has_expm1_fail.cpp ] ; [ compile-fail ../has_expm1_fail.cpp ] ;
test-suite "BOOST_HAS_FLOAT128" :
[ run ../has_float128_pass.cpp ]
[ compile-fail ../has_float128_fail.cpp ] ;
test-suite "BOOST_HAS_FTIME" : test-suite "BOOST_HAS_FTIME" :
[ run ../has_ftime_pass.cpp ] [ run ../has_ftime_pass.cpp ]
[ compile-fail ../has_ftime_fail.cpp ] ; [ compile-fail ../has_ftime_fail.cpp ] ;

View File

@@ -0,0 +1,29 @@
// (C) Copyright John Maddock 2012.
// 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_FLOAT128
// TITLE: __float128
// DESCRIPTION: The platform supports __float128.
#include <cstdlib>
namespace boost_has_float128{
int test()
{
#ifdef __GNUC__
__extension__ __float128 big_float = 0.0Q;
#else
__float128 big_float = 0.0Q;
#endif
(void)&big_float;
return 0;
}
}

View File

@@ -937,6 +937,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME); PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
PRINT_MACRO(BOOST_HAS_DIRENT_H); PRINT_MACRO(BOOST_HAS_DIRENT_H);
PRINT_MACRO(BOOST_HAS_EXPM1); PRINT_MACRO(BOOST_HAS_EXPM1);
PRINT_MACRO(BOOST_HAS_FLOAT128);
PRINT_MACRO(BOOST_HAS_FTIME); PRINT_MACRO(BOOST_HAS_FTIME);
PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME); PRINT_MACRO(BOOST_HAS_GETSYSTEMTIMEASFILETIME);
PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY); PRINT_MACRO(BOOST_HAS_GETTIMEOFDAY);
@@ -1125,6 +1126,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_VOID_RETURNS); PRINT_MACRO(BOOST_NO_VOID_RETURNS);
// END GENERATED BLOCK // END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL); PRINT_MACRO(BOOST_INTEL);

View File

@@ -1,4 +1,4 @@
// This file was automatically generated on Fri Jun 26 21:48:00 2015 // This file was automatically generated on Thu Aug 13 16:32:12 2015
// by libs/config/tools/generate.cpp // by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4. // Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
@@ -753,6 +753,11 @@ namespace boost_has_dirent_h = empty_boost;
#else #else
namespace boost_has_expm1 = empty_boost; namespace boost_has_expm1 = empty_boost;
#endif #endif
#ifdef BOOST_HAS_FLOAT128
#include "boost_has_float128.ipp"
#else
namespace boost_has_float128 = empty_boost;
#endif
#ifdef BOOST_HAS_FTIME #ifdef BOOST_HAS_FTIME
#include "boost_has_ftime.ipp" #include "boost_has_ftime.ipp"
#else #else
@@ -1016,6 +1021,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_HAS_EXPM1 at: " << __FILE__ << ":" << __LINE__ << std::endl; std::cerr << "Failed test for BOOST_HAS_EXPM1 at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count; ++error_count;
} }
if(0 != boost_has_float128::test())
{
std::cerr << "Failed test for BOOST_HAS_FLOAT128 at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_has_ftime::test()) if(0 != boost_has_ftime::test())
{ {
std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl; std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 13 16:29:35 2015
// 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_HAS_FLOAT128
// This file should not compile, if it does then
// BOOST_HAS_FLOAT128 should be defined.
// See file boost_has_float128.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 <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_HAS_FLOAT128
#include "boost_has_float128.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_has_float128::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Thu Aug 13 16:29:35 2015
// 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_HAS_FLOAT128
// This file should compile, if it does not then
// BOOST_HAS_FLOAT128 should not be defined.
// See file boost_has_float128.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 <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_HAS_FLOAT128
#include "boost_has_float128.ipp"
#else
namespace boost_has_float128 = empty_boost;
#endif
int main( int, char *[] )
{
return boost_has_float128::test();
}

View File

@@ -9,8 +9,8 @@
*/ */
#include <boost/limits.hpp> #include <boost/limits.hpp>
#define BOOST_INCLUDE_MAIN #include <boost/detail/lightweight_main.hpp>
#include <boost/test/test_tools.hpp> #include <boost/core/lightweight_test.hpp>
#include <iostream> #include <iostream>
/* /*
@@ -82,10 +82,10 @@ void test_integral_limits(const T &, const char * msg)
<< ", max: " << make_char_numeric_for_streaming((lim::max)()) << ", max: " << make_char_numeric_for_streaming((lim::max)())
<< std::endl; << std::endl;
BOOST_CHECK(static_cast<bool>(lim::is_specialized)); BOOST_TEST(static_cast<bool>(lim::is_specialized));
BOOST_CHECK(static_cast<bool>(lim::is_integer)); BOOST_TEST(static_cast<bool>(lim::is_integer));
// BOOST_CHECK(lim::is_modulo); // BOOST_TEST(lim::is_modulo);
BOOST_CHECK(static_cast<bool>((lim::min)() < (lim::max)())); BOOST_TEST(static_cast<bool>((lim::min)() < (lim::max)()));
} }
template <class T> template <class T>
@@ -107,10 +107,10 @@ void test_float_limits(const T &, const char * msg)
std::cout << "\nTesting " << msg << std::endl; std::cout << "\nTesting " << msg << std::endl;
typedef std::numeric_limits<T> lim; typedef std::numeric_limits<T> lim;
BOOST_CHECK(static_cast<bool>(lim::is_specialized)); BOOST_TEST(static_cast<bool>(lim::is_specialized));
BOOST_CHECK(static_cast<bool>(!lim::is_modulo)); BOOST_TEST(static_cast<bool>(!lim::is_modulo));
BOOST_CHECK(static_cast<bool>(!lim::is_integer)); BOOST_TEST(static_cast<bool>(!lim::is_integer));
BOOST_CHECK(static_cast<bool>(lim::is_signed)); BOOST_TEST(static_cast<bool>(lim::is_signed));
const T infinity = lim::infinity(); const T infinity = lim::infinity();
const T qnan = lim::quiet_NaN(); const T qnan = lim::quiet_NaN();
@@ -127,15 +127,15 @@ void test_float_limits(const T &, const char * msg)
print_hex_val(qnan, "qnan"); print_hex_val(qnan, "qnan");
print_hex_val(snan, "snan"); print_hex_val(snan, "snan");
BOOST_CHECK((lim::max)() > 1000); BOOST_TEST((lim::max)() > 1000);
BOOST_CHECK((lim::min)() > 0); BOOST_TEST((lim::min)() > 0);
BOOST_CHECK((lim::min)() < 0.001); BOOST_TEST((lim::min)() < 0.001);
BOOST_CHECK(lim::epsilon() > 0); BOOST_TEST(lim::epsilon() > 0);
if(lim::is_iec559) { if(lim::is_iec559) {
BOOST_CHECK(static_cast<bool>(lim::has_infinity)); BOOST_TEST(static_cast<bool>(lim::has_infinity));
BOOST_CHECK(static_cast<bool>(lim::has_quiet_NaN)); BOOST_TEST(static_cast<bool>(lim::has_quiet_NaN));
BOOST_CHECK(static_cast<bool>(lim::has_signaling_NaN)); BOOST_TEST(static_cast<bool>(lim::has_signaling_NaN));
} else { } else {
std::cout << "Does not claim IEEE conformance" << std::endl; std::cout << "Does not claim IEEE conformance" << std::endl;
} }
@@ -143,8 +143,8 @@ void test_float_limits(const T &, const char * msg)
if(lim::has_infinity) { if(lim::has_infinity) {
// Make sure those values are not 0 or similar nonsense. // Make sure those values are not 0 or similar nonsense.
// Infinity must compare as if larger than the maximum representable value. // Infinity must compare as if larger than the maximum representable value.
BOOST_CHECK(infinity > (lim::max)()); BOOST_TEST(infinity > (lim::max)());
BOOST_CHECK(-infinity < -(lim::max)()); BOOST_TEST(-infinity < -(lim::max)());
} else { } else {
std::cout << "Does not have infinity" << std::endl; std::cout << "Does not have infinity" << std::endl;
} }
@@ -153,26 +153,26 @@ void test_float_limits(const T &, const char * msg)
// NaNs shall always compare "false" when compared for equality // NaNs shall always compare "false" when compared for equality
// If one of these fail, your compiler may be optimizing incorrectly, // If one of these fail, your compiler may be optimizing incorrectly,
// or the standard library is incorrectly configured. // or the standard library is incorrectly configured.
BOOST_CHECK(! (qnan == 42)); BOOST_TEST(! (qnan == 42));
BOOST_CHECK(qnan != 42); BOOST_TEST(qnan != 42);
if(lim::is_iec559) if(lim::is_iec559)
{ {
BOOST_CHECK(! (qnan == qnan)); BOOST_TEST(! (qnan == qnan));
BOOST_CHECK(qnan != qnan); BOOST_TEST(qnan != qnan);
} }
// The following tests may cause arithmetic traps. // The following tests may cause arithmetic traps.
// BOOST_CHECK(! (qnan < 42)); // BOOST_TEST(! (qnan < 42));
// BOOST_CHECK(! (qnan > 42)); // BOOST_TEST(! (qnan > 42));
// BOOST_CHECK(! (qnan <= 42)); // BOOST_TEST(! (qnan <= 42));
// BOOST_CHECK(! (qnan >= 42)); // BOOST_TEST(! (qnan >= 42));
} else { } else {
std::cout << "Does not have QNaN" << std::endl; std::cout << "Does not have QNaN" << std::endl;
} }
} }
int test_main(int, char*[]) int cpp_main(int, char*[])
{ {
test_integral_limits(bool(), "bool"); test_integral_limits(bool(), "bool");
test_integral_limits(char(), "char"); test_integral_limits(char(), "char");

View File

@@ -13,7 +13,7 @@
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp> #include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp> #include <boost/filesystem/fstream.hpp>
#include <boost/test/included/prg_exec_monitor.hpp> #include <boost/detail/lightweight_main.hpp>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <string> #include <string>