c++ - 关于模板类语法

标签 c++ templates template-specialization parameter-pack

我想问一些关于模板类的问题。我知道以下基本知识:

template<typename X, typename Y>
class tmp{
...
}
但是,在我的编程任务的起始文件中,我看到了一种新格式:
template<typename X, typename... Y>
class tmp<std::tuple<Y...>,X>{
...
}
在这里,我知道“...”是参数包,但是为什么在类名之后还有另一个“<>”呢?

最佳答案

这个 :

template<typename X, typename... Y>
class tmp<std::tuple<Y...>,X>{
...
}
表示:
我们有一个带有参数X和一个参数包Y的模板。 tmp类是一个模板类,它使用Y变量中的参数包tupleX作为简单模板变量。
但这是模板的特化

关于c++ - 关于模板类语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65000356/

相关文章:

c++ - 完整模板特化错误

c++ - 有没有办法根据模板类型用值初始化变量

c++ - 我应该阅读 C++ ISO 标准的哪个 PDF?

c++ - 是否可以在 C++ 中显式实例化临时变量?

c++ - decltype,重载运算符的递归类型推导

templates - Elasticsearch模板未按预期工作

c++ - 编译器不会使用 -std=c++11 编译智能指针

c++ - 第二个指定类型在模板类型名声明中意味着什么?

c++ - 什么是 POI,它是什么意思?

c++11 - 将 std::hash 专门化为派生类