如何为与其类内联创建的对象提供模板参数
How do I give template arguments to an object created inline with its class?
我知道在c++中我们可以这样做:
class A {} a;
这使得类型为A
的对象命名为a
。它相当于:
A a;
我想知道如何用模板做到这一点。例如:
template <typename T> struct N {} <int> n;
这个不能编译,但是你明白了。如何将模板参数指定给与类定义内联创建的对象?这可能吗?
关闭}
后的物质按标准称为init-declarator-list
14.3明确禁止在模板类声明中使用它们:
在模板声明中,显式特化或显式在声明中实例化init-declarator-list最多包含一个声明符。当这样的声明用于
我认为你做不到。根据我的理解,你提到的结构体和类的形式是为了与c语言向后兼容而保留的——你可以为结构体这样做。
不过这主意不错:)
你不能从模板定义中声明变量,即使所有模板参数都有默认值。
这也是错误:
template <typename T = int> struct N {} n;
- http://ideone.com/vFlIEg
相关文章:
- 将值从指针复制到常量对象参数
- 隐式对象参数和此指针
- 将对象传递给 Java C++与使用 JNI 逐个设置对象参数
- 如何通过对象参数从指针矢量中删除对象和指针
- 是否有一种方法可以根据派生的可能性值范围限制对象参数
- 从从可调用参数创建的线程对象参数移动构造 C++11 线程
- 为什么我不能通过传入的类对象参数杀死 pthread。
- 无法异步启动带有对象参数的函数
- 为什么在 std::transform 中使用函数对象参数失败并且需要 lambda 表达式
- 实例对象如何查看函数的对象参数的私有成员?
- 在没有对象参数编译器错误的情况下调用非静态成员函数
- 具有常数对象参数的类函数
- 模板功能没有对象参数专业
- 为什么不能在对象参数前面使用常量?
- 具有不同签名的函数对象参数的函数
- 调用非静态成员函数,没有对象参数错误
- 如何从 C# 调用具有 void* 回调和对象参数的 C++ Dll 中的函数
- 对函数使用对象参数或不使用参数
- c++错误:调用没有对象参数的非静态成员函数
- c++对象参数:多态性,值语义,对象生命周期