Merge branch 'develop'

This commit is contained in:
jzmaddock
2015-05-05 13:19:37 +01:00
17 changed files with 81 additions and 26 deletions

View File

@ -335,7 +335,7 @@ explicit cxx14_constexpr ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO : cxx14_decltype_auto ; run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO : cxx14_decltype_auto ;
alias cxx14_decltype_auto : cxx14_decltype_auto.output ; alias cxx14_decltype_auto : cxx14_decltype_auto.output ;
explicit cxx14_decltype_auto ; explicit cxx14_decltype_auto ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATOR : cxx14_digit_separator ; run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS : cxx14_digit_separators ;
alias cxx14_digit_separator : cxx14_digit_separator.output ; alias cxx14_digit_separator : cxx14_digit_separator.output ;
explicit cxx14_digit_separator ; explicit cxx14_digit_separator ;
run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS : cxx14_generic_lambdas ; run-simple test_case.cpp : : : <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS : cxx14_generic_lambdas ;

View File

@ -8,6 +8,8 @@
#if !defined(__arm__) && !defined(__thumb__) && \ #if !defined(__arm__) && !defined(__thumb__) && \
!defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \ !defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \
!defined(_ARM) && !defined(_M_ARM) !defined(_ARM) && !defined(_M_ARM) && \
!defined(__aarch64__)
#error "Not ARM" #error "Not ARM"
#endif #endif

View File

@ -423,7 +423,7 @@ namespace test = boost_no_cxx14_decltype_auto;
#endif #endif
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS #ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
# include "../test/boost_no_cxx14_digit_separator.ipp" # include "../test/boost_no_cxx14_digit_separator.ipp"
namespace test = boost_no_cxx14_digit_separator; namespace test = boost_no_cxx14_digit_separators;
#endif #endif
#ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS #ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS
# include "../test/boost_no_cxx14_generic_lambda.ipp" # include "../test/boost_no_cxx14_generic_lambda.ipp"

View File

@ -2960,6 +2960,19 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NUMERIC_LIMITS</span></code>
</p>
</td>
<td>
<p>
The standard library <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">limits</span><span class="special">&gt;</span></code>
header does not support the C++11 version of <code class="computeroutput"><span class="identifier">numeric_limits</span></code>.
</p>
</td>
</tr>
<tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RANGE_BASED_FOR</span></code> <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_RANGE_BASED_FOR</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: October 21, 2014 at 11:37:59 GMT</small></p></td> <td align="left"><p><small>Last revised: May 04, 2015 at 13:34:36 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

