假设我有一个班级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;
};
但是这失败了,因为你不能在模板中有两个参数包。
那我该怎么做?
答案 0 :(得分:2)
编写涉及模板的代码时,请确保为每个开放>
包含<
,否则您的代码将无法编译。
您可能想要编写正则表达式以确保您的代码具有此属性。不要:它无法完成。 c ++编译器很乐意为您提供有关丢失的>
的错误消息,通常易于阅读&#34; <
第77行未关闭&#34;。
毋庸置疑,您的代码(一旦添加了缺失的>
),编译就好了。