#include "conjoining_iterator.hpp" #include #include template void print_all(Iter begin, Iter end) { std::cout << "[ "; for (Iter i = begin; i != end; i++) { if (i != begin) std::cout << ", "; std::cout << *i; } std::cout << "]" << std::endl; } int main() { std::vector first; std::vector second; first.push_back(1); first.push_back(2); first.push_back(3); second.push_back(4); second.push_back(5); second.push_back(6); // test default constructor conjoining_sequence::iterator> a; a.append(first.begin(), first.end()); a.append(second.begin(), second.end()); print_all(a.begin(), a.end()); // test one-set-arg constructor conjoining_sequence::iterator> b(first.begin(), first.end()); b.append(second.begin(), second.end()); print_all(b.begin(), b.end()); // test two-set-arg constructor conjoining_sequence::iterator> c(first.begin(), first.end(), second.begin(), second.end()); print_all(c.begin(), c.end()); // test one-empty-list behaviour conjoining_sequence::iterator> x(first.begin(), first.end(), second.end(), second.end()); print_all(x.begin(), x.end()); // test many-empty-lists-only behaviour conjoining_sequence::iterator> y(first.begin(), first.begin(), second.end(), second.end()); print_all(y.begin(), y.end()); return 0; }