oven::back

oven::backは範囲の最後尾要素を参照する範囲アルゴリズムです。

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

using namespace pstade::oven;

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

    assert(back(v)  == 4);
    assert((v|back) == 4);

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

最後尾要素のコピーを返すoven::value_backもあります。

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

using namespace pstade::oven;

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

    assert(value_back(v)  == 4);
    assert((v|value_back) == 4);

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

【参照】
pstade::oven::back

pstade::oven::value_back