gpt4 book ai didi

c++ - 理解模板中的 typedef

转载 作者:搜寻专家 更新时间:2023-10-31 01:40:15 24 4
gpt4 key购买 nike

我正在检查示例代码,它试图教授状态图的实现。我在模板中看到 typedef,例如 typedef typename T::HostClass Host

为清楚起见,模板定义为

template<typename T>
struct Init {
typedef typename T::HostClass Host;
Init(Host& h) :
host_(h) {
}
~Init() {
T::entry(host_);
T::init(host_);
}
Host& host_;
};

我开始了解 typedef 旁边的 typename 的用途,并且正在解释 Highly-Typed-Languages 例如 C++ (伙计们,我说得对吗?是吗?)

混淆在 HostClass

typedef typename T::HostClass Host;

  • 什么是主机类
  • 这是否意味着任何类型 T 都必须有一个成员主机类?

最佳答案

HostClass 必须是 T 范围内的嵌套类或另一个 typedef(或别名类型)。

如果 T 没有它,代码将无法编译。

关于c++ - 理解模板中的 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com