Sprout で乱数の配列を生成する

Sprout で乱数の配列を生成する場合、sprout::generate と sprout::random::combine を使用します。

[ソース]

#include <sprout/random.hpp>
#include <sprout/array.hpp>
#include <sprout/algorithm.hpp>
#include <iostream>

int
main(){
    static constexpr sprout::default_random_engine engine;
    static constexpr sprout::uniform_smallint<int> dist(1, 6);

    static constexpr auto result = sprout::generate(
        sprout::array<int, 10>{},
        sprout::random::combine(engine, dist)
    );
    
    static_assert(
        result == sprout::make_array<int>(1, 1, 5, 2, 4, 2, 6, 2, 5, 1),
    "");

    for(auto&& n : result){
        std::cout << n << std::endl;
    }

    return 0;
}

[出力]

1
1
5
2
4
2
6
2
5
1