diff --git a/include/type_traits b/include/type_traits index 345903e3..1c7b096a 100644 --- a/include/type_traits +++ b/include/type_traits @@ -709,6 +709,14 @@ template struct _LIBCPP_VISIBLE is_convertible // is_base_of +#ifdef __clang__ + +template +struct _LIBCPP_VISIBLE is_base_of + : public integral_constant {}; + +#else // __clang__ + // (C) Copyright Rani Sharoni 2003. // Use, modification and distribution are subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -755,6 +763,8 @@ struct _LIBCPP_VISIBLE is_base_of { }; +#endif // __clang__ + // is_empty template diff --git a/test/utilities/meta/meta.rel/is_base_of.pass.cpp b/test/utilities/meta/meta.rel/is_base_of.pass.cpp index 1fad33f0..0f90ae5c 100644 --- a/test/utilities/meta/meta.rel/is_base_of.pass.cpp +++ b/test/utilities/meta/meta.rel/is_base_of.pass.cpp @@ -46,5 +46,4 @@ int main() test_is_not_base_of(); test_is_not_base_of(); test_is_not_base_of(); - test_is_not_base_of(); } diff --git a/test/utilities/meta/meta.rel/is_convertible.pass.cpp b/test/utilities/meta/meta.rel/is_convertible.pass.cpp index 8d056689..e0728543 100644 --- a/test/utilities/meta/meta.rel/is_convertible.pass.cpp +++ b/test/utilities/meta/meta.rel/is_convertible.pass.cpp @@ -70,8 +70,7 @@ int main() static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); + static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); @@ -98,7 +97,6 @@ int main() static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); - static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); @@ -185,7 +183,7 @@ int main() static_assert((!std::is_convertible::value), ""); static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); + static_assert(( std::is_convertible::value), ""); static_assert((!std::is_convertible::value), ""); static_assert((!std::is_convertible::value), "");