Ral*_*zky 8 c++ variadic-templates c++11
我想写一个模板函数,如下所示:
template <typename T>
void f( const T & ...args ) // <-- This doesn't work, unfortunately.
{
std::array<T> arr = { args... };
// and so forth.
}
Run Code Online (Sandbox Code Playgroud)
显然,C++不允许这样做,因为左侧需要一个模板参数包...args
才能使用.我想要的是一个模板函数,其中所有参数类型都相同.有一个简单的方法吗?
template <typename ... T>
void f(const T & ... args)
{
std::array<typename std::common_type<T...>::type,
sizeof...(T)> arr = {args...};
}
Run Code Online (Sandbox Code Playgroud)
template <typename ... T>
void f(const T & ... args)
{
auto arr = std::experimental::make_array<void>(args...);
}
Run Code Online (Sandbox Code Playgroud)
void 使返回类型成为common_type
输入参数的类型,否则您可以明确指定您想要的类型(如果您知道的话)。
归档时间: |
|
查看次数: |
358 次 |
最近记录: |