VCTR
Loading...
Searching...
No Matches
vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters > Struct Template Reference

An expression chain builder is an object which supplies various operator<< overloads which build chains of Expression Templates by prepending the templated ExpressionType to the source. More...

Public Types

template<size_t extent, class SrcType >
using Expression = ExpressionType< extent, SrcType, AdditionalCompileTimeParameters... >
 

Public Member Functions

constexpr ExpressionChainBuilderWithRuntimeArgs (RuntimeArgs &&rtArgs)
 
template<is::anyVctr Src>
constexpr auto operator<< (const Src &src) const
 Returns an expression which holds a reference to the Vector passed in as source.
 
template<is::anyVctr Src>
constexpr auto operator<< (Src &src) const
 Returns an expression which holds a reference to the Vector passed in as source.
 
template<is::anyVctr Src>
constexpr auto operator<< (Src &&src) const
 Returns an expression which owns a the Vector passed in as source.
 
template<is::expression SrcExpression>
constexpr auto operator<< (SrcExpression &&e) const
 Returns an expression which owns another Expression passed in as source.
 
template<is::expressionChainBuilder SrcExpressionChainBuilder>
constexpr auto operator<< (SrcExpressionChainBuilder srcExpressionChainBuilder) const
 Returns an ExpressionChainBuilder instance which is the combination of the builder instance passed in, prepended by the expression represented by this builder.
 

Public Attributes

RuntimeArgs runtimeArgs
 

Detailed Description

template<template< size_t, class... > class ExpressionType, class RuntimeArgs, class... AdditionalCompileTimeParameters>
struct vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters >

An expression chain builder is an object which supplies various operator<< overloads which build chains of Expression Templates by prepending the templated ExpressionType to the source.

Note that it is not the expression itself but rather contains all the information to instantiate the expression when a data source is prepended to it. This base class allows to store argument values needed by some expressions. Most expressions don't need that and can just instantiate a constexpr ExpressionChainBuilder instance. Others should create an instance using makeExpressionChainBuilderWithRuntimeArgs.

See also
ExpressionChainBuilder, makeExpressionChainBuilderWithRuntimeArgs

Member Function Documentation

◆ operator<<() [1/5]

template<template< size_t, class... > class ExpressionType, class RuntimeArgs , class... AdditionalCompileTimeParameters>
template<is::anyVctr Src>
constexpr auto vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters >::operator<< ( const Src &  src) const
inlineconstexpr

Returns an expression which holds a reference to the Vector passed in as source.

◆ operator<<() [2/5]

template<template< size_t, class... > class ExpressionType, class RuntimeArgs , class... AdditionalCompileTimeParameters>
template<is::anyVctr Src>
constexpr auto vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters >::operator<< ( Src &&  src) const
inlineconstexpr

Returns an expression which owns a the Vector passed in as source.

◆ operator<<() [3/5]

template<template< size_t, class... > class ExpressionType, class RuntimeArgs , class... AdditionalCompileTimeParameters>
template<is::anyVctr Src>
constexpr auto vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters >::operator<< ( Src &  src) const
inlineconstexpr

Returns an expression which holds a reference to the Vector passed in as source.

◆ operator<<() [4/5]

template<template< size_t, class... > class ExpressionType, class RuntimeArgs , class... AdditionalCompileTimeParameters>
template<is::expression SrcExpression>
constexpr auto vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters >::operator<< ( SrcExpression &&  e) const
inlineconstexpr

Returns an expression which owns another Expression passed in as source.

◆ operator<<() [5/5]

template<template< size_t, class... > class ExpressionType, class RuntimeArgs , class... AdditionalCompileTimeParameters>
template<is::expressionChainBuilder SrcExpressionChainBuilder>
constexpr auto vctr::ExpressionChainBuilderWithRuntimeArgs< ExpressionType, RuntimeArgs, AdditionalCompileTimeParameters >::operator<< ( SrcExpressionChainBuilder  srcExpressionChainBuilder) const
inlineconstexpr

Returns an ExpressionChainBuilder instance which is the combination of the builder instance passed in, prepended by the expression represented by this builder.


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