使用模板化typename中定义的typedef

时间:2013-02-02 15:44:37

标签: c++ templates

是否可以使用由 X 中的typedef定义的类型 Y ,来自第三个模板输入 Z ,其中 X 作为 Z 的模板参数?

这个(非编译)伪代码说明了所需的行为:

struct X {
  typedef float Y;
};

template<typename T>
struct Z {
  void DoSomething(T::Y with_this);
};

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。您只需要让编译器知道T::Y是一种类型,因为它取决于T

void DoSomething(typename T::Y with_this);