type_traits (is_member_function_pointer): Provide a workaround for c++/19076, correct for functions with up to 15 arguments.
2004-12-31 Paolo Carlini <pcarlini@suse.de> * include/tr1/type_traits (is_member_function_pointer): Provide a workaround for c++/19076, correct for functions with up to 15 arguments. * testsuite/tr1/4_metaprogramming/composite_type_traits/ is_member_pointer/is_member_pointer.cc: Uncomment "XFAILed" tests; add a test for variadic functions. * testsuite/tr1/4_metaprogramming/composite_type_traits/ is_scalar/is_scalar.cc: Uncomment "XFAILed" tests. * testsuite/tr1/4_metaprogramming/primary_type_categories/ is_enum/is_enum.cc: Likewise. * testsuite/tr1/4_metaprogramming/primary_type_categories/ is_member_function_pointer/is_member_function_pointer.cc: Likewise; add a test for variadic functions. * testsuite/tr1/4_metaprogramming/primary_type_categories/ is_member_object_pointer/is_member_object_pointer.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_nothrow_assign/has_nothrow_assign.cc: Uncomment "XFAILed" tests. * testsuite/tr1/4_metaprogramming/type_properties/ has_nothrow_constructor/has_nothrow_constructor.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_nothrow_copy/has_nothrow_copy.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_trivial_assign/has_trivial_assign.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_trivial_constructor/has_trivial_constructor.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_trivial_copy/has_trivial_copy.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_trivial_destructor/has_trivial_destructor.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ is_pod/is_pod.cc: Likewise. From-SVN: r92769
This commit is contained in:
parent
eac3018308
commit
bdaa445236
15 changed files with 298 additions and 74 deletions
|
@ -1,3 +1,37 @@
|
|||
2004-12-31 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/tr1/type_traits (is_member_function_pointer): Provide a
|
||||
workaround for c++/19076, correct for functions with up to 15
|
||||
arguments.
|
||||
* testsuite/tr1/4_metaprogramming/composite_type_traits/
|
||||
is_member_pointer/is_member_pointer.cc: Uncomment "XFAILed" tests;
|
||||
add a test for variadic functions.
|
||||
* testsuite/tr1/4_metaprogramming/composite_type_traits/
|
||||
is_scalar/is_scalar.cc: Uncomment "XFAILed" tests.
|
||||
* testsuite/tr1/4_metaprogramming/primary_type_categories/
|
||||
is_enum/is_enum.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/primary_type_categories/
|
||||
is_member_function_pointer/is_member_function_pointer.cc: Likewise;
|
||||
add a test for variadic functions.
|
||||
* testsuite/tr1/4_metaprogramming/primary_type_categories/
|
||||
is_member_object_pointer/is_member_object_pointer.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_nothrow_assign/has_nothrow_assign.cc: Uncomment "XFAILed" tests.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_nothrow_constructor/has_nothrow_constructor.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_nothrow_copy/has_nothrow_copy.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_trivial_assign/has_trivial_assign.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_trivial_constructor/has_trivial_constructor.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_trivial_copy/has_trivial_copy.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
has_trivial_destructor/has_trivial_destructor.cc: Likewise.
|
||||
* testsuite/tr1/4_metaprogramming/type_properties/
|
||||
is_pod/is_pod.cc: Likewise.
|
||||
|
||||
2004-12-30 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/tr1/type_traits: Add has_trivial_copy, has_trivial_assign,
|
||||
|
|
|
@ -138,11 +138,218 @@ namespace tr1
|
|||
_DEFINE_SPEC(2, is_member_object_pointer, _Tp _Cp::*,
|
||||
!is_function<_Tp>::value)
|
||||
|
||||
// Due to c++/19076, for the time being we cannot use the correct, neat
|
||||
// implementation :-(
|
||||
//
|
||||
// template<typename>
|
||||
// struct is_member_function_pointer
|
||||
// : public false_type { };
|
||||
// _DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*,
|
||||
// is_function<_Tp>::value)
|
||||
|
||||
// Ugly, temporary workaround for member functions with up to 15 arguments.
|
||||
template<typename>
|
||||
struct __is_mfp_helper
|
||||
{ static const bool __value = false; };
|
||||
|
||||
template<typename _Rt, typename _Cp>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) ()>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11,
|
||||
typename _A12>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, _A12)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11,
|
||||
typename _A12>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, _A12, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11,
|
||||
typename _A12, typename _A13>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, _A12,
|
||||
_A13)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11,
|
||||
typename _A12, typename _A13>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, _A12,
|
||||
_A13, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11,
|
||||
typename _A12, typename _A13, typename _A14>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, _A12,
|
||||
_A13, _A14)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Rt, typename _Cp, typename _A0, typename _A1, typename _A2,
|
||||
typename _A3, typename _A4, typename _A5, typename _A6, typename _A7,
|
||||
typename _A8, typename _A9, typename _A10, typename _A11,
|
||||
typename _A12, typename _A13, typename _A14>
|
||||
struct __is_mfp_helper<_Rt (_Cp::*) (_A0, _A1, _A2, _A3, _A4, _A5, _A6,
|
||||
_A7, _A8, _A9, _A10, _A11, _A12,
|
||||
_A13, _A14, ...)>
|
||||
{ static const bool __value = true; };
|
||||
|
||||
template<typename _Tp>
|
||||
struct is_member_function_pointer
|
||||
: public false_type { };
|
||||
_DEFINE_SPEC(2, is_member_function_pointer, _Tp _Cp::*,
|
||||
is_function<_Tp>::value)
|
||||
: public integral_constant<bool, (__is_mfp_helper<typename
|
||||
remove_cv<_Tp>::type>::__value)>
|
||||
{ };
|
||||
|
||||
template<typename _Tp, bool = (is_fundamental<_Tp>::value
|
||||
|| is_array<_Tp>::value
|
||||
|
|
|
@ -34,16 +34,16 @@ void test01()
|
|||
VERIFY( (test_category<is_member_pointer, const int (ClassType::*)>(true)) );
|
||||
VERIFY( (test_category<is_member_pointer, ClassType (ClassType::*)>(true)) );
|
||||
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
|
||||
//VERIFY( (test_category<is_member_pointer,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
//VERIFY( (test_category<is_member_pointer,
|
||||
// int (ClassType::*) (int) const>(true)) );
|
||||
//VERIFY( (test_category<is_member_function_pointer,
|
||||
// ClassType (ClassType::*) (ClassType)>(true)) );
|
||||
//VERIFY( (test_category<is_member_pointer,
|
||||
// float (ClassType::*) (int, float, int[], int&)>(true)) );
|
||||
VERIFY( (test_category<is_member_pointer,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<is_member_pointer,
|
||||
int (ClassType::*) (int) const>(true)) );
|
||||
VERIFY( (test_category<is_member_pointer,
|
||||
int (ClassType::*) (float, ...)>(true)) );
|
||||
VERIFY( (test_category<is_member_pointer,
|
||||
ClassType (ClassType::*) (ClassType)>(true)) );
|
||||
VERIFY( (test_category<is_member_pointer,
|
||||
float (ClassType::*) (int, float, int[], int&)>(true)) );
|
||||
|
||||
// Sanity check.
|
||||
VERIFY( (test_category<is_member_pointer, ClassType>(false)) );
|
||||
|
|
|
@ -36,8 +36,7 @@ void test01()
|
|||
VERIFY( (test_category<is_scalar, int*>(true)) );
|
||||
VERIFY( (test_category<is_scalar, int(*)(int)>(true)) );
|
||||
VERIFY( (test_category<is_scalar, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<is_scalar, int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<is_scalar, int (ClassType::*) (int)>(true)) );
|
||||
|
||||
// Sanity check.
|
||||
VERIFY( (test_category<is_scalar, ClassType>(false)) );
|
||||
|
|
|
@ -43,8 +43,7 @@ void test01()
|
|||
VERIFY( (test_category<is_enum, float&>(false)) );
|
||||
VERIFY( (test_category<is_enum, float(&)(float)>(false)) );
|
||||
VERIFY( (test_category<is_enum, int (ClassType::*)>(false)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<is_enum, int (ClassType::*) (int)>(false)) );
|
||||
VERIFY( (test_category<is_enum, int (ClassType::*) (int)>(false)) );
|
||||
VERIFY( (test_category<is_enum, int (int)>(false)) );
|
||||
|
||||
VERIFY( (test_category<is_enum, ConvType>(false)) );
|
||||
|
|
|
@ -31,17 +31,16 @@ void test01()
|
|||
using namespace __gnu_test;
|
||||
|
||||
// Positive tests.
|
||||
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
|
||||
//VERIFY( (test_category<is_member_function_pointer,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
//VERIFY( (test_category<is_member_function_pointer,
|
||||
// int (ClassType::*) (int) const>(true)) );
|
||||
//VERIFY( (test_category<is_member_function_pointer,
|
||||
// ClassType (ClassType::*) (ClassType)>(true)) );
|
||||
//VERIFY( (test_category<is_member_function_pointer,
|
||||
// float (ClassType::*) (int, float, int[], int&)>(true)) );
|
||||
VERIFY( (test_category<is_member_function_pointer,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<is_member_function_pointer,
|
||||
int (ClassType::*) (int) const>(true)) );
|
||||
VERIFY( (test_category<is_member_function_pointer,
|
||||
int (ClassType::*) (float, ...)>(true)) );
|
||||
VERIFY( (test_category<is_member_function_pointer,
|
||||
ClassType (ClassType::*) (ClassType)>(true)) );
|
||||
VERIFY( (test_category<is_member_function_pointer,
|
||||
float (ClassType::*) (int, float, int[], int&)>(true)) );
|
||||
|
||||
// Negative tests.
|
||||
VERIFY( (test_category<is_member_function_pointer,
|
||||
|
|
|
@ -43,6 +43,8 @@ void test01()
|
|||
int (ClassType::*) (int)>(false)) );
|
||||
VERIFY( (test_category<is_member_object_pointer,
|
||||
int (ClassType::*) (int) const>(false)) );
|
||||
VERIFY( (test_category<is_member_object_pointer,
|
||||
int (ClassType::*) (float, ...)>(false)) );
|
||||
VERIFY( (test_category<is_member_object_pointer,
|
||||
ClassType (ClassType::*) (ClassType)>(false)) );
|
||||
VERIFY( (test_category<is_member_object_pointer,
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_assign_property<has_nothrow_assign, int*>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign, int(*)(int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_assign_property<has_nothrow_assign,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign, int[2]>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign, float[][3]>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_assign_property<has_nothrow_assign, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_assign_property<has_nothrow_assign,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_nothrow_assign,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
}
|
||||
|
||||
int main()
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_category<has_nothrow_constructor, int*>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor, int(*)(int)>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<has_nothrow_constructor,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor, int[2]>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor, float[][3]>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_category<has_nothrow_constructor, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<has_nothrow_constructor,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_category<has_nothrow_constructor,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
|
||||
// Sanity check.
|
||||
VERIFY( (test_category<has_nothrow_constructor, ClassType>(false)) );
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_copy_property<has_nothrow_copy, int*>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy, int(*)(int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_copy_property<has_nothrow_copy,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy, int[2]>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy, float[][3]>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_copy_property<has_nothrow_copy, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_copy_property<has_nothrow_copy,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_nothrow_copy,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
}
|
||||
|
||||
int main()
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_assign_property<has_trivial_assign, int*>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign, int(*)(int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_assign_property<has_trivial_assign,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign, int[2]>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign, float[][3]>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_assign_property<has_trivial_assign, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_assign_property<has_trivial_assign,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_assign_property<has_trivial_assign,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
}
|
||||
|
||||
int main()
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_category<has_trivial_constructor, int*>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor, int(*)(int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<has_trivial_constructor,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor, int[2]>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor, float[][3]>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_category<has_trivial_constructor, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<has_trivial_constructor,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_constructor,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
|
||||
// Sanity check.
|
||||
VERIFY( (test_category<has_trivial_constructor, ClassType>(false)) );
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_copy_property<has_trivial_copy, int*>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy, int(*)(int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_copy_property<has_trivial_copy,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy, int[2]>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy, float[][3]>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_copy_property<has_trivial_copy, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_copy_property<has_trivial_copy,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_copy_property<has_trivial_copy,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
}
|
||||
|
||||
int main()
|
||||
|
|
|
@ -37,9 +37,8 @@ void test01()
|
|||
VERIFY( (test_category<has_trivial_destructor, int*>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor, int(*)(int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<has_trivial_destructor,
|
||||
// int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor,
|
||||
int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor, int[2]>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor, float[][3]>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor, EnumType[2][3][4]>(true)) );
|
||||
|
@ -47,9 +46,8 @@ void test01()
|
|||
VERIFY( (test_category<has_trivial_destructor, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor,
|
||||
int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<has_trivial_destructor,
|
||||
// int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_category<has_trivial_destructor,
|
||||
int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
|
||||
// Sanity check.
|
||||
VERIFY( (test_category<has_trivial_destructor, ClassType>(false)) );
|
||||
|
|
|
@ -37,16 +37,14 @@ void test01()
|
|||
VERIFY( (test_category<is_pod, int*>(true)) );
|
||||
VERIFY( (test_category<is_pod, int(*)(int)>(true)) );
|
||||
VERIFY( (test_category<is_pod, int (ClassType::*)>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<is_pod, int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<is_pod, int (ClassType::*) (int)>(true)) );
|
||||
VERIFY( (test_category<is_pod, int[2]>(true)) );
|
||||
VERIFY( (test_category<is_pod, float[][3]>(true)) );
|
||||
VERIFY( (test_category<is_pod, EnumType[2][3][4]>(true)) );
|
||||
VERIFY( (test_category<is_pod, int*[3]>(true)) );
|
||||
VERIFY( (test_category<is_pod, int(*[][2])(int)>(true)) );
|
||||
VERIFY( (test_category<is_pod, int (ClassType::*[2][3])>(true)) );
|
||||
// Temporarily disabled because of c++/19076 :-(
|
||||
// VERIFY( (test_category<is_pod, int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
VERIFY( (test_category<is_pod, int (ClassType::*[][2][3]) (int)>(true)) );
|
||||
|
||||
// Sanity check.
|
||||
VERIFY( (test_category<is_pod, ClassType>(false)) );
|
||||
|
|
Loading…
Add table
Reference in a new issue