18 #ifndef CUPT_RANGE_SEEN
19 #define CUPT_RANGE_SEEN
26 template <
typename IteratorT >
27 struct Range:
public std::pair< IteratorT, IteratorT >
29 typedef std::pair< IteratorT, IteratorT > Base;
33 Range(
const IteratorT& from,
const IteratorT& to)
37 IteratorT begin()
const
45 typedef typename std::decay<decltype(*std::declval<IteratorT>())>::type Value;
46 auto asVector() const -> std::vector< Value >
48 std::vector< Value > result;
49 for (
const auto& element: *
this)
51 result.push_back(element);
56 typedef IteratorT Iterator;