Hi, tested x86_64-linux, committed.
Thanks, Paolo. //////////////////////
2012-04-20 Paolo Carlini <paolo.carl...@oracle.com> PR libstdc++/53052 * include/std/type_traits (is_explicitly_convertible): Remove. * testsuite/20_util/is_explicitly_convertible: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error line numbers. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
Index: include/std/type_traits =================================================================== --- include/std/type_traits (revision 186615) +++ include/std/type_traits (working copy) @@ -1281,13 +1281,7 @@ __is_convertible_helper<_From, _To>::value> { }; - /// is_explicitly_convertible - template<typename _From, typename _To> - struct is_explicitly_convertible - : public is_constructible<_To, _From> - { }; - // const-volatile modifications. /// remove_const Index: testsuite/20_util/make_signed/requirements/typedefs_neg.cc =================================================================== --- testsuite/20_util/make_signed/requirements/typedefs_neg.cc (revision 186615) +++ testsuite/20_util/make_signed/requirements/typedefs_neg.cc (working copy) @@ -49,5 +49,5 @@ // { dg-error "required from here" "" { target *-*-* } 41 } // { dg-error "required from here" "" { target *-*-* } 43 } -// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1581 } -// { dg-error "declaration of" "" { target *-*-* } 1545 } +// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1575 } +// { dg-error "declaration of" "" { target *-*-* } 1539 } Index: testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc =================================================================== --- testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc (revision 186615) +++ testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc (working copy) @@ -49,5 +49,5 @@ // { dg-error "required from here" "" { target *-*-* } 41 } // { dg-error "required from here" "" { target *-*-* } 43 } -// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1499 } -// { dg-error "declaration of" "" { target *-*-* } 1463 } +// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1493 } +// { dg-error "declaration of" "" { target *-*-* } 1457 } Index: testsuite/20_util/declval/requirements/1_neg.cc =================================================================== --- testsuite/20_util/declval/requirements/1_neg.cc (revision 186615) +++ testsuite/20_util/declval/requirements/1_neg.cc (working copy) @@ -19,7 +19,7 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-error "static assertion failed" "" { target *-*-* } 1792 } +// { dg-error "static assertion failed" "" { target *-*-* } 1786 } #include <utility> Index: testsuite/20_util/is_explicitly_convertible/value.cc =================================================================== --- testsuite/20_util/is_explicitly_convertible/value.cc (revision 186615) +++ testsuite/20_util/is_explicitly_convertible/value.cc (working copy) @@ -1,45 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -// Copyright (C) 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -#include <type_traits> -#include <testsuite_hooks.h> -#include <testsuite_tr1.h> - -void test01() -{ - bool test __attribute__((unused)) = true; - using std::is_explicitly_convertible; - using namespace __gnu_test; - - // Positive tests. - VERIFY( (test_relationship<is_explicitly_convertible, double&, - ExplicitClass>(true)) ); - VERIFY( (test_relationship<is_explicitly_convertible, int&, - ExplicitClass>(true)) ); - - // Negative tests. - VERIFY( (test_relationship<is_explicitly_convertible, void*, - ExplicitClass>(false)) ); -} - -int main() -{ - test01(); - return 0; -} Index: testsuite/20_util/is_explicitly_convertible/requirements/typedefs.cc =================================================================== --- testsuite/20_util/is_explicitly_convertible/requirements/typedefs.cc (revision 186615) +++ testsuite/20_util/is_explicitly_convertible/requirements/typedefs.cc (working copy) @@ -1,36 +0,0 @@ -// { dg-options "-std=gnu++0x" } -// { dg-do compile } - -// 2009-12-30 Paolo Carlini <paolo.carl...@oracle.com> -// -// Copyright (C) 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include <type_traits> - -void test01() -{ - // Check for required typedefs - typedef std::is_explicitly_convertible<int, int> test_type; - typedef test_type::value_type value_type; - typedef test_type::type type; - typedef test_type::type::value_type type_value_type; - typedef test_type::type::type type_type; -} Index: testsuite/20_util/is_explicitly_convertible/requirements/explicit_instantiation.cc =================================================================== --- testsuite/20_util/is_explicitly_convertible/requirements/explicit_instantiation.cc (revision 186615) +++ testsuite/20_util/is_explicitly_convertible/requirements/explicit_instantiation.cc (working copy) @@ -1,31 +0,0 @@ -// { dg-options "-std=gnu++0x" } -// { dg-do compile } - -// 2009-12-30 Paolo Carlini <paolo.carl...@oracle.com> - -// Copyright (C) 2009 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING3. If not see -// <http://www.gnu.org/licenses/>. - -// NB: This file is for testing type_traits with NO OTHER INCLUDES. - -#include <type_traits> - -namespace std -{ - typedef short test_type; - template struct is_explicitly_convertible<test_type, test_type>; -}