BOOST_PROTO_AUTO — 用于定义一个局部变量,该变量存储一个 Proto 表达式模板,并深拷贝该表达式,以避免悬垂引用。
// In header: <boost/proto/proto_typeof.hpp>
BOOST_PROTO_AUTO(Var, Expr)
要定义一个局部变量 ex
,该变量存储表达式 proto::lit(1) + 2
,请执行以下操作
BOOST_PROTO_AUTO( ex, proto::lit(1) + 2 );
。以上等效于以下代码
BOOST_AUTO( ex, proto::deep_copy( proto::lit(1) + 2 ) );