...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::proto::unexpr — Lets you inherit the interface of an expression while hiding from Proto the fact that the type is a Proto expression.
// In header: <boost/proto/expr.hpp> template<typename Expr> struct unexpr : Expr { // construct/copy/destruct unexpr(Expr const &); };
For an expression type E
,
proto::is_expr<E>::value
is true
, but
proto::is_expr<proto::unexpr<E> >::value
is false
.