Rokiのチラ裏

学生による学習のログ

コンパイル時のシーケンス生成は時が経って簡単になった

偶然見つけた以下のエントリ。

cpplover.blogspot.jp saito.hatenablog.jp

2010年...あれから時は経ち、いとも簡単にコンパイル時のシーケンス生成は簡単になった。

#include<srook/mpl/constant_sequence/equ_sequence.hpp>
#include<srook/mpl/constant_sequence/algorithm/transfer_array.hpp>
#include<iostream>

for(auto&& value:srook::constant_sequence::transfer_array<srook::constant_sequence::make_equ_sequence_t<5>>::value)
        std::cout<<value<<std::endl;

make_equ_sequenceとかいう適当な命名の再起関数によって数値5から0,1,2,2,3,3,3,4,4,4,4,5,5,5,5,5のシーケンスを生成し、transfer_arrayによって配列(std::array)に変換している。

良き時代になったものだ。