我一直在尝试从一个简单的用 C 编写的自制游戏引擎过渡到 C++,并偶然发现了 Mike McShaffry 的一本好书(游戏编码完成)。 为了全能的 bios,我无法全神贯注于他的“可选模板类”,即这段代码:
class optional_empty { };
template <unsigned long size>
class optional_base
{
public:
// some code here
};
template <class T>
class optional : public optional_base<sizeof(T)>
{
public:
// some code here
};
为什么在继承时将“sizeof(T)”用作模板参数,而不仅仅是简单的“T”? 是否可以拥有动态大小的 T? 没有“sizeof...”运算符,因此它可能与可变参数模板无关。 或者是吗? 谢谢。
最佳答案
因为 optional_base
不需要模板类型参数,而是模板值参数(类型为unsigned long
).
关于c++ - <sizeof(T)> 作为 C++ 中的继承类模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717628/