C++ 为什么我们必须做模板<;类别/类型名称>;而不仅仅是模板T
而不是C++ 为什么我们必须做模板<;类别/类型名称>;而不仅仅是模板T,c++,templates,C++,Templates,而不是 template <typename T> void func(T arg) {/* something */} 模板 void func(T arg){/*某物*/} 为什么我们不能这样做 template <T> void func(T arg) {/* something */} 模板 void func(T arg){/*某物*/} 从cplusplus.com: 两者之间唯一的区别是 原型是使用 关键字类或关键字typename。 它的用途是模糊
template <typename T>
void func(T arg) {/* something */}
模板
void func(T arg){/*某物*/}
为什么我们不能这样做
template <T>
void func(T arg) {/* something */}
模板
void func(T arg){/*某物*/}
从cplusplus.com:
两者之间唯一的区别是
原型是使用
关键字类或关键字typename。
它的用途是模糊的,因为两者
表达方式完全相同
意思和行为完全相同
对
对我来说,这似乎是不必要的样板文件。因为模板参数并不总是类型。您可以有一个作为整数值的模板参数,例如,在
std::bitset
的情况下,请参见关于模板的非类型参数的部分
您需要一些关键字来区分类型参数和非类型参数
template <class T, int N>
class mysequence {
T memblock [N];
public:
void setmember (int x, T value);
T getmember (int x);
};
模板
类mysequence{
T memblock[N];
公众:
void setmember(int x,T值);
T getmember(intx);
};
甚至模板
,以显示所有三个可能的模板参数。