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 ) );