#include #include #include #include #include int main(int, char**) { typedef boost::iterator_range::iterator> range1_t; typedef boost::iterator_range range2_t; typedef boost::range::joined_range joined_range_t; std::vector s1{'a', 'b', 'c', 'd', 'e'}; std::vector s2{'f', 'g', 'h', 'i', 'j'}; range1_t range1 = boost::make_iterator_range(s1.begin(), s1.end()); range2_t range2 = boost::make_iterator_range(s2.data(), s2.data()+s2.size()); joined_range_t joined_range = boost::range::join(range1, range2); std::copy(joined_range.begin(), joined_range.end(), std::ostream_iterator(std::cerr, "\n")); return 0; }