dune-common  2.6-git
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Dune::StaticIntegralRange< T, to, from > Class Template Reference

static integer range for use in range-based for loops More...

#include <dune/common/rangeutilities.hh>

Public Types

typedef T value_type
 type of integers contained in the range More...
 
typedef Impl::IntegralRangeIterator< T > iterator
 type of iterator More...
 
typedef std::make_unsigned_t< T > size_type
 unsigned integer type corresponding to value_type More...
 

Public Member Functions

constexpr StaticIntegralRange () noexcept=default
 default constructor More...
 
constexpr operator IntegralRange< T > () const noexcept
 cast into dynamic IntegralRange More...
 
constexpr operator integer_sequence () const noexcept
 cast into corresponding std::integer_sequence More...
 
template<class U , U i>
constexpr auto operator[] (const std::integral_constant< U, i > &) const noexcept -> std::integral_constant< value_type, from+static_cast< value_type >(i)>
 access specified element (static version) More...
 
constexpr value_type operator[] (const size_type &i) const noexcept
 access specified element (dynamic version) More...
 

Static Public Member Functions

static constexpr iterator begin () noexcept
 obtain a random-access iterator to the first element More...
 
static constexpr iterator end () noexcept
 obtain a random-access iterator past the last element More...
 
static constexpr std::integral_constant< bool, from==to > empty () noexcept
 check whether the range is empty More...
 
static constexpr std::integral_constant< size_type, static_cast< size_type >to) - static_cast< size_type >from) > size () noexcept
 obtain number of elements in the range More...
 

Public Attributes

decltype(shift_integer_sequence< from >(std::make_integer_sequence< T, to-from >())) typedef integer_sequence
 type of corresponding std::integer_sequence More...
 

Detailed Description

template<class T, T to, T from = 0>
class Dune::StaticIntegralRange< T, to, from >

static integer range for use in range-based for loops

This is a compile-time static variant of the IntegralRange. Apart from returning all range information statically, it casts into the corresponding std::integer_sequence.

Note
This range can also be used in Hybrid::forEach, resulting in a static for loop over the contained integers like a std::integer_sequence.
Template Parameters
Ttype of integers contained in the range
tofirst element not contained in the range
fromfirst element contained in the range, defaults to 0

The documentation for this class was generated from the following file: