|
dune-common 2.11
|
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 | |
| typedef Impl::IntegralRangeIterator< T > | iterator |
| type of iterator | |
| typedef std::make_unsigned_t< T > | size_type |
| unsigned integer type corresponding to value_type | |
| typedef decltype(shift_integer_sequence< from >(std::make_integer_sequence< T, to-from >())) | integer_sequence |
| type of corresponding std::integer_sequence | |
Public Member Functions | |
| constexpr | StaticIntegralRange () noexcept=default |
| default constructor | |
| constexpr | operator IntegralRange< T > () const noexcept |
| cast into dynamic IntegralRange | |
| constexpr | operator integer_sequence () const noexcept |
| cast into corresponding std::integer_sequence | |
| 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) | |
| constexpr value_type | operator[] (const size_type &i) const noexcept |
| access specified element (dynamic version) | |
Static Public Member Functions | |
| static constexpr integer_sequence | to_integer_sequence () noexcept |
| return corresponding std::integer_sequence | |
| static constexpr iterator | begin () noexcept |
| obtain a random-access iterator to the first element | |
| static constexpr iterator | end () noexcept |
| obtain a random-access iterator past the last element | |
| static constexpr std::integral_constant< bool, from==to > | empty () noexcept |
| check whether the range is empty | |
| 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 | |
| static constexpr bool | contains (value_type index) noexcept |
| check whether given index is within range [from, to) | |
Detailed Description
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
-
T type of integers contained in the range to first element not contained in the range from first element contained in the range, defaults to 0
Member Typedef Documentation
◆ integer_sequence
| typedef decltype(shift_integer_sequence<from>(std::make_integer_sequence<T, to-from>())) Dune::StaticIntegralRange< T, to, from >::integer_sequence |
type of corresponding std::integer_sequence
◆ iterator
| typedef Impl::IntegralRangeIterator<T> Dune::StaticIntegralRange< T, to, from >::iterator |
type of iterator
◆ size_type
| typedef std::make_unsigned_t<T> Dune::StaticIntegralRange< T, to, from >::size_type |
unsigned integer type corresponding to value_type
◆ value_type
| typedef T Dune::StaticIntegralRange< T, to, from >::value_type |
type of integers contained in the range
Constructor & Destructor Documentation
◆ StaticIntegralRange()
|
constexprdefaultnoexcept |
default constructor
Member Function Documentation
◆ begin()
|
inlinestaticconstexprnoexcept |
obtain a random-access iterator to the first element
◆ contains()
|
inlinestaticconstexprnoexcept |
check whether given index is within range [from, to)
◆ empty()
|
inlinestaticconstexprnoexcept |
check whether the range is empty
◆ end()
|
inlinestaticconstexprnoexcept |
obtain a random-access iterator past the last element
◆ operator integer_sequence()
|
inlineconstexprnoexcept |
cast into corresponding std::integer_sequence
◆ operator IntegralRange< T >()
|
inlineconstexprnoexcept |
cast into dynamic IntegralRange
◆ operator[]() [1/2]
|
inlineconstexprnoexcept |
access specified element (dynamic version)
◆ operator[]() [2/2]
|
inlineconstexprnoexcept |
access specified element (static version)
◆ size()
|
inlinestaticconstexprnoexcept |
obtain number of elements in the range
◆ to_integer_sequence()
|
inlinestaticconstexprnoexcept |
return corresponding std::integer_sequence
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8