Mike Conley <[EMAIL PROTECTED]> writes: > David Abrahams <[EMAIL PROTECTED]> wrote in > news:[EMAIL PROTECTED]: > >> This one is sticky. >> >> class Y : X { true_type f() { return is_convertible<Y,X>::type(); >> } }; false_type x = is_convertible<Y,X>::type(); >> > > I'm not sure I see the problem here. If is_convertible is a built in > compile time operator, the results should depend upon context. This should > work as expected. Really, it's no more interesting than: > > char c[23]; > cout << sizeof(c); > { > char c[22]; > cout << sizeof(c); > } > > printing 2322.
What about the ODR? Further, suppose I write a metafunction: template <class T> struct is_const_and_int_convertible : and_< is_const<T> , is_convertible<T,int> > {}; Does this one depend on context also? -- Dave Abrahams Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost