I need to access type information from a class that I used to instantiate another class.
In particular, it void Beta<T>::do_something()must accept the type parameters W, Sthat were used to instantiate the class Alpha<W, S>.
template<typename W, S>
class Alpha {
public:
using carry_W = W;
using carry_S = S;
};
template<typename T>
class Beta {};
template<typename T>
void Beta<T>::do_something(typename T::carry_W p1, typename T::carry_S p2) {}
Beta<Alpha<int, double>> b;
The solution above works fine, but is there any other way to do this without superimposing types as members of a class? Is there a C ++ way to do this?
source
share