| Home | Libraries | People | FAQ | More

## 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;

        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 `BOOST_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 passed through to the evaluation mechanism. For more information see Inside Actors.