return ret;
}
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ template<template<typename...> class Relationship,
+ typename... Types>
+ bool
+ test_relationship(bool value)
+ {
+ bool ret = true;
+ ret &= Relationship<Types...>::value == value;
+ ret &= Relationship<Types...>::type::value == value;
+ return ret;
+ }
+#else
template<template<typename, typename> class Relationship,
typename Type1, typename Type2>
bool
ret &= Relationship<Type1, Type2>::type::value == value;
return ret;
}
+#endif
// Test types.
class ClassType { };
class IncompleteClass;
+ struct ExplicitClass
+ {
+ ExplicitClass(double&);
+ explicit ExplicitClass(int&);
+ };
+
int truncate_float(float x) { return (int)x; }
long truncate_double(double x) { return (long)x; }