oven::at

oven::atは範囲のn番目の要素を参照する範囲アルゴリズムです。

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

using namespace pstade::oven;

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

    assert(at(v, 2)  == 4);
    assert((v|at(2)) == 4);
}

n番目の要素のコピーを返すoven::value_atもあります。

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

using namespace pstade::oven;

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

    assert(value_at(v, 2)  == 4);
    assert((v|value_at(2)) == 4);

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

【参照】
pstade::oven::at

pstade::oven::value_at