#define EVE_CALLABLE_OBJECT | ( | TYPE, | |
NAME ) |
#include <eve/traits/overload/protocol.hpp>
Defined in Header
Use inside a Callable Object definition to generate the required EVE protocol of function's resolution based on type and architecture informations using overload from the eve::detail
namespace.
TYPE | Current Callable Object type |
NAME | Function identifier for overloads. Calls to eve::detail::NAME are supposed to succeed. |
EVE_CALLABLE_OBJECT generates the expected code for defining a EVE Callable Object. EVE Callable Object are function object which supports decorators and use an external function to specify its implementation.
EVE_CALLABLE_OBJECT relies on its enclosing type to provide at least one declaration of a member function named call
which represent the expected prototype of the function object, including potential constraints, and its associated return type. EVE_CALLABLE_OBJECT also relies on the existence of an appropriate number of function overloads named NAME
defined in the eve::detail namespace. Those function contains the implementation of the Callable Object overload for each pre-defined function.