そうでない引数を無視するという条件で、可変数の引数を持つ合計関数を書きたいと思いますstd::is_arithmetic
動作する再帰バージョンを見つけました
auto old_sum(){
return 0;
}
template<typename T1, typename... T>
auto old_sum(T1 s, T... ts){
if constexpr(std::is_arithmetic_v<T1>)
return s + old_sum(ts...);
else
return old_sum(ts...);
}
if constexpr
フォールド式のコンテキストで を使用して、次のコードで引数パックの算術型のみを考慮することができるかどうか疑問に思っています。
template<typename... T>
auto fold_sum(T... s){
return (... + s);
}