| Home | Libraries | People | FAQ | More

## Struct template is_transform

boost::proto::is_transform — Boolean metafunction which tells whether a type is a PrimitiveTransform or not.

## Synopsis

    // In header: <boost/proto/traits.hpp>

    template<typename T>
    struct is_transform :  mpl::bool_<true-or-false> {
    };

## Description

`proto::is_transform<>` is used by the `proto::make<>` transform to determine whether a type `R` represents a PrimitiveTransform to apply, or whether it merely represents itself.

It is also used by the `proto::call<>` transform to determine whether the function types `R()`, `R(A1)`, and `R(A1, A2)` should be passed the expression, state and data parameters (as needed).

Unless specialized for a type `T`, `proto::is_transform<T>::value` is computed as follows:

- If `T` is a class type that inherits directly or indirectly from an instantiation of `proto::transform<>`, `proto::is_transform<T>::value` is `true`.

- Otherwise, `proto::is_transform<T>::value` is `false`.