pstade::oven::initial_values

#include <vector>
#include <list>

#include <pstade/oven/initial_values.hpp>

#include <pstade/oven/io.hpp>
#include <pstade/oven/cycled.hpp>
#include <pstade/oven/identities.hpp>

int
main(){
    namespace oven = pstade::oven;

    std::vector<int> array = oven::initial_values(0, 1, 2, 3, 4);
    
    std::cout << (array|oven::identities) << std::endl;
    
    std::cout << (oven::initial_values(0, 1, 2)|oven::cycled(3)) << std::endl;
    
    std::list<std::string>    list = oven::initial_values("NO", "Thank", "You!");

    return 0;
}


[出力]

{0,1,2,3,4}
{0,1,2,0,1,2,0,1,2}


pstade::oven::initial_values() は、range (配列)の初期化を行ってくれます。
C++0x でいうところの initializer_list みたいな感じかにゃ?
std::vector や std::list の初期化なんかが簡単に行えます。
あと std::string をオブジェクトして扱って欲しい場合に便利。

std::cout << (oven::initial_values("アリ")|oven::cycled) << std::endl;


[出力]

{アリ,アリ,アリ,アリ,アリ,アリ,アリ,アリ,アリ,...


[pstade]
ver 1.04.3