c++ - 为什么模板非类型参数不能是类类型

标签 c++ templates types

class Example {

   // ...
};

template <typename T, Example ex>  //Error
class MyExample{

   // ...
};

我的问题是为什么模板非类型参数不能是类类型?

我得到的错误是

错误:“class Example”不是模板常量参数的有效类型

最佳答案

很简单,因为这是规则。合理地,模板参数必须在编译时解析,并且类类型的对象仅在运行时构造(即使是临时对象和具有静态存储持续时间的对象)。您只能拥有在编译时可解析的“值”模板参数,例如整数和类型。不过,模板参数可以是指向对象的指针或引用。

关于c++ - 为什么模板非类型参数不能是类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104147/

相关文章:

c++ - 对采用 "traits"模板参数的对象进行单元测试

c++ - 我遇到了内存泄漏,但我不知道为什么

c++ - 立即在不同的线程上通过 IP 发送

c++ - 带有模板 C++ 的嵌套类

C# 泛型方法并返回在 xml 方法中创建的参数化类型的对象

types - Google 表格支持哪些数据类型?

c++ - 拓扑排序的 C++ 实现

php - Laravel 扩展 Blade 模板 - $errors 集合中的错误

C++ - 如何调用递归继承的模板化基类的模板化方法

java - 1024 的值在二进制表示中比 1 的值多一位