Polymorphic Function Object

| Home | Libraries | People | FAQ | More

#### Polymorphic Function Object

###### Description

A non-member-pointer Deferred Callable Object type.

###### Refinement of

- Regular Callable Object
- Deferred Callable Object

Notation

`F`

  A possibly const-qualified Polymorphic Function Object type

`f`

  An object or reference to an object of type F

`A1 ...AN`

  Argument types

`a1 ...aN`

  Objects or references to objects with types `A1 ...AN`

`T1 ...TN`

  `T`i is `A`i `&` if `a`i is an LValue, same as `A`i, otherwise

###### Expression requirements

Expression | Return Type | Runtime Complexity
--- | --- | ---
`f(a1, ...aN)` | `result_of< F(T1, ...TN) >::type` | Unspecified

###### Models

- function pointers
- function objects of the Standard Library
- all Fusion functional adapters

###### Examples

    & a_free_function
    & a_class::a_static_member_function
    std::less<int>()
    // using namespace boost;
    bind(std::less<int>(), _1, 5)
    // Note: Boost.Lambda expressions don't work with __boost_result_of__
    fusion::make_fused_function_object(std::less<int>())