如何拥有多个参数包
How to have multiple parameter packs
假设我有一个类List
:
template<class... items>
class List;
这实际上只是一个粘贴大量参数并为其命名的地方。
我真正想要的是以某种方式将两个List
合并在一起。
尝试:
template<class First,class Second>
struct Merge { };
template<template<class...> class First,template<class...> class Second,class... FirstItems,class... SecondItems>
struct Merge<First<FirstItems...>,Second<SecondItems...> >{
typedef List<FirstItems...,SecondItems...> value;
};
但这会失败,因为不能在一个模板中包含两个参数包。
那么我该怎么做呢?
在编写涉及模板的代码时,请确保每个打开的<
都包含关闭的>
,否则您的代码将无法编译。
您可能会想编写一个正则表达式来确保您的代码具有此属性。不要:这是不可能的。c++编译器会很高兴地向您提供一条关于缺少>
的错误消息,通常是在一个易于阅读的"第77行的<
未关闭"中。
不用说,您的代码(一旦添加了缺少的>
)编译得很好。
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 是否可以获取成员函数模板参数的拥有对象?
- 在C++中,有没有一种方法可以让我在不传递参数的情况下拥有一个函数
- 当超出列时,clang格式强制每个参数/参数拥有自己的行?
- 如何有效地传递 std::vector<cv::P oint3f> 的子向量作为参数(不拥有函数)
- 如何拥有具有类型和大小的可变参数模板
- 如何拥有多个参数包
- open() 的参数:每个人都应该拥有对文件的所有访问权限,并且应该在创建时被截断
- 朋友拥有自己的类模板和其他模板参数
- 如何定义它可以拥有任意参数的模板类
- 如何拥有一个带有类元素的向量,其中一些元素分配了构造函数参数
- 如何在一个可变模板中拥有多个参数包
- Doxygen:是否可以对C++函数参数进行分组,即在不复制的情况下拥有相同的文档
- C++可以拥有一个包含不同类型参数的专用模板对象的容器
- MSXML方法是否对其BSTR参数拥有内存所有权?