Macros, classes and functions designed to extend EVE externally.
Classes | |
| struct | eve::callable< Func, OptionsValues, Options > |
| CRTP base class defining an EVE's Callable Object. More... | |
| struct | eve::constant_callable< Func, OptionsValues, Options > |
| CRTP base class giving an EVE's Callable Object the constant function semantic. More... | |
| struct | eve::elementwise_callable< Func, OptionsValues, Options > |
| CRTP base class giving an EVE's Callable Object the elementwise function semantic. More... | |
| struct | eve::options< Settings > |
| Wrapper class around bundle of options passed to eve::callable. More... | |
| struct | eve::decorated_with< OptionsValues, Options > |
| Helper class to aggregate options handlers and states. More... | |
| struct | eve::relative_conditional_option |
| Option specification for decoration via relative conditional value and expressions. More... | |
| struct | eve::conditional_option |
| Option specification for decoration via conditional value and expressions. More... | |
Macros | |
| #define | EVE_CALLABLE_OBJECT_FROM(NS, TYPE, NAME) |
| Generate the generic function interface for any EVE-compatible Callable Object. | |
| #define | EVE_CALLABLE_OBJECT(TYPE, NAME) |
| Generate the generic function interface for an actual eve::callable. | |
| #define | EVE_DISPATCH_CALL(...) |
| Generate the proper call to current EVE's Callable Object implementation. | |
| #define | EVE_DISPATCH_CALL_NT(...) |
| Generate the proper call to current EVE's Callable Object implementation, skips the translation mekanism. | |
| #define | EVE_CALLABLE_NAMESPACE() |
| Register a namespace as suitable for containing eve::callable overloads. | |
| #define | EVE_REQUIRES(ARCH) |
| Flag a function to support delayed calls on given architecture. | |
Concepts | |
| concept | eve::callable_object |
| EVE callable object | |
Variables | |
| template<typename Func, auto... Opt> | |
| constexpr bool | eve::supports_options = requires{ (std::declval<Func>()[Opt], ...); } |
| Checks if a callable function supports given options. | |
| template<template< typename > class Func> | |
| constexpr auto | eve::functor = Func<eve::options<>>{} |
| EVE's Callable Object generator. | |
| constexpr _::condition_key_t | eve::condition_key = {} |
| Keyword for retrieving conditionals decorator. | |
| #define EVE_CALLABLE_OBJECT | ( | TYPE, | |
| NAME ) |
Generate the generic function interface for an actual eve::callable.
Defined in Header
Use inside a Callable Object definition to generate the required EVE protocol of function's resolution based on type and architecture information using overload from the eve::_ namespace.
| TYPE | Current Callable Object type |
| NAME | Function identifier for overloads. Calls to eve::_::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::_ namespace. Those function contains the implementation of the Callable Object overload for each pre-defined function.
| #define EVE_CALLABLE_OBJECT_FROM | ( | NS, | |
| TYPE, | |||
| NAME ) |
Generate the generic function interface for any EVE-compatible Callable Object.
Defined in Header
Use inside a Callable Object definition to generate the required EVE protocol of function's resolution based on type and architecture information.
| 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.
|
inlineconstexpr |
Keyword for retrieving conditionals decorator.
Defined in Header
When a eve::decorated_callable is called with an option provided via eve::conditional, the value of the conditional can be retrieved using eve::condition_key
|
inlineconstexpr |
Checks if a callable function supports given options.
Defined in Header
This template variable evaluates to true if the callable Func supports all the specified options.
| Func | The callable function to check |
| Opt | The options to check for support |