diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index fac31ad846d..d77d97d5516 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2012-10-10 Paolo Carlini + + * include/std/type_traits (__do_common_type_impl): Revert for now + LWG 2141-related change. + * testsuite/20_util/common_type/requirements/typedefs-1.cc: Likewise. + * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: + Adjust. + 2012-10-09 Daniel Krugler * include/std/type_traits (common_time): Provide "SFINAE-friendly" diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index ccec92045b4..510b012a3e1 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -1792,9 +1792,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct __do_common_type_impl { template - static __success_type() : std::declval<_Up>()) - >::type> _S_test(int); + static __success_type() + : std::declval<_Up>())> _S_test(int); template static __failure_type _S_test(...); diff --git a/libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc b/libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc index de7ca270714..c23521f9d4c 100644 --- a/libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc +++ b/libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc @@ -172,7 +172,7 @@ static_assert(is_type, int>(), ""); static_assert(is_type, int>(), ""); static_assert(is_type, int>(), ""); static_assert(is_type, S>(), ""); -static_assert(is_type, S>(), ""); +static_assert(is_type, const S>(), ""); static_assert(is_type, std::initializer_list>, std::initializer_list>(), ""); static_assert(is_type, B>(), ""); @@ -188,10 +188,10 @@ static_assert(is_type, static_assert(is_type, void>(), ""); static_assert(is_type, void>(), ""); static_assert(is_type, int>(), ""); -static_assert(is_type, int>(), ""); +static_assert(is_type, int&>(), ""); static_assert(is_type, int>(), ""); -static_assert(is_type, U>(), ""); -static_assert(is_type, U>(), ""); +static_assert(is_type, const U>(), ""); +static_assert(is_type, U&>(), ""); static_assert(is_type, U>(), ""); static_assert(is_type, int D::*>(), ""); static_assert(is_type, int D::*>(), ""); @@ -204,14 +204,14 @@ static_assert(is_type, static_assert(is_type, int*>(), ""); static_assert(is_type, const int*>(), ""); -static_assert(is_type, void(*)()>(), ""); -static_assert(is_type, void(*)()>(), ""); +static_assert(is_type, void(&)()>(), ""); +static_assert(is_type, void(&)()>(), ""); static_assert(is_type, - void(*)()>(), ""); + void(&)()>(), ""); static_assert(is_type, - void(*)()>(), ""); + void(&)()>(), ""); static_assert(is_type, - void(*)()>(), ""); + void(&)()>(), ""); static_assert(is_type, int>, int>(), ""); static_assert(is_type, ImplicitTo>, ImplicitTo>(), ""); @@ -222,7 +222,7 @@ static_assert(is_type, ExplicitTo>, static_assert(is_type, decltype(lmd1)>(), ""); static_assert(is_type, - decltype(lmd1)>(), ""); + decltype(lmd1)&>(), ""); static_assert(is_type, void(*)(int, double)>(), ""); static_assert(is_type, void*>(), ""); @@ -237,9 +237,9 @@ static_assert(is_type, int (B::*)() const>(), ""); static_assert(is_type, const int B::*>(), ""); -static_assert(is_type, Abstract>(), ""); -static_assert(is_type, Ukn>(), ""); -static_assert(is_type, B&>, B>(), ""); +static_assert(is_type, Abstract&>(), ""); +static_assert(is_type, Ukn&>(), ""); +static_assert(is_type, B&>, B&>(), ""); static_assert(is_type&, B&&>, B>(), ""); static_assert(is_type, const Abstract*>(), ""); @@ -328,7 +328,7 @@ void test(int i) static_assert(is_type, decltype(local_lmd1)>(), ""); static_assert(is_type, decltype(local_lmd1)>(), ""); + decltype(local_lmd1)&>, decltype(local_lmd1)&>(), ""); static_assert(!has_type>(), ""); diff --git a/libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc b/libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc index 2d6babef02c..4564b2bc0c9 100644 --- a/libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc +++ b/libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc @@ -105,7 +105,7 @@ void test02() COMMON_TYPE_TEST_ALL_2(int, int, int, 1); COMMON_TYPE_TEST_ALL_2(int, double, double, 2); COMMON_TYPE_TEST_2(NO_CV, A, A, A, 3); - COMMON_TYPE_TEST_2(const, A, A, A, 4); + COMMON_TYPE_TEST_2(const, A, A, const A, 4); COMMON_TYPE_TEST_2(NO_CV, B, A, A, 5); }