$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Larry Evans (cppljevans_at_[hidden])
Date: 2007-05-31 10:14:37
In:
html/boost_proto/user_s_guide/extending_proto.html
there's:
<--------- cut here -----------
namespace boost { namespace proto
{
// A specialization of generate<> that causes expression in the
// calculator_domain to be wrapped in the calculator<> wrapper.
template< typename Expr >
struct generate< calculator_domain, Expr >
{
typedef calculator< Expr > type;
static type make( Expr const & expr )
{
return type( expr );
}
};
}}
This instructs Proto to wrap all expressions in the calculator_domain in
the calculator<> wrapper.
>--------- cut here -----------
OTOH, in:
libs/xpressive/proto/example/calc3.cpp
there's:
<--------- cut here -----------
// Tell proto how to generate expressions in the calculator_domain
struct calculator_domain
: proto::domain<proto::generator<calculator_expression> >
{};
>--------- cut here -----------
which suggests to me that there's 2 different ways to wrap expressions
in a particular domain. Is that right? If so, what are the advantages
of one over the other method?