| Home | Libraries | People | FAQ | More

## Concept CallableTransform

CallableTransform

## Description

A CallableTransform is a function type or a function pointer type where the return type Fn is a PolymorphicFunctionObject and the arguments are Transforms. is_callable< Fn >::value must be true. The CallableTransform, when applied, has the effect of invoking the polymorphic function object Fn, passing as arguments the result(s) of applying transform(s) Tn.

## Associated types

- result_type

      boost::result_of<Fn(Transform<Tn, Expr, State, Data>::result_type...)>::type

  The result of applying the CallableTransform.

## Notation

Fn
  A type playing the role of polymorphic-function-object-type in the CallableTransform concept.
Tn
  A type playing the role of transform-type in the CallableTransform concept.
Expr
  A type playing the role of expression-type in the CallableTransform concept.
State
  A type playing the role of state-type in the CallableTransform concept.
Data
  A type playing the role of data-type in the CallableTransform 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
--- | --- | --- | ---
Apply Transform | when< _, Fn(Tn...)>()(expr, state, data) | result_type | Applies the transform.

## Models

- boost::proto::_child(boost::proto::_left)