【发布时间】:2015-09-07 08:21:50
【问题描述】:
我需要从我用来实例化另一个类的类中访问类型信息。
具体来说,void Beta<T>::do_something() 需要接受 W, S 类型的参数,这些参数用于实例化类 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;
上面的解决方案工作正常,但有没有其他方法可以做到这一点而不将类型别名为类成员?有没有更“C++”的方式来做到这一点?
【问题讨论】:
-
纯风格,但我宁愿使用类似this
-
你为什么不把所有的参数都带上转发引用,然后让
do_something内部的有效性来做剩下的事情? -
@Columbo 不确定我明白了,是否可以进一步开发?
标签: c++ templates generic-programming