#define EVE_CALLABLE_OBJECT_FROM | ( | NS, | |
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.
NS | Namespace in which specialization of the Callable Object will be found. This namespace must have been registered via EVE_CALLABLE_NAMESPACE. |
TYPE | Current Callable Object type |
NAME | Function identifier for overloads. Calls to NS::NAME are supposed to succeed. |
EVE_CALLABLE_OBJECT_FROM 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_FROM 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 NS
namespace. Those function contains the implementation of the Callable Object overload for each pre-defined function.