Commit 297f34d7 by Paolo Carlini Committed by Paolo Carlini

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
parent 2ea9fa8a
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> 2009-10-30 Jerry Quinn <jlquinn@optonline.net>
* libsupc++/tinfo.cc (operator=(const type_info&)): Revert 153734. * libsupc++/tinfo.cc (operator=(const type_info&)): Revert 153734.
......
...@@ -240,34 +240,26 @@ namespace std ...@@ -240,34 +240,26 @@ namespace std
{ }; { };
// Relationships between types. // 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> template<typename _From, typename _To>
struct __is_convertible_simple struct __is_convertible_helper<_From, _To, false>
: public __sfinae_types : public __sfinae_types
{ {
private: private:
static __one __test(_To); static __one __test(_To);
static __two __test(...); static __two __test(...);
static _From __makeFrom(); static typename add_rvalue_reference<_From>::type __makeFrom();
public: public:
static const bool __value = sizeof(__test(__makeFrom())) == 1; 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 // XXX FIXME
// The C++0x specifications require front-end support, see N2255. // The C++0x specifications require front-end support, see N2255.
/// is_convertible /// is_convertible
......
...@@ -48,8 +48,8 @@ void test01() ...@@ -48,8 +48,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 40 } // { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 } // { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 554 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 546 }
// { dg-error "declaration of" "" { target *-*-* } 516 } // { dg-error "declaration of" "" { target *-*-* } 508 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
...@@ -48,8 +48,8 @@ void test01() ...@@ -48,8 +48,8 @@ void test01()
// { dg-error "instantiated from here" "" { target *-*-* } 40 } // { dg-error "instantiated from here" "" { target *-*-* } 40 }
// { dg-error "instantiated from here" "" { target *-*-* } 42 } // { dg-error "instantiated from here" "" { target *-*-* } 42 }
// { dg-error "invalid use of incomplete type" "" { target *-*-* } 475 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 467 }
// { dg-error "declaration of" "" { target *-*-* } 437 } // { dg-error "declaration of" "" { target *-*-* } 429 }
// { dg-excess-errors "At global scope" } // { dg-excess-errors "At global scope" }
// { dg-excess-errors "In instantiation of" } // { dg-excess-errors "In instantiation of" }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment