Boost.Typeof registrations for Proto's types, and definition of the
BOOST_PROTO_AUTO() macro.
For defining a local variable that stores a Proto expression template,
deep-copying the expression so there are no dangling references.
To define a local variable ex that stores the expression
proto::lit(1) + 2,
do the following:BOOST_PROTO_AUTO( ex, proto::lit(1) + 2 );.
The above is equivalent to the following:
BOOST_AUTO( ex, proto::deep_copy( proto::lit(1) + 2 ) );