CONCEPT PRIMITI(7)

NAME
PrimitiveTransform

DESCRIPTION

A PrimitiveTransform is a class type that has a nested class template called impl<> that takes three template parameters representing an expression type, a state type and a data type. Specializations of the nested impl template are ternary monomorphic function objects that accept expression, state, and data parameters. A PrimitiveTransform is also a PolymorphicFunctionObject implemented in terms of the nested impl<> template.

ASSOCIATED TYPES

    &#8226; result_type

    typename Fn::template impl<Expr, State, Data>::result_type
    The return type of the overloaded function call operator.

NOTATION

Fn
    A type playing the role of primitive-transform-type in the PrimitiveTransform concept.

Expr
    A type playing the role of expression-type in the PrimitiveTransform concept.

State
    A type playing the role of state-type in the PrimitiveTransform concept.

Data
    A type playing the role of data-type in the PrimitiveTransform concept.

fn
    Object of type Fn

expr
    Object of type Expr

state
    Object of type State

data
    Object of type Data

VALID EXPRESSIONS
Name | Expression | Type | Semantics
Polymorphic Function Call 1 | fn(expr) | result_type | Applies the transform.
Polymorphic Function Call 2 | fn(expr, state) | result_type | Applies the transform.
Polymorphic Function Call 3 | fn(expr, state, data) | result_type | Applies the transform.
Monomorphic Function Call | typename Fn::template impl< Expr, State, Data >()(expr, state, data) | result_type | Applies the transform.

MODELS

    &#8226; boost::proto::_child_c< 0 >