13 virtual void rotate(int) { }
28 { return __is_polymorphic(T); }
36 { return !!__is_polymorphic(T); }
43 static const bool trait = __is_polymorphic(T);
47 const bool My2<T>::trait;
49 template<typename T, bool b = __is_polymorphic(T)>
51 { static const bool trait = b; };
53 template<typename T, bool b>
54 const bool My3_help<T, b>::trait;
62 { return My3_help<T>::trait; }
65 #define PTEST(T) (__is_polymorphic(T) && f<T>() \
66 && My<T>().f() && My2<T>::trait && My3<T>().f())
68 #define NTEST(T) (!__is_polymorphic(T) && !f<T>() \
69 && !My<T>().f() && !My2<T>::trait && !My3<T>().f())
74 assert (NTEST (void));
75 assert (PTEST (std::exception));