asgn
 
Loading...
Searching...
No Matches
tagged::range_class< TL > Class Template Reference

A list of tagged ranges (an N-dimensional box) More...

#include <tagged.hpp>

Inheritance diagram for tagged::range_class< TL >:

Public Member Functions

 range_class (const range_class< TL > &... vl) noexcept
 
std::size_t size () const
 Size (volume) of the range.
 
iterator_class< TL ... > begin () const noexcept
 Lexicographical iterator through the N-dimensional box.
 
iterator_class< TL ... > end () const noexcept
 Lexicographical iterator through the N-dimensional box.
 
template<typename T>
requires impl::one_of< selector<T>, selector<TL> ...> && non_static_tag< pick<selector<T>, TL ...>>
auto && get () const noexcept
 Retrieve individual range by selector tag.
 
template<std::size_t I>
auto && get () const noexcept
 Retrieve individual range by index.
 

Static Public Member Functions

template<typename T>
requires impl::one_of< selector<T>, selector<TL> ...> && static_tag< pick<selector<T>, TL ...>>
static constexpr auto get () noexcept
 Retrieve individual range by selector tag.
 

Detailed Description

template<tag ... TL>
class tagged::range_class< TL >

A list of tagged ranges (an N-dimensional box)

Although the order of tags is technically preserved, most functions working with range lists ignore the order

Template Parameters
...TL

Member Function Documentation

◆ begin()

template<tag ... TL>
iterator_class< TL ... > tagged::range_class< TL >::begin ( ) const
inlinenoexcept

Lexicographical iterator through the N-dimensional box.

Returns
Iterator returning multidimensional index containing the lowermost values of all ranges

◆ end()

template<tag ... TL>
iterator_class< TL ... > tagged::range_class< TL >::end ( ) const
inlinenoexcept

Lexicographical iterator through the N-dimensional box.

Returns
The sentinel iterator

◆ get() [1/3]

template<tag ... TL>
template<typename T>
requires impl::one_of< selector<T>, selector<TL> ...> && non_static_tag< pick<selector<T>, TL ...>>
auto && tagged::range_class< TL >::get ( ) const
inlinenoexcept

Retrieve individual range by selector tag.

Template Parameters
TSelector tag
Returns
Range

◆ get() [2/3]

template<tag ... TL>
template<std::size_t I>
auto && tagged::range_class< TL >::get ( ) const
inlinenoexcept

Retrieve individual range by index.

Template Parameters
I0-based index of dimension
Returns
Range

◆ get() [3/3]

template<tag ... TL>
template<typename T>
requires impl::one_of< selector<T>, selector<TL> ...> && static_tag< pick<selector<T>, TL ...>>
static constexpr auto tagged::range_class< TL >::get ( )
inlinestaticconstexprnoexcept

Retrieve individual range by selector tag.

Template Parameters
TSelector tag
Returns
Range

◆ size()

template<tag ... TL>
std::size_t tagged::range_class< TL >::size ( ) const
inline

Size (volume) of the range.

Returns
The size

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