1
如何组合来自C++中两个参数包的值? 换句话说,如何写功能C++结合来自两个(或更多)参数包的值
LetsStart<int, -1, 10, 3>("This is -1", "And this is 10", "3!!!");
这将输出
-1 This is -1
10 And this is 10
3 3!!!
也就是说,它应该选择来自两个包装中,第一包装和从第二组第一值,则第二值第一值,则来自包装等3个值...
在第一个我尝试我想是这样的
template<class T, T... Firsts, class TSecond>
void LetsStart(TSecond... Seconds) {
Output((Firsts, Seconds)...);
}
但这不起作用...
//当然我wrote this function,但我相信存在更正确和简单的方法来完成此任务。那么,你能指出我的方式吗?
的想法是存储在元组的每个包(或其他类),然后通过索引遍历这两个元组'N:
可以用下面的例子中
main
测试两种功能从'0'到'sizeof ...(Firsts)'。我会开始回答这个问题,如果我不认为最终的课程有点无用......你对此有什么想法? – davidhigh 2014-09-27 20:55:07我不太了解这个要求,但为什么你不能只使用地图? – 2014-09-27 21:00:04
你在正确的轨道上;在这种情况下你不能扩展参数包。允许扩展的一种上下文是braced-init-list:http://coliru.stacked-crooked.com/a/0c4980989603a770 – dyp 2014-09-27 21:01:29