使用在模板化类型名中定义的类型定义

Using a typedef defined inside a templated typename

本文关键字:类型 定义      更新时间:2023-10-16

是否可以使用由另一个类型 X 中的 typedef 定义的类型 Y,从第三个模板化类型 Z 中,其中 X 充当 Z模板参数?

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

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

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

void DoSomething(typename T::Y with_this);