...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
PrimitiveTransform
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.
result_type
typename Fn::template impl<Expr, State, Data>::result_type
The return type of the overloaded function call operator.
fn
expr
state
data
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. |