----- Original Message ----- From: "David Abrahams" <[EMAIL PROTECTED]>
> >> template <class T> > >> struct X > >> { > >> template <class U> > >> X(X<U> const&, typename enable_if<some_property_of<U>::value, > > int*>::type = 0); > > ^ > > It chokes here? > > Sorry, no. I mean the 2nd '<' in that line. Okay. > > Is it legal to use the template parameter 'U' in a non-deduced > > context like that? I'm curious because I thought that it wasn't > > (though I could be wrong). > > Why do you say that's non-deduced? Up to the point of enable_if, it's > standard stuff; that's how shared_ptr conversion works. I didn't know that this was legal: template<class T> struct identity { typedef T type; }; template<class T> void func(const T&, typename identity<T>::type* = 0); int main() { func(10); return 0; } Paul Mensonides _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost