Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Struct template noinvoke

boost::proto::noinvoke — A type annotation in an ObjectTransform which instructs Proto not to look for a nested ::type within T after type substitution.

Synopsis

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

template<typename T> 
struct noinvoke {
};

Description

ObjectTransforms are evaluated by proto::make<>, which finds all nested transforms and replaces them with the result of their applications. If any substitutions are performed, the result is first assumed to be a metafunction to be applied; that is, Proto checks to see if the result has a nested ::type typedef. If it does, that becomes the result. The purpose of proto::noinvoke<> is to prevent Proto from looking for a nested ::type typedef in these situations.

Example:

proto::when<
        _
      , _>
            >
        >()
    >
{};

proto::terminal<


PrevUpHomeNext