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:
parent
2ea9fa8a9b
commit
297f34d719
4 changed files with 23 additions and 22 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" }
|
||||
|
|
|
@ -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" }
|
||||
|
|
Loading…
Add table
Reference in a new issue