| [/============================================================================== |
| Copyright (C) 2001-2010 Joel de Guzman |
| Copyright (C) 2001-2005 Dan Marsden |
| Copyright (C) 2001-2010 Thomas Heller |
| |
| Distributed under the Boost Software License, Version 1.0. (See accompanying |
| file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| ===============================================================================/] |
| |
| [section Actor] |
| |
| The `Actor` is the main concept behind the library. Actors are function objects. |
| An actor can accept 0 to `BOOST_PHOENIX_LIMIT` arguments. |
| |
| [note You can set `BOOST_PHOENIX_LIMIT`, the predefined maximum arity an |
| actor can take. By default, `BOOST_PHOENIX_LIMIT` is set to 10.] |
| |
| Phoenix supplies an `actor` class template whose specializations |
| model the `Actor` concept. `actor` has one template parameter, `Expr`, |
| that supplies the underlying expression to evaluate. |
| |
| template <typename Expr> |
| struct actor |
| { |
| return_type |
| operator()() const; |
| |
| return_type |
| operator()(); |
| |
| template <typename T0> |
| return_type |
| operator()(T0& _0) const; |
| |
| template <typename T0> |
| return_type |
| operator()(T0 const& _0) const; |
| |
| template <typename T0> |
| return_type |
| operator()(T0& _0); |
| |
| template <typename T0> |
| return_type |
| operator()(T0 const& _0); |
| |
| |
| //... |
| }; |
| |
| The actor class accepts the arguments through a set of function call operators |
| for 0 to `BOOST_PHOENIX_LIMIT` arities (Don't worry about the details, for now. Note, for example, |
| that we skimed over the details regarding `return_type`). The arguments |
| are then forwarded to the actor's `Expr` for evaluation. |
| |
| [endsect] |
| |