【发布时间】:2015-12-14 17:25:06
【问题描述】:
我想写一个这样的模板函数:
template <typename T>
void f( const T & ...args ) // <-- This doesn't work, unfortunately.
{
std::array<T> arr = { args... };
// and so forth.
}
显然,C++ 不允许这样做,因为需要在 ...args 的左侧有一个模板参数包才能工作。我想要的是一个所有参数类型都相同的模板函数。有没有简单的方法可以做到这一点?
【问题讨论】:
-
如果你知道每个参数类型都是一样的:
template<class T,class...Ts>void f(T const& x, Ts const&...xs){array<T,1+sizeof...(Ts)> arr={x,xs...};}
标签: c++ c++11 variadic-templates