@ -670,6 +670,9 @@ compilers implementing an early draft of the C++11 standard (in particular, inco
]] ]]
[[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`. [[`BOOST_NO_CXX11_NULLPTR`][The compiler does not support `nullptr`.
]] ]]
[[`BOOST_NO_CXX11_NUMERIC_LIMITS`][The standard library `<limits>` header does
not support the C++11 version of `numeric_limits`.
]]
[[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support [[`BOOST_NO_CXX11_RANGE_BASED_FOR`][The compiler does not support
range-based for statements. range-based for statements.
]] ]]

View File

@ -67,7 +67,7 @@
#endif #endif
// MSVC (including the latest checked version) has not yet completely // MSVC before version 14 has not yet completely
// implemented value-initialization, as is reported: // implemented value-initialization, as is reported:
// "VC++ does not value-initialize members of derived classes without // "VC++ does not value-initialize members of derived classes without
// user-declared constructor", reported in 2009 by Sylvester Hesp: // user-declared constructor", reported in 2009 by Sylvester Hesp:
@ -80,7 +80,9 @@
// https://connect.microsoft.com/VisualStudio/feedback/details/100744 // https://connect.microsoft.com/VisualStudio/feedback/details/100744
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010) // (Niels Dekker, LKEB, May 2010)
#if _MSC_VER < 1900
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
#ifndef _NATIVE_WCHAR_T_DEFINED #ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T # define BOOST_NO_INTRINSIC_WCHAR_T
@ -172,9 +174,9 @@
# define BOOST_NO_CXX11_DECLTYPE_N3276 # define BOOST_NO_CXX11_DECLTYPE_N3276
#endif #endif
// C++11 features supported by VC++ 14 (aka 2015) Preview // C++11 features supported by VC++ 14 (aka 2015) CTP 5
// //
#if (_MSC_FULL_VER < 190022310) #if (_MSC_FULL_VER < 190022512)
# define BOOST_NO_CXX11_NOEXCEPT # define BOOST_NO_CXX11_NOEXCEPT
# define BOOST_NO_CXX11_REF_QUALIFIERS # define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS # define BOOST_NO_CXX11_USER_DEFINED_LITERALS
@ -188,6 +190,7 @@
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_BINARY_LITERALS # define BOOST_NO_CXX14_BINARY_LITERALS
# define BOOST_NO_CXX14_GENERIC_LAMBDAS # define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif #endif
// C++11 features not supported by any versions // C++11 features not supported by any versions
@ -202,9 +205,6 @@
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR # define BOOST_NO_CXX14_CONSTEXPR
#endif #endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES # define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif #endif
@ -284,8 +284,8 @@
#endif #endif
// //
// last known and checked version is 19.00.22129 (VC14 Preview): // last known and checked version is 19.00.22816 (VC++ 2015 RC):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022310) #if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022816)
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "Unknown compiler version - please run the configure tests and report the results"
# else # else

View File

@ -11,7 +11,6 @@
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#define BOOST_HAS_STDINT_H #define BOOST_HAS_STDINT_H
#define BOOST_HASH_NO_EXTENSIONS
#ifndef BOOST_DISABLE_THREADS #ifndef BOOST_DISABLE_THREADS
# define BOOST_HAS_THREADS # define BOOST_HAS_THREADS
@ -26,7 +25,6 @@
// thread API's not auto detected: // thread API's not auto detected:
// //
#define BOOST_HAS_SCHED_YIELD #define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_PTHREAD_YIELD
#define BOOST_HAS_GETTIMEOFDAY #define BOOST_HAS_GETTIMEOFDAY
// boilerplate code: // boilerplate code:

View File

@ -123,7 +123,7 @@
#ifdef __clang__ #ifdef __clang__
#if __has_include(<experimental/any>) #if __has_include(<experimental/any>)
# define BOOST_LIBSTDCXX_VERSION 50000 # define BOOST_LIBSTDCXX_VERSION 50100
#elif __has_include(<shared_mutex>) #elif __has_include(<shared_mutex>)
# define BOOST_LIBSTDCXX_VERSION 40900 # define BOOST_LIBSTDCXX_VERSION 40900
#elif __has_include(<ext/cmath>) #elif __has_include(<ext/cmath>)
@ -213,6 +213,8 @@
# define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_HDR_ATOMIC
# define BOOST_NO_CXX11_HDR_THREAD # define BOOST_NO_CXX11_HDR_THREAD
#endif #endif
// C++0x features in GCC 4.9.0 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) #if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
// Although <regex> is present and compilable against, the actual implementation is not functional // Although <regex> is present and compilable against, the actual implementation is not functional
// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively. // even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively.
@ -223,13 +225,15 @@
// As of clang-3.6, libstdc++ header <atomic> throws up errors with clang: // As of clang-3.6, libstdc++ header <atomic> throws up errors with clang:
# define BOOST_NO_CXX11_HDR_ATOMIC # define BOOST_NO_CXX11_HDR_ATOMIC
#endif #endif
// C++0x headers not yet (fully!) implemented
// //
// C++0x features in GCC 5.1 and later
//
#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11)
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
# define BOOST_NO_CXX11_HDR_CODECVT # define BOOST_NO_CXX11_HDR_CODECVT
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR # define BOOST_NO_CXX11_ATOMIC_SMART_PTR
# define BOOST_NO_CXX11_STD_ALIGN # define BOOST_NO_CXX11_STD_ALIGN
#endif
// //
// Headers not present on Solaris with the Oracle compiler: // Headers not present on Solaris with the Oracle compiler:

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 105800 #define BOOST_VERSION 105900
// //
// 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_58" #define BOOST_LIB_VERSION "1_59"
#endif #endif

View File

@ -19,6 +19,11 @@ import ../checks/config : requires ;
local is_unix = [ modules.peek : UNIX ] ; local is_unix = [ modules.peek : UNIX ] ;
lib atomic ;
link config_info.cpp atomic : : has_atomic_lib ;
explicit has_atomic_lib ;
if $(is_unix) if $(is_unix)
{ {
local osname = [ SHELL uname ] ; local osname = [ SHELL uname ] ;
@ -38,6 +43,7 @@ test-suite config
: #input-files : #input-files
: #requirements : #requirements
<threading>multi <threading>multi
[ check-target-builds has_atomic_lib : <source>atomic ]
: config_test_threaded : config_test_threaded
] ]
[ run config_test.cpp [ run config_test.cpp
@ -48,6 +54,7 @@ test-suite config
<target-os>linux:<linkflags>-lpthread <target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt <target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS) <toolset>gcc:<linkflags>$(OTHERFLAGS)
[ check-target-builds has_atomic_lib : <source>atomic ]
] ]
[ run config_test.cpp [ run config_test.cpp
: #args : #args
@ -57,6 +64,7 @@ test-suite config
<target-os>linux:<linkflags>-lpthread <target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt <target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS) <toolset>gcc:<linkflags>$(OTHERFLAGS)
[ check-target-builds has_atomic_lib : <source>atomic ]
: config_test_no_rtti : config_test_no_rtti
] ]
[ run config_test.cpp [ run config_test.cpp
@ -67,6 +75,7 @@ test-suite config
<target-os>linux:<linkflags>-lpthread <target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt <target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS) <toolset>gcc:<linkflags>$(OTHERFLAGS)
[ check-target-builds has_atomic_lib : <source>atomic ]
: config_test_no_except : config_test_no_except
] ]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ] [ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ]

View File

@ -331,7 +331,7 @@ test-suite "BOOST_NO_CXX14_CONSTEXPR" :
test-suite "BOOST_NO_CXX14_DECLTYPE_AUTO" : test-suite "BOOST_NO_CXX14_DECLTYPE_AUTO" :
[ run ../no_cxx14_decltype_auto_pass.cpp ] [ run ../no_cxx14_decltype_auto_pass.cpp ]
[ compile-fail ../no_cxx14_decltype_auto_fail.cpp ] ; [ compile-fail ../no_cxx14_decltype_auto_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_DIGIT_SEPARATOR" : test-suite "BOOST_NO_CXX14_DIGIT_SEPARATORS" :
[ run ../no_cxx14_digit_separator_pass.cpp ] [ run ../no_cxx14_digit_separator_pass.cpp ]
[ compile-fail ../no_cxx14_digit_separator_fail.cpp ] ; [ compile-fail ../no_cxx14_digit_separator_fail.cpp ] ;
test-suite "BOOST_NO_CXX14_GENERIC_LAMBDAS" : test-suite "BOOST_NO_CXX14_GENERIC_LAMBDAS" :

View File

@ -36,6 +36,32 @@ constexpr const A a = 42;
X<a> xx; // OK: unique conversion to int X<a> xx; // OK: unique conversion to int
// virtual function
struct B
{
virtual void vf() {}
};
struct C : B
{
constexpr C() {}
};
// aggregate initialization
struct D
{
int val[2];
constexpr D() : val() {}
};
// virtual base
struct E
{
};
struct F : virtual E
{
};
constexpr F& f(F& out) { return out; }
int test() int test()
{ {
int i = square(5); int i = square(5);

View File

@ -11,7 +11,7 @@
// TITLE: C++14 digit separator unavailable // TITLE: C++14 digit separator unavailable
// DESCRIPTION: The compiler does not support C++14 digit separator // DESCRIPTION: The compiler does not support C++14 digit separator
namespace boost_no_cxx14_digit_separator namespace boost_no_cxx14_digit_separators
{ {
int test() int test()

View File

@ -280,7 +280,7 @@ namespace boost_no_cxx14_decltype_auto = empty_boost;
#ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS #ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS
#include "boost_no_cxx14_digit_separator.ipp" #include "boost_no_cxx14_digit_separator.ipp"
#else #else
namespace boost_no_cxx14_digit_separator = empty_boost; namespace boost_no_cxx14_digit_separators = empty_boost;
#endif #endif
#ifndef BOOST_NO_CXX14_GENERIC_LAMBDAS #ifndef BOOST_NO_CXX14_GENERIC_LAMBDAS
#include "boost_no_cxx14_generic_lambda.ipp" #include "boost_no_cxx14_generic_lambda.ipp"
@ -1501,7 +1501,7 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX14_DECLTYPE_AUTO at: " << __FILE__ << ":" << __LINE__ << std::endl; std::cerr << "Failed test for BOOST_NO_CXX14_DECLTYPE_AUTO at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count; ++error_count;
} }
if(0 != boost_no_cxx14_digit_separator::test()) if(0 != boost_no_cxx14_digit_separators::test())
{ {
std::cerr << "Failed test for BOOST_NO_CXX14_DIGIT_SEPARATORS at: " << __FILE__ << ":" << __LINE__ << std::endl; std::cerr << "Failed test for BOOST_NO_CXX14_DIGIT_SEPARATORS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count; ++error_count;

View File

@ -32,6 +32,6 @@
int main( int, char *[] ) int main( int, char *[] )
{ {
return boost_no_cxx14_digit_separator::test(); return boost_no_cxx14_digit_separators::test();
} }

View File

@ -27,11 +27,11 @@
#ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS #ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS
#include "boost_no_cxx14_digit_separator.ipp" #include "boost_no_cxx14_digit_separator.ipp"
#else #else
namespace boost_no_cxx14_digit_separator = empty_boost; namespace boost_no_cxx14_digit_separators = empty_boost;
#endif #endif
int main( int, char *[] ) int main( int, char *[] )
{ {
return boost_no_cxx14_digit_separator::test(); return boost_no_cxx14_digit_separators::test();
} }