> -----Original Message----- > From: David B. Held [mailto:[EMAIL PROTECTED]] > Sent: Thursday, December 05, 2002 10:56 AM > To: [EMAIL PROTECTED] > Subject: [boost] Re: [MPL] Making Generators > > > "David Abrahams" <[EMAIL PROTECTED]> wrote in message > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > [...] > > I don't know... well, it could detect whether there was a ::type > > member, [...] > > Really??? Is it possible to detect the presence of a typedef > without generating an error? How do you do this? I think > this is a very useful feature! > > Dave
Vandevoorde and Josuttis call it SFINAE, "substitution failute is not an error." In "C++ Templates: The Complete Guide" (Recommended), they give this example on pages 106-107: typedef char RT1; typedef struct {char a[2];} RT2; template<typename T> RT1 test(typename T::X const*); template<typename T> RT2 test(...); #define type_has_member_type_X(T) \ (sizeof(test<T>(0) == 1) _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost