Skip to content

iris::build::Expr< V, S > 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.

An expression with value type V and shape S. More...

#include <iris/build.hpp>

Public Member Functions

template<Operand I>
requires (std::same_as<S, Open> || std::same_as<V, Dynamic>) && Integral<ValueOf<I>>
Expr< V, Open > operator[] (I &&index) const &
 Element index of this array.
template<Operand I>
requires (std::same_as<S, Open> || std::same_as<V, Dynamic>) && Integral<ValueOf<I>>
Expr< V, Open > operator[] (I &&index) &&
 Element index of this array.
template<class F, std::size_t H, Presence P>
requires std::same_as<S, Open> || std::same_as<V, Dynamic>
Expr< F, Open > get (const Field< F, H, P > &field) const &
 The field field of this record.
template<class F, std::size_t H, Presence P>
requires std::same_as<S, Open> || std::same_as<V, Dynamic>
Expr< F, Open > get (const Field< F, H, P > &field) &&
 The field field of this record.
Expr< Dynamic, Scalar > dynamic () const &
 This expression with its type and depth forgotten.
Expr< Dynamic, Scalar > dynamic () &&
 This expression with its type and depth forgotten.

Detailed Description

template<class V, class S = Scalar>
class iris::build::Expr< V, S >

An expression with value type V and shape S.

Operators and the functions of this namespace make expressions from operands. An expression of shape Open looks a value up and can be indexed with [] and projected with get(); so can one of value type Dynamic.

Template Parameters
Vthe value type (see iris::HandleValue)
SScalar or Open

Member Function Documentation

dynamic() [1/2]

template<class V, class S = Scalar>
Expr< Dynamic, Scalar > iris::build::Expr< V, S >::dynamic ( ) &&
inlinenodiscard

This expression with its type and depth forgotten.

dynamic() [2/2]

template<class V, class S = Scalar>
Expr< Dynamic, Scalar > iris::build::Expr< V, S >::dynamic ( ) const &
inlinenodiscard

This expression with its type and depth forgotten.

get() [1/2]

template<class V, class S>
requires std::same_as<S, Open> || std::same_as<V, Dynamic>
template<class F, std::size_t H, Presence P>
requires std::same_as<S, Open> || std::same_as<V, Dynamic>
Expr< F, Open > iris::build::Expr< V, S >::get ( const Field< F, H, P > & field) &&

The field field of this record.

get() [2/2]

template<class V, class S>
requires std::same_as<S, Open> || std::same_as<V, Dynamic>
template<class F, std::size_t H, Presence P>
requires std::same_as<S, Open> || std::same_as<V, Dynamic>
Expr< F, Open > iris::build::Expr< V, S >::get ( const Field< F, H, P > & field) const &
nodiscard

The field field of this record.

operator[]() [1/2]

template<class V, class S>
requires (std::same_as<S, Open> || std::same_as<V, Dynamic>) && Integral<ValueOf<I>>
template<Operand I>
requires (std::same_as<S, Open> || std::same_as<V, Dynamic>) && Integral<ValueOf<I>>
Expr< V, Open > iris::build::Expr< V, S >::operator[] ( I && index) &&

Element index of this array.

operator[]() [2/2]

template<class V, class S>
requires (std::same_as<S, Open> || std::same_as<V, Dynamic>) && Integral<ValueOf<I>>
template<Operand I>
requires (std::same_as<S, Open> || std::same_as<V, Dynamic>) && Integral<ValueOf<I>>
Expr< V, Open > iris::build::Expr< V, S >::operator[] ( I && index) const &

Element index of this array.