22/03/11 07:47:35.25 GmBPyzdt.net
#include <utility>
template<class First>auto sum(First first){return first;}
template<class First, class... Rest>
auto sum(First first, Rest... rest){
return first+sum(rest...);
}
template <class T, T... Seq>
auto sum_seq(std::integer_sequence<T, Seq...>) {
return sum(Seq...);
}
int main() {
return sum_seq(std::make_index_sequence<100>());
}
こんな感じになるよ
URLリンク(godbolt.org)
途中経過のテンプレートも全て関数実体として展開される
最適化すると、この例だと全部定数で計算されるけど