【发布时间】:2021-11-28 21:27:13
【问题描述】:
我正在编写带有可变参数的constexpr 乘积函数。我只能在下面获得“版本 1”。尝试编译“版本 2”时,我收到错误声明类型包含未扩展的参数包'data_type'。谁能解释一下为什么会这样?
/** Version 1. */
template <typename data_type, typename ...data_types>
constexpr data_type Product1(data_type _first, data_types ..._rest) // This code compiles :)
{
return _first*(_rest * ...);
}
/** Version 2. */
template <typename ...data_type>
constexpr data_type Product2(data_type ..._rest) // This code does not compile :(
{
return (_rest * ...);
}
【问题讨论】:
标签: c++ templates c++17 variadic-templates variadic-functions