
Hello, boost typeof library can automatically deduce the type. But I'm interested in finding the nested type. For example, if I have a template S<T1, T2>. I'd like to deduce that it has two template arguments, I'd like to access its template argument by index (say, 0 and 1 for this case). I did a preliminary search, but found no such facilities. I may overlook something. Would you please let me know if there is such a facility in boost? -- Regards, Peng

AMDG Peng Yu wrote:
boost typeof library can automatically deduce the type.
But I'm interested in finding the nested type. For example, if I have a template S<T1, T2>. I'd like to deduce that it has two template arguments, I'd like to access its template argument by index (say, 0 and 1 for this case).
I did a preliminary search, but found no such facilities. I may overlook something. Would you please let me know if there is such a facility in boost?
There isn't, but it's fairly easy to do template<class T> struct template_parameters; template<template<class> class T, class T0> struct template_parameters<T<T0> > : boost::mpl::vector<T0> {}; template<template<class, class> class T, class T0, class T1> struct template_parameters<T<T0, T1> > : boost::mpl::vector<T0, T1> {}; template<template<class, class, class> class T, class T0, class T1, class T2> struct template_parameters<T<T0, T1, T2> > : boost::mpl::vector<T0, T1, T2> {}; template<template<class, class, class, class> class T, class T0, class T1, class T2, T3> struct template_parameters<T<T0, T1, T2, T3> > : boost::mpl::vector<T0, T1, T2, T3> {}; //... In Christ, Steven Watanabe

El 12/06/2010 10:19 a.m., Peng Yu escribió:
Hello,
But I'm interested in finding the nested type. For example, if I have a template S<T1, T2>. I'd like to deduce that it has two template arguments, I'd like to access its template argument by index (say, 0 and 1 for this case).
I did a preliminary search, but found no such facilities. I may overlook something. Would you please let me know if there is such a facility in boost?
Check Template Traits, at Boost Vault http://www.boostpro.com/vault/index.php?action=downloadfile&filename=templat... However, note it does not support indexed access to template arguments, since it was modeled after TypeTraits function_traits. Agustín K-ballo Bergé.- http://talesofcpp.blogspot.com
participants (3)
-
Agustín K-ballo Bergé
-
Peng Yu
-
Steven Watanabe