...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The Actor
is the main concept
behind the library. Actors are function objects. An actor can accept 0 to
PHOENIX_LIMIT
arguments.
Note | |
---|---|
You can set |
Phoenix supplies an actor
class
template whose specializations model the Actor
concept. actor
has one template
parameter, Eval
, that supplies
the smarts to evaluate the resulting function.
template <typename Eval> struct actor : Eval { return_type operator()() const; template <typename T0> return_type operator()(T0& _0) const; template <typename T0, typename T1> return_type operator()(T0& _0, T1& _1) const; //... };
The actor class accepts the arguments through a set of function call operators
for 0 to PHOENIX_LIMIT
arities
(Don't worry about the details, for now. Note, for example, that we skimp over
the details regarding return_type
).
The arguments are then forwarded to the actor's Eval
for evaluation.