是否可以使用由 X 中的typedef定义的类型 Y ,来自第三个模板输入 Z ,其中 X 作为 Z 的模板参数?
这个(非编译)伪代码说明了所需的行为:
struct X {
typedef float Y;
};
template<typename T>
struct Z {
void DoSomething(T::Y with_this);
};
答案 0 :(得分:3)
是的,这是可能的。您只需要让编译器知道T::Y
是一种类型,因为它取决于T
:
void DoSomething(typename T::Y with_this);