模板语句的“类”部分是做什么的?
例子:
template <class T>
class Something
{
public:
Something(const T &something);
}
还有什么可以去那里?我通常只看到“类”。
最佳答案
class
关键字与 typename
含义相同大多数情况下是关键字。它们都表明 T 是一个类型。
关键字之间唯一的区别class
和 typename
是那个class
可用于向模板提供类模板模板参数,而 typename
不能。考虑:
template<template <class T> class U> // must be "class"
std::string to_string(const U<char>& u)
{
return std::string(u.begin(),u.end());
}
您唯一可以用来代替 class
的东西或 typename
keywords 是一个整数类型。例如:
template<std::size_t max>
class Foo{...};
...
Foo<10> f;
有关这方面的具体示例,请查看 std::bitset<N>
在标准库中。
关于c++ - 为什么 "class"中有 "template <class x>"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348730/