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