【发布时间】:2016-12-01 09:31:45
【问题描述】:
有没有一种简单的方法来获得可变参数模板模板参数。例如考虑以下函数签名
template<template<typename,size_t...> class Pack,
typename T, size_t ... Args>
void foo(const Pack<T,Args...>& a);
如果我们想传递两个Packs,我们现在必须做一个重载
template<template<typename,size_t...> class Pack,
typename T, size_t ... Args0, size_t ... Args1>
void foo(const Pack<T,Args0...>& a, const Pack<T,Args1...>& b);
现在,如果我们想传递具有不同可变参数的 Pack 的可变数量的对象,例如Args0...,Args1...,Args2...。
所以我在想是否有一种实用的方法来做一些事情(以下肯定是一个草图表示)。
template<template<typename,size_t...> ... class Pack, typename T,...>
void foo(const Pack<T,...> ... packs);
【问题讨论】:
-
T和Args需要做什么?您最好使用template <typename...Ts>并编写一些简单的特征来提取您需要的内容。 -
@Klaus 实际上,是的,你可以... See for yourself
-
为什么参数只有一次?应该是“Variadic variadic template parameters 模板参数”
-
哈哈,开个玩笑
标签: c++ c++11 variadic-templates variadic-functions template-templates