Merge branch 'develop'

This commit is contained in:
jzmaddock
2019-06-28 08:35:15 +01:00
7 changed files with 316 additions and 13 deletions

View File

@ -12,6 +12,8 @@ os:
- linux
- osx
dist : xenial
branches:
only:
- master
@ -33,6 +35,7 @@ matrix:
- os: linux
compiler: g++-4.4
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
dist: trusty
addons:
apt:
packages:
@ -43,6 +46,7 @@ matrix:
- os: linux
compiler: g++-4.6
env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
dist: trusty
addons:
apt:
packages:
@ -52,6 +56,7 @@ matrix:
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
dist: trusty
addons:
apt:
packages:
@ -70,6 +75,7 @@ matrix:
- os: linux
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
dist: trusty
addons:
apt:
packages:
@ -153,26 +159,29 @@ matrix:
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11
dist: trusty
addons:
apt:
packages:
- clang-3.5
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.5
- llvm-toolchain-trusty-3.5
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11
dist: trusty
addons:
apt:
packages:
- clang-3.6
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.6
- llvm-toolchain-trusty-3.6
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11
dist: trusty
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
addons:
apt:
packages:
@ -183,23 +192,25 @@ matrix:
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
dist: trusty
addons:
apt:
packages:
- clang-3.8
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
- llvm-toolchain-trusty-3.8
- os: linux
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
dist: trusty
addons:
apt:
packages:
- clang-3.9
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.9
- llvm-toolchain-trusty-3.9
- os: linux
compiler: clang++-4.0
@ -210,7 +221,7 @@ matrix:
- clang-4.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
- llvm-toolchain-xenial-4.0
- os: linux
compiler: clang++-5.0
@ -221,7 +232,7 @@ matrix:
- clang-5.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
- llvm-toolchain-xenial-5.0
- os: linux
compiler: clang++-6.0
@ -232,7 +243,18 @@ matrix:
- clang-6.0
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
- llvm-toolchain-xenial-6.0
- os: linux
compiler: clang++-7
env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,1z
addons:
apt:
packages:
- clang-7
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-xenial-7
- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z

View File

@ -38,9 +38,9 @@ environment:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-clr asynch-exceptions=on
ARGS: --toolset=msvc-14.1 cxxstd=17 address-model=64 cxxflags=-clr asynch-exceptions=on
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 address-model=32 cxxflags=-clr asynch-exceptions=on
ARGS: --toolset=msvc-14.1 cxxstd=17 address-model=32 cxxflags=-clr asynch-exceptions=on
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
ARGS: --toolset=msvc-14.1 architecture=arm testing.execute=off
DISABLE_CONFIG_INFO: "YES"

View File

@ -93,6 +93,20 @@
# define BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM
# define BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE
#endif
//
// If we have the SD6 macros (check for C++11's __cpp_rvalue_references), and we don't have __cpp_noexcept_function_type
// set, then don't treat noexcept functions as seperate types. This is a fix for msvc with the /Zc:noexceptTypes- flag set.
//
#if defined(__cpp_rvalue_references) && !defined(__cpp_noexcept_function_type) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE)
# define BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE
#endif
//
// Check MSVC specific macro on older msvc compilers that don't support the SD6 macros, we don't rely on this
// if the SD6 macros *are* available as it appears to be undocumented.
//
#if defined(BOOST_MSVC) && !defined(__cpp_rvalue_references) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE) && !defined(_NOEXCEPT_TYPES_SUPPORTED)
# define BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE
#endif
#endif // BOOST_TT_CONFIG_HPP_INCLUDED

View File

