2
0
mirror of https://github.com/boostorg/phoenix.git synced 2026-02-09 11:22:14 +00:00
Files
phoenix/doc/reference/actor.qbk
Thomas Heller 651e0eed51 started with port of pheonix2 docs
[SVN r64726]
2010-08-10 15:29:07 +00:00

49 lines
1.6 KiB
Plaintext

[/==============================================================================
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 `PHOENIX_LIMIT` arguments.
[note You can set `PHOENIX_LIMIT`, the predefined maximum arity an
actor can take. By default, `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;
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 `Expr` for evaluation.
[h2 TODO]
add some notes about the extension possibilities
[endsect]