Skip to content

iris::build::Arms< D, P > 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.

The arms of a sections block: each arm is a pattern that starts a section, with or without a body. More...

#include <iris/build.hpp>

Public Member Functions

void arm (PatternArg text, ArmOptions options={}, std::source_location site=std::source_location::current())
 An arm without a body.
template<class F>
requires std::invocable<F, Scope<D, P> &>
std::invoke_result_t< F, Scope< D, P > & > arm (PatternArg text, F &&body, std::source_location site=std::source_location::current())
 An arm with a body; returns the result of the body.
template<class F>
requires std::invocable<F, Scope<D, P> &>
std::invoke_result_t< F, Scope< D, P > & > arm (PatternArg text, ArmOptions options, F &&body, std::source_location site=std::source_location::current())
 An arm with options and a body; returns the result of the body.
void optional_arm (PatternArg text, ArmOptions options={}, std::source_location site=std::source_location::current())
 An optional arm without a body.
template<class F>
requires std::invocable<F, Scope<D, Presence::Maybe> &>
std::invoke_result_t< F, Scope< D, Presence::Maybe > & > optional_arm (PatternArg text, F &&body, std::source_location site=std::source_location::current())
 An optional arm with a body, whose statements may not run; returns the result of the body.
template<class F>
requires std::invocable<F, Scope<D, Presence::Maybe> &>
std::invoke_result_t< F, Scope< D, Presence::Maybe > & > optional_arm (PatternArg text, ArmOptions options, F &&body, std::source_location site=std::source_location::current())
 An optional arm with options and a body; returns the result of the body.

Detailed Description

template<std::size_t D = 0, Presence P = Presence::Required>
class iris::build::Arms< D, P >

The arms of a sections block: each arm is a pattern that starts a section, with or without a body.

Member Function Documentation

arm() [1/3]

template<std::size_t D = 0, Presence P = Presence::Required>
template<class F>
requires std::invocable<F, Scope<D, P> &>
std::invoke_result_t< F, Scope< D, P > & > iris::build::Arms< D, P >::arm ( PatternArg text,
ArmOptions options,
F && body,
std::source_location site = std::source_location::current() )
inline

An arm with options and a body; returns the result of the body.

arm() [2/3]

template<std::size_t D = 0, Presence P = Presence::Required>
void iris::build::Arms< D, P >::arm ( PatternArg text,
ArmOptions options = {},
std::source_location site = std::source_location::current() )
inline

An arm without a body.

arm() [3/3]

template<std::size_t D = 0, Presence P = Presence::Required>
template<class F>
requires std::invocable<F, Scope<D, P> &>
std::invoke_result_t< F, Scope< D, P > & > iris::build::Arms< D, P >::arm ( PatternArg text,
F && body,
std::source_location site = std::source_location::current() )
inline

An arm with a body; returns the result of the body.

optional_arm() [1/3]

template<std::size_t D = 0, Presence P = Presence::Required>
template<class F>
requires std::invocable<F, Scope<D, Presence::Maybe> &>
std::invoke_result_t< F, Scope< D, Presence::Maybe > & > iris::build::Arms< D, P >::optional_arm ( PatternArg text,
ArmOptions options,
F && body,
std::source_location site = std::source_location::current() )
inline

An optional arm with options and a body; returns the result of the body.

optional_arm() [2/3]

template<std::size_t D = 0, Presence P = Presence::Required>
void iris::build::Arms< D, P >::optional_arm ( PatternArg text,
ArmOptions options = {},
std::source_location site = std::source_location::current() )
inline

An optional arm without a body.

optional_arm() [3/3]

template<std::size_t D = 0, Presence P = Presence::Required>
template<class F>
requires std::invocable<F, Scope<D, Presence::Maybe> &>
std::invoke_result_t< F, Scope< D, Presence::Maybe > & > iris::build::Arms< D, P >::optional_arm ( PatternArg text,
F && body,
std::source_location site = std::source_location::current() )
inline

An optional arm with a body, whose statements may not run; returns the result of the body.