type_traits (__is_convertible_simple): Remove.

2009-10-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (__is_convertible_simple): Remove.
	(__is_convertible_helper): Adjust.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r153743
This commit is contained in:
Paolo Carlini 2009-10-30 13:12:08 +00:00 committed by Paolo Carlini
parent 2ea9fa8a9b
commit 297f34d719
4 changed files with 23 additions and 22 deletions

View file

@ -1,3 +1,12 @@
2009-10-30 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/type_traits (__is_convertible_simple): Remove.
(__is_convertible_helper): Adjust.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line numbers.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
2009-10-30 Jerry Quinn <jlquinn@optonline.net>
* libsupc++/tinfo.cc (operator=(const type_info&)): Revert 153734.

View file

@ -240,34 +240,26 @@ namespace std
{ };
// Relationships between types.
template<typename _From, typename _To,
bool = (is_void<_From>::value || is_void<_To>::value
|| is_function<_To>::value || is_array<_To>::value)>
struct __is_convertible_helper
{ static const bool __value = (is_void<_From>::value
&& is_void<_To>::value); };
template<typename _From, typename _To>
struct __is_convertible_simple
struct __is_convertible_helper<_From, _To, false>
: public __sfinae_types
{
private:
static __one __test(_To);
static __two __test(...);
static _From __makeFrom();
static typename add_rvalue_reference<_From>::type __makeFrom();
public:
static const bool __value = sizeof(__test(__makeFrom())) == 1;
};
template<typename _From, typename _To,
bool = (is_void<_From>::value || is_void<_To>::value
|| is_function<_To>::value || is_array<_To>::value)>
struct __is_convertible_helper
{
static const bool __value = (__is_convertible_simple<typename
add_rvalue_reference<_From>::type,
_To>::__value);
};
template<typename _From, typename _To>
struct __is_convertible_helper<_From, _To, true>
{ static const bool __value = (is_void<_From>::value
&& is_void<_To>::value); };
// XXX FIXME
// The C++0x specifications require front-end support, see N2255.
/// is_convertible

View file

@ -48,8 +48,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 554 }
// { dg-error "declaration of" "" { target *-*-* } 516 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 546 }
// { dg-error "declaration of" "" { target *-*-* } 508 }
// { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" }

View file

@ -48,8 +48,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 475 }
// { dg-error "declaration of" "" { target *-*-* } 437 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 467 }
// { dg-error "declaration of" "" { target *-*-* } 429 }
// { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" }