为什么没有以下代码无效constexpr
:
template<typename ...Tpack>
auto CalculateSum(Tpack ...pack)
{
if constexpr (sizeof...(Tpack) > 0)
return (pack + ...);
else
return 0;
}
int main()
{
std::cout << CalculateSum(2, 3, 4, 5, 7.5, 6) << '\n';
}
而如果仅int
在论点中存在,则它是有效的。
编译器说:返回类型中的“auto”在此处推导为“int”,但在前面的 return 语句中推导为“double”
但如何constexpr
解决?