// Copyright {Jagger Software Limited} 2003 #if !defined CONTAINER_RANGE_VIEW_INCLUDED || \ defined CONTAINER_RANGE_VIEW_TEMPLATE_INCLUDED #error "container/range_view-tempate.hpp" #included directly #endif #define CONTAINER_RANGE_VIEW_TEMPLATE_INCLUDED #include namespace container // range_view - 'tors { template range_view::range_view(iterator start, iterator finish) : begin(start) , end(finish) { } template size_t range_view::size() const { return ::std::distance(begin, end); } } namespace container // range_view - convenience { template range_view make_range_view(iterator begin, iterator end) { return range_view(begin, end); } } namespace container // range_view - in/equality { template bool operator==(const range_view & lhs, const range_view & rhs) { return lhs.begin == rhs.begin && lhs.end == rhs.end; } template bool operator!=(const range_view & lhs, const range_view & rhs) { return !(lhs == rhs); } }