Skip to content

iris::build::Range Struct Reference

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

An integer range type, given with designated initializers: {.from = 1, .to = n} is 1..n, {.from = 0, .below = n} is 0..<n, and either bound may be left out. More...

#include <iris/build.hpp>

Public Member Functions

template<Operand E>
TypeOf< std::int64_t, 1 > dim (E &&extent) const
 This type with a dimension of size elements.
template<Operand E>
TypeOf< std::int64_t, 0 > layout (E &&value) const
 This type read with the layout layout.
template<Operand E>
TypeOf< std::int64_t, 0 > offset (E &&value) const
 This type with offset added to every value read.
template<class E>
requires std::same_as<std::remove_cvref_t<E>, Eol> || Operand<E>
ListReading< std::int64_t > until (E &&end) const
 A list of this type that end ends: eol, or a sentinel value.

Public Attributes

std::optional< Bound > from = std::nullopt
 The lower bound.
std::optional< Bound > to = std::nullopt
 The inclusive upper bound.
std::optional< Bound > below = std::nullopt
 The exclusive upper bound.

Detailed Description

An integer range type, given with designated initializers: {.from = 1, .to = n} is 1..n, {.from = 0, .below = n} is 0..<n, and either bound may be left out.

Member Function Documentation

dim()

template<Operand E>
TypeOf< std::int64_t, 1 > iris::build::Range::dim ( E && extent) const
nodiscard

This type with a dimension of size elements.

layout()

template<Operand E>
TypeOf< std::int64_t, 0 > iris::build::Range::layout ( E && value) const
nodiscard

This type read with the layout layout.

offset()

template<Operand E>
TypeOf< std::int64_t, 0 > iris::build::Range::offset ( E && value) const
nodiscard

This type with offset added to every value read.

until()

template<class E>
requires std::same_as<std::remove_cvref_t<E>, Eol> || Operand<E>
ListReading< std::int64_t > iris::build::Range::until ( E && end) const
nodiscard

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

Member Data Documentation

below

std::optional<Bound> iris::build::Range::below = std::nullopt

The exclusive upper bound.

from

std::optional<Bound> iris::build::Range::from = std::nullopt

The lower bound.

to

std::optional<Bound> iris::build::Range::to = std::nullopt

The inclusive upper bound.