range-based for で固定回ループ
雑に書いてみた。
コード
#include <iostream> #include <utility> #include <array> template<std::size_t... Index> std::array<std::size_t, sizeof...(Index)> range_impl(std::index_sequence<Index...>){ return {{ Index... }}; } template<std::size_t N> auto range = range_impl(std::make_index_sequence<N>{}); int main(){ for(auto&& i : range<10>){ std::cout << i << std::endl; } return 0; }
出力
0 1 2 3 4 5 6 7 8 9
定数しか渡せないあたり雑。