@ -376,7 +376,7 @@ namespace boost {
template <class Ret, class ...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret(Args..., ...)const volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64)
#ifdef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __clrcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -384,9 +384,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -399,9 +401,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)const BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -414,9 +418,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -429,9 +435,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)const volatile BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -445,9 +453,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -460,9 +470,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)const &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -475,9 +487,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -490,9 +504,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)const volatile &BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -506,9 +522,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...) && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -521,9 +539,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)const &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -536,9 +556,11 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
@ -551,15 +573,17 @@ namespace boost {
#ifndef _M_AMD64
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __stdcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifndef __CLR_VER
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __fastcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif
#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64))
template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_function<Ret __vectorcall(Args...)const volatile &&BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#endif
#endif // _MSC_VER
#endif // defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64)
#endif

View File

@ -419,7 +419,7 @@ namespace boost {
template <class Ret, class C, class ...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_member_function_pointer<Ret(C::*)(Args..., ...)const volatile && BOOST_TT_NOEXCEPT_DECL> : public true_type {};
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64)
#ifdef __CLR_VER
template <class Ret, class C, class...Args BOOST_TT_NOEXCEPT_PARAM>
struct is_member_function_pointer<Ret(__clrcall C::*)(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};

View File

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="utf-8"?>
<explicit-failures-markup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/boostorg/boost/master/status/explicit-failures.xsd">
<!-- type_traits -->
<library name="type_traits">
<mark-expected-failures>
<test name="is_virtual_base_of_test"/>
<toolset name="gcc-3.4.6"/>
<note author="John Maddock">
Type Traits tests are run with warnings-as-errors and GCC 3.x emits warnings with this test
that I haven't been able to suppress.
</note>
</mark-expected-failures>
<mark-expected-failures>
<test name="has_operator_new_test"/>
<test name="make_signed_test"/>
<test name="make_unsigned_test"/>
<toolset name="msvc-7.1"/>
<note author="John Maddock">
Apparently the compiler can't cope with these - later versions are fine though.
Probably work-round-able if someone would care to look into these.
</note>
</mark-expected-failures>
<mark-expected-failures>
<test name="function_traits_test"/>
<test name="remove_bounds_test"/>
<test name="remove_const_test"/>
<test name="remove_cv_test"/>
<test name="remove_pointer_test"/>
<test name="remove_reference_test"/>
<test name="remove_volatile_test"/>
<test name="decay_test"/>
<test name="extent_test"/>
<test name="remove_extent_test"/>
<test name="remove_all_extents_test"/>
<test name="rank_test"/>
<test name="is_unsigned_test"/>
<toolset name="msvc-6.5*"/>
<toolset name="msvc-7.0"/>
<note author="Aleksey Gurtovoy">
This failure is caused by the lack of compiler support for class template
partial specialization. A limited subset of the tested functionality is
available on the compiler through a user-side workaround (see
<a href="http://www.boost.org/libs/type_traits/index.html#transformations">
http://www.boost.org/libs/type_traits/index.html#transformations</a> for
details).
</note>
</mark-expected-failures>
<mark-expected-failures>
<test name="decay_test"/>
<test name="extent_test"/>
<test name="is_base_and_derived_test"/>
<test name="is_base_of_test"/>
<test name="is_convertible_test"/>
<test name="rank_test"/>
<test name="remove_all_extents_test"/>
<test name="remove_bounds_test"/>
<test name="remove_const_test"/>
<test name="remove_extent_test"/>
<test name="remove_pointer_test"/>
<test name="remove_volatile_test"/>
<test name="tricky_add_pointer_test"/>
<test name="tricky_function_type_test"/>
<test name="tricky_incomplete_type_test"/>
<test name="make_signed_test"/>
<test name="make_unsigned_test"/>
<toolset name="borland-5.6*"/>
<toolset name="borland-5.8*"/>
<toolset name="borland-5.9*"/>
<note author="John Maddock" refid="2"/>
</mark-expected-failures>
<mark-expected-failures>
<test name="promote_basic_test"/>
<test name="promote_enum_test"/>
<test name="promote_mpl_test"/>
<test name="tricky_partial_spec_test"/>
<toolset name="borland-5.6*"/>
<toolset name="borland-5.8*"/>
<toolset name="borland-5.9*"/>
<note author="AlisdairM" refid="2"/>
</mark-expected-failures>
<mark-expected-failures>
<test name="promote_enum_msvc_bug_test"/>
<toolset name="msvc-7.1*"/>
<toolset name="msvc-8.0*"/>
<toolset name="msvc-9.0*"/>
<toolset name="msvc-10.0*"/>
<toolset name="msvc-11.0*"/>
<toolset name="msvc-12.0*"/>
<toolset name="msvc-14.0*"/>
<toolset name="msvc-14.1*"/>
<toolset name="msvc-14.2*"/>
<note author="Alexander Nasonov">
See bug 99776 'enum UIntEnum { value = UINT_MAX } is promoted to int'
http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=22b0a6b7-120f-4ca0-9136-fa1b25b26efe
https://developercommunity.visualstudio.com/content/problem/490264/standard-violation-enum-underlying-type-cannot-rep.html
</note>
</mark-expected-failures>
<test name="tricky_is_enum_test">
<mark-failure>
<toolset name="borland-5.6*"/>
<toolset name="borland-5.8*"/>
<toolset name="borland-5.9*"/>
<toolset name="msvc-6.5*"/>
<toolset name="gcc-2.95.3-*"/>
</mark-failure>
</test>
<test name="tricky_incomplete_type_test">
<mark-failure>
<toolset name="iw-7_1*"/>
<note author="John Maddock" refid="2"/>
</mark-failure>
</test>
<test name="is_abstract_test">
<mark-failure>
<toolset name="borland-5.6*"/>
<toolset name="borland-5.8*"/>
<toolset name="borland-5.9*"/>
<toolset name="cw-8.3*"/>
<toolset name="cw-9.3*"/>
<toolset name="cw-9.4"/>
<toolset name="cw-9.5"/>
<toolset name="msvc-6.5*"/>
<toolset name="msvc-7.0"/>
<toolset name="mingw-3_3*"/>
<toolset name="gcc-2*"/>
<toolset name="gcc-3.2*"/>
<toolset name="gcc-3.3*"/>
<toolset name="qcc-3.3*"/>
<toolset name="sunpro-5_3-sunos"/>
<toolset name="hp_cxx-65*"/>
<toolset name="darwin"/>
<toolset name="mingw"/>
<note author="Aleksey Gurtovoy">
This functionality is available only on compilers that implement C++ Core Language
<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337">Defect Report 337</a>.
</note>
</mark-failure>
</test>
<mark-expected-failures>
<test name="is_polymorphic_test"/>
<toolset name="gcc-2.95.3-stlport-*"/>
<note author="Doug Gregor" refid="3"/>
</mark-expected-failures>
<mark-expected-failures>
<test name="decay_test"/>
<test name="extent_test"/>
<test name="has_nothrow_assign_test"/>
<test name="has_nothrow_constr_test"/>
<test name="has_nothrow_copy_test"/>
<test name="has_trivial_assign_test"/>
<test name="has_trivial_constr_test"/>
<test name="has_trivial_copy_test"/>
<test name="has_trivial_destructor_test"/>
<test name="is_array_test"/>
<test name="is_base_and_derived_test"/>
<test name="is_base_of_test"/>
<test name="is_class_test"/>
<test name="is_convertible_test"/>
<test name="is_object_test"/>
<test name="is_pod_test"/>
<test name="is_polymorphic_test"/>
<test name="rank_test"/>
<test name="remove_all_extents_test"/>
<test name="remove_bounds_test"/>
<test name="remove_extent_test"/>
<toolset name="sunpro-5_3-sunos"/>
<note author="John Maddock">
The Type Traits library is broken when used with Sunpro-5.3 and the
argument to the template is an array or function type. Most other argument types
do work as expected: in other words the functionality is limited
with this compiler, but not so much as to render the library unuseable.
</note>
</mark-expected-failures>
<mark-expected-failures>
<test name="is_empty_test"/>
<test name="is_function_test"/>
<test name="is_member_func_test"/>
<test name="is_member_obj_test"/>
<test name="is_reference_test"/>
<test name="tricky_function_type_test"/>
<test name="tricky_incomplete_type_test"/>
<test name="tricky_is_enum_test"/>
<toolset name="sunpro-5_3-sunos"/>
<note author="John Maddock" refid="2"/>
</mark-expected-failures>
<mark-expected-failures>
<test name="decay_test"/>
<test name="extent_test"/>
<test name="is_abstract_test"/>
<test name="is_empty_test"/>
<test name="is_function_test"/>
<test name="is_member_func_test"/>
<test name="is_member_obj_test"/>
<test name="is_object_test"/>
<test name="is_reference_test"/>
<test name="rank_test"/>
<test name="tricky_function_type_test"/>
<toolset name="sun-5.8"/>
<note author="John Maddock">
The Type Traits library is broken when used with Sunpro-5.8 and the
argument to the template is a function type. Most other argument types
do work as expected: in other words the functionality is limited
with this compiler, but not so much as to render the library unuseable.
</note>
</mark-expected-failures>
<mark-expected-failures>
<test name="tricky_partial_spec_test"/>
<toolset name="sun-5.9"/>
<note author="John Maddock">
This fails with an internal compiler error,
there is no workaround as yet.
</note>
</mark-expected-failures>
<mark-expected-failures>
<test name="tricky_function_type_test"/>
<test name="is_const_test"/>
<test name="is_volatile_test"/>
<test name="is_convertible_test"/>
<toolset name="gcc-2*"/>
<note author="John Maddock" refid="2"/>
</mark-expected-failures>
<mark-expected-failures>
<test name="aligned_storage_test"/>
<toolset name="cw-8.3"/>
<note author="John Maddock">
Older versions of MWCW incorrectly align pointers to member functions
(they use 12-byte boundaries, rather than a power-of-2 boundary),
leading to alignment_of / aligned_storage
to fail with these types on this compiler.
</note>
</mark-expected-failures>
</library>
</explicit-failures-markup>

View File

@ -208,6 +208,9 @@ typedef int (UDT::*mf8)(...);
# elif defined(BOOST_INTEL)
# pragma warning(push)
# pragma warning(disable: 21)
# elif defined(BOOST_CLANG)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wignored-qualifiers"
# endif
//
// This is intentional:
@ -228,6 +231,8 @@ typedef r_type cr_type;
# elif defined(BOOST_INTEL)
# pragma warning(pop)
# pragma warning(disable: 985) // identifier truncated in debug information
# elif defined(BOOST_CLANG)
# pragma clang diagnostic pop
# endif
struct POD_UDT { int x; };