David Abrahams wrote: > I was just getting ready to propose a new config macro called > BOOST_ARG_DEPENDENT_TYPENAME based on this test: > > struct id { typedef int type; }; > > template <class T> struct foo; > > template <class T> > void f(T) > { > typedef foo<typename T::type> y; > } > > int main() > { > f(id()); > return 0; > } > > But it turns out that this test is very similar to the one for > BOOST_DEDUCED_TYPENAME, and in fact it finds the same compiler (VC6). > So I guess the question is, do we currently have the right name for > the test and macro? VC6 will support typename on template arguments > in some contexts: > > > struct id { typedef int type; }; > > template <class T> > void f(T) > { > typedef typename T::type x; > } > > int main() > { > f(id()); > return 0; > }
This means that you could have rewritten the above f as template <class T> void f(T) { typedef typename T::type x; typedef foo<x> y; } Perhaps you should test template <class T> foo<typename T::type> f(T); instead, if that's what you need. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost