From: "David Abrahams" <[EMAIL PROTECTED]> > "Paul Mensonides" <[EMAIL PROTECTED]> writes: > > >> template <class T> struct voidify { typedef void type; }; > >> template <class T> struct Y {}; > >> struct X > >> { > >> template <class T> > >> operator Y<T> (typename voidify<T>::type) const { return Y<T>(); } > >> }; > > > > Is this even legal? I.e. for a user-defined conversion operator to have any > > arguments at all? > > Look twice; the argument is void.
Doesn't matter. f(T) has one argument for any T. f(void) (void is a keyword here, not a type expression) has zero arguments. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost