Merge branch 'develop'

This commit is contained in:
jzmaddock
2014-10-26 13:36:42 +01:00
26 changed files with 81 additions and 60 deletions

View File

@ -421,7 +421,7 @@ namespace test = boost_no_cxx14_constexpr;
# include "../test/boost_no_cxx14_decltype_auto.ipp"
namespace test = boost_no_cxx14_decltype_auto;
#endif
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATOR
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
# include "../test/boost_no_cxx14_digit_separator.ipp"
namespace test = boost_no_cxx14_digit_separator;
#endif

View File

@ -3545,7 +3545,7 @@
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_DIGIT_SEPARATOR</span></code>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_DIGIT_SEPARATORS</span></code>
</p>
</td>
<td>
@ -3571,7 +3571,7 @@
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURE</span></code>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES</span></code>
</p>
</td>
<td>

View File

@ -988,7 +988,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: October 12, 2014 at 16:00:14 GMT</small></p></td>
<td align="left"><p><small>Last revised: October 21, 2014 at 11:37:59 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -892,9 +892,9 @@ Foo foo = { 0 };
[[`BOOST_NO_CXX14_BINARY_LITERALS`][The compiler does not binary literals (e.g. `0b1010`).]]
[[`BOOST_NO_CXX14_CONSTEXPR`][The compiler does not support relaxed `constexpr`.]]
[[`BOOST_NO_CXX14_DECLTYPE_AUTO`][The compiler does not support `decltype(auto)`.]]
[[`BOOST_NO_CXX14_DIGIT_SEPARATOR`][The compiler does not support digit separators (e.g. `1'000'000`).]]
[[`BOOST_NO_CXX14_DIGIT_SEPARATORS`][The compiler does not support digit separators (e.g. `1'000'000`).]]
[[`BOOST_NO_CXX14_GENERIC_LAMBDAS`][The compiler does not support generic lambda (e.g. `[](auto v){ }`).]]
[[`BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURE`][The compiler does not support initialized lambda capture (e.g. `[foo = 42]{ }`).]]
[[`BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES`][The compiler does not support initialized lambda capture (e.g. `[foo = 42]{ }`).]]
[[`BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION`][The compiler does not support return type deduction for normal functions (e.g. `auto f() { return val; }`).]]
[[`BOOST_NO_CXX14_VARIABLE_TEMPLATES`][The compiler does not support variable template (e.g. `template <class T> T kibi = T(1024);`).]]
]

View File

@ -211,7 +211,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -225,7 +225,22 @@
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !(__has_feature(cxx_relaxed_constexpr) || __has_extension(cxx_relaxed_constexpr))
// clang < 3.5 has a defect with dependent type, like following.
//
// template <class T>
// constexpr typename enable_if<pred<T> >::type foo(T &)
// { } // error: no return statement in constexpr function
//
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
// Therefore we don't care such case.
//
// Note that we can't check Clang version directly as the numbering system changes depending who's
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
// so instead verify that we have a feature that was introduced at the same time as working C++14
// constexpr (generic lambda's in this case):
//
#if !__has_feature(cxx_generic_lambdas) \
|| !(__has_feature(cxx_relaxed_constexpr) || __has_extension(cxx_relaxed_constexpr))
# define BOOST_NO_CXX14_CONSTEXPR
#endif
@ -237,8 +252,9 @@
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
#if ((__clang_major__ < 3) || (__clang_major__ == 3 && __clang_minor__ < 4)) || (__cplusplus < 201400)
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
#if __cplusplus < 201400
// All versions with __cplusplus above this value seem to support this:
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif

View File

@ -137,7 +137,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -121,7 +121,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -97,7 +97,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -241,7 +241,7 @@
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES

View File

@ -75,7 +75,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -140,7 +140,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -89,7 +89,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -97,7 +97,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -135,7 +135,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -148,7 +148,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -146,7 +146,7 @@
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS

View File

