Contains definition of transform<> and transform_impl<> helpers. Inherit from this to make your type a PrimitiveTransform. This(Expr) typename PrimitiveTransform::template impl< Expr, unspecified, unspecified >::result_type This(Expr, State) typename PrimitiveTransform::template impl< Expr, State, unspecified >::result_type This(Expr, State, Data) typename PrimitiveTransform::template impl< Expr, State, Data >::result_type PrimitiveTransform typename PrimitiveTransform::template impl<Expr &, unspecified, unspecified>::result_type Expr & typename PrimitiveTransform::template impl<Expr &, unspecified, unspecified>()(expr, unspecified, unspecified) typename PrimitiveTransform::template impl<Expr &, State &, unspecified>::result_type Expr & State & typename PrimitiveTransform::template impl<Expr &, State &, unspecified>()(expr, state, unspecified) typename PrimitiveTransform::template impl<Expr &, State const &, unspecified>::result_type Expr & State const & typename PrimitiveTransform::template impl<Expr &, State const &, unspecified>()(expr, state, unspecified) typename PrimitiveTransform::template impl<Expr &, State &, Data &>::result_type Expr & State & Data & typename PrimitiveTransform::template impl<Expr &, State &, Data &>()(expr, state, data) typename PrimitiveTransform::template impl<Expr &, State const &, Data &>::result_type Expr & State const & Data & typename PrimitiveTransform::template impl<Expr &, State const &, Data &>()(expr, state, data) typename boost::remove_reference<Expr const>::type typename boost::add_reference<Expr const>::type typename boost::remove_reference<State const>::type typename boost::add_reference<State const>::type typename boost::remove_reference<Data const>::type typename boost::add_reference<Data const>::type