oven::front

oven::frontは範囲の先頭要素を参照する範囲アルゴリズムです。

#include <cassert>
#include <vector>
#include <pstade/oven/initial_values.hpp>
#include <pstade/oven/front.hpp>

using namespace pstade::oven;

int main()
{
    std::vector<int> v = initial_values(3, 1, 4);

    assert(front(v)  == 3);
    assert((v|front) == 3);

    v|front = 5;
    assert((v|front) == 5);
}

先頭要素のコピーを返すoven::value_frontもあります。

#include <cassert>
#include <vector>
#include <pstade/oven/initial_values.hpp>
#include <pstade/oven/front.hpp>

using namespace pstade::oven;

int main()
{
    std::vector<int> v = initial_values(3, 1, 4);

    assert(value_front(v)  == 3);
    assert((v|value_front) == 3);

    v|value_front = 5; // エラー!右辺値を書き換えられない
}

【参照】
pstade::oven::front

pstade::oven::value_front