Skip to content

iris::build::TypeOf< V, N > Class Template Reference

Doxygen 1.15.0 generates this reference during each site build from the public headers. The C++ guide shows the API in use.

A type with value type V and N dimensions, as in int_.dim(n).dim(m). More...

#include <iris/build.hpp>

Public Member Functions

template<Operand E>
TypeOf< V, detail::plus(N, 1)> dim (E &&extent) const
 This type with one more dimension of size elements.
template<std::ranges::input_range R>
requires Operand<std::ranges::range_reference_t<R>>
TypeOf< V, dynamic_depth > dims (R &&sizes) const
 This type with a dimension for each size in sizes.
template<Operand E>
TypeOf< V, N > layout (E &&value) const
 This type read with the layout layout.
template<Operand E>
TypeOf< V, N > offset (E &&value) const
 This type with offset added to every value read.
template<class E>
requires (N == 0) && (std::same_as<std::remove_cvref_t<E>, Eol> || Operand<E>)
ListReading< V > until (E &&end) const
 A list of this type that end ends: eol, or a sentinel value.

Detailed Description

template<class V, std::size_t N>
class iris::build::TypeOf< V, N >

A type with value type V and N dimensions, as in int_.dim(n).dim(m).

Template Parameters
Vthe value type
Nthe number of dimensions, or dynamic_depth

Member Function Documentation

dim()

template<class V, std::size_t N>
template<Operand E>
TypeOf< V, detail::plus(N, 1)> iris::build::TypeOf< V, N >::dim ( E && extent) const
nodiscard

This type with one more dimension of size elements.

dims()

template<class V, std::size_t N>
requires Operand<std::ranges::range_reference_t<R>>
template<std::ranges::input_range R>
requires Operand<std::ranges::range_reference_t<R>>
TypeOf< V, dynamic_depth > iris::build::TypeOf< V, N >::dims ( R && sizes) const
nodiscard

This type with a dimension for each size in sizes.

layout()

template<class V, std::size_t N>
template<Operand E>
TypeOf< V, N > iris::build::TypeOf< V, N >::layout ( E && value) const
nodiscard

This type read with the layout layout.

offset()

template<class V, std::size_t N>
template<Operand E>
TypeOf< V, N > iris::build::TypeOf< V, N >::offset ( E && value) const
nodiscard

This type with offset added to every value read.

until()

template<class V, std::size_t N>
requires (N == 0) && (std::same_as<std::remove_cvref_t<E>, Eol> || Operand<E>)
template<class E>
requires (N == 0) && (std::same_as<std::remove_cvref_t<E>, Eol> || Operand<E>)
ListReading< V > iris::build::TypeOf< V, N >::until ( E && end) const
nodiscard

A list of this type that end ends: eol, or a sentinel value.