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