@ -182,6 +182,9 @@
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
# define BOOST_NO_CXX11_INLINE_NAMESPACES
# define BOOST_NO_CXX14_DECLTYPE_AUTO
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
// C++11 features not supported by any versions
@ -202,21 +205,12 @@
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
# define BOOST_NO_CXX14_DECLTYPE_AUTO
#endif
#if (__cplusplus < 201304) // There's no SD6 check for this....
# define BOOST_NO_CXX14_DIGIT_SEPARATOR
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
#endif
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
#endif
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
@ -296,8 +290,8 @@
#endif
//
// last known and checked version is 19.00.21901.1 (VC14 CTP3):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022013)
// last known and checked version is 19.00.22129 (VC14 CTP4):
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022129)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else

View File

@ -72,7 +72,9 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
#ifdef __USE_GNU
#define BOOST_HAS_PTHREAD_YIELD
#endif
#ifndef __GNUC__
//

View File

@ -51,22 +51,23 @@ int test()
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::is_default_constructible;
using std::is_copy_constructible;
using std::is_copy_assignable;
using std::is_move_constructible;
using std::is_move_assignable;
using std::is_destructible;
using std::is_trivially_default_constructible;
using std::is_trivially_copy_constructible;
using std::is_trivially_move_constructible;
using std::is_trivially_copy_assignable;
using std::is_trivially_move_assignable;
using std::is_trivially_destructible;
using std::is_nothrow_default_constructible;
using std::is_nothrow_copy_constructible;
using std::is_nothrow_move_constructible;
using std::is_nothrow_copy_assignable;
using std::is_nothrow_move_assignable;
using std::has_virtual_destructor;
using std::is_signed;
using std::is_unsigned;

View File

@ -14,7 +14,15 @@
namespace boost_no_cxx14_constexpr
{
constexpr void decrement(int &value)
namespace detail
{
template <class> struct void_ { typedef void type; };
}
// Test relaxed constexpr with dependent type; for more details, see comment of
// BOOST_CXX14_CONSTEXPR definition in boost/config/compiler/clang.hpp .
template <class T>
constexpr typename detail::void_<T>::type decrement(T &value)
{
--value;
}

View File

@ -7,7 +7,7 @@
// See http://www.boost.org/libs/config for more information.
// MACRO: BOOST_NO_CXX14_DIGIT_SEPARATOR
// MACRO: BOOST_NO_CXX14_DIGIT_SEPARATORS
// TITLE: C++14 digit separator unavailable
// DESCRIPTION: The compiler does not support C++14 digit separator

View File

@ -1059,7 +1059,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX14_BINARY_LITERALS);
PRINT_MACRO(BOOST_NO_CXX14_CONSTEXPR);
PRINT_MACRO(BOOST_NO_CXX14_DECLTYPE_AUTO);
PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATOR);
PRINT_MACRO(BOOST_NO_CXX14_DIGIT_SEPARATORS);
PRINT_MACRO(BOOST_NO_CXX14_GENERIC_LAMBDAS);
PRINT_MACRO(BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES);
PRINT_MACRO(BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION);

View File

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

View File

@ -10,9 +10,9 @@
//
// Test file for macro BOOST_NO_CXX14_DIGIT_SEPARATOR
// Test file for macro BOOST_NO_CXX14_DIGIT_SEPARATORS
// This file should not compile, if it does then
// BOOST_NO_CXX14_DIGIT_SEPARATOR should not be defined.
// BOOST_NO_CXX14_DIGIT_SEPARATORS should not be defined.
// See file boost_no_cxx14_digit_separator.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
@ -24,7 +24,7 @@
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_CXX14_DIGIT_SEPARATOR
#ifdef BOOST_NO_CXX14_DIGIT_SEPARATORS
#include "boost_no_cxx14_digit_separator.ipp"
#else
#error "this file should not compile"

View File

@ -10,9 +10,9 @@
//
// Test file for macro BOOST_NO_CXX14_DIGIT_SEPARATOR
// Test file for macro BOOST_NO_CXX14_DIGIT_SEPARATORS
// This file should compile, if it does not then
// BOOST_NO_CXX14_DIGIT_SEPARATOR should be defined.
// BOOST_NO_CXX14_DIGIT_SEPARATORS should be defined.
// See file boost_no_cxx14_digit_separator.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
@ -24,7 +24,7 @@
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_CXX14_DIGIT_SEPARATOR
#ifndef BOOST_NO_CXX14_DIGIT_SEPARATORS
#include "boost_no_cxx14_digit_separator.ipp"
#else
namespace boost_no_cxx14_digit_separator = empty_boost;