oven::equals

oven::equalsはstd::equalの範囲アルゴリズム版で
範囲のサイズチェックが付いています。

#include <iostream>
#include <cassert>
#include <vector>
#include <list>
#include <pstade/oven/initial_values.hpp>
#include <pstade/oven/equals.hpp>

using namespace pstade::oven;

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

    assert(equals(v, ls));

    // std::equalはサイズチェックがないので以下のケースがtrueになってしまう
    const std::vector<int> v2 = initial_values(1, 2, 3);
    bool eq = std::equal(v2.begin(), v2.end(), v.begin());
}

【参照】
pstade::oven::equals