13#ifndef DUMUX_COMMON_ENUMERATE_HH 
   14#define DUMUX_COMMON_ENUMERATE_HH 
   28template <
typename Range,
 
   29          typename RangeIterator = 
decltype(std::begin(std::declval<Range>())),
 
   30          typename = 
decltype(std::end(std::declval<Range>()))>
 
   37        bool operator != (
const Iterator & other)
 const { 
return iter != other.iter; }
 
   38        void operator ++ () { ++i; ++iter; }
 
   39        auto operator * ()
 const { 
return std::tie(i, *iter); }
 
   45        auto begin() { 
return Iterator{ 0, std::begin(iterable) }; }
 
   46        auto end() { 
return Iterator{ 0, std::end(iterable) }; }
 
   49    return Iterable{ std::forward<Range>(iterable) };
 
 
constexpr auto enumerate(Range &&iterable)
A Python-like enumerate function.
Definition enumerate.hh:31