| Home | Libraries | People | FAQ | More

## Struct transforms_type

boost::proto::transforms_type — The type used to define the global `proto::transforms`, a key for use when creating and accessing a slot in a transform environment for a set of external transforms.

## Synopsis

    // In header: <boost/proto/transform/when.hpp>

    struct transforms_type {

      // public member functions
      template<typename Value>
        env<transforms_type, see-below> operator=(Value &) const;
      template<typename Value>
        env<transforms_type, see-below> operator=(Value const &) const;
    };

## Description

The `proto::transforms_type` type, along with the `proto::transforms` global, are declared using the `BOOST_PROTO_DEFINE_ENV_VAR()` macro.

### `transforms_type` public member functions

1.     template<typename Value>
         env<transforms_type, see-below> operator=(Value & value) const;
       template<typename Value>
         env<transforms_type, see-below> operator=(Value const & value) const;

   If `Value` is a specialization `boost::reference_wrapper<T>`, this function returns `env<transforms_type, T &>(value.get())`.

   Else, if the type `Value` is non-copyable (i.e., a function, an array, abstract, or an ostream), this function returns `env<transforms_type, Value `cv` &>(value)`, where ``cv`` is `const` for the second overload, and empty for the first.

   Otherwise, this function returns `env<transforms_type, Value>(value)`.