123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- [/==============================================================================
- 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]
|