The
proto::literal<>
terminal wrapper, and the
proto::lit()
function for creating
proto::literal<>
wrappers.
proto::default_domain
proto::extends<proto::basic_expr<proto::tag::terminal, proto::term< T > >, proto::literal<T, Domain>, Domain>
A simple wrapper for a terminal, provided for ease of use.
A simple wrapper for a terminal, provided for ease of use. In all cases,
proto::literal<X> l(x); is equivalent to
proto::terminal<X>::type l = {x};.
The Domain template parameter defaults to
proto::default_domain.
For exposition only
proto::basic_expr<proto::tag::terminal, proto::term< T > >
typename proto::result_of::value<X>::type
typename proto::result_of::value<X &>::type
typename proto::result_of::value<X const &>::type
reference
proto::value(*this)
const_reference
proto::value(*this)
U &
U const &
proto::literal< U, Domain > const &
proto::literal< T & > const
T &
The object to wrap.
proto::literal< T const & > const
T const &
A helper function for creating a
proto::literal<> wrapper.
proto::literal<T &>(t)
Will not throw.
The returned value holds the argument by reference.