CRTP base class defining an EVE's Callable Object.
Defined in Header
All EVE Callable Object use a similar protocol to find and call proper architecture or type specific implementation. This protocol includes options checks and management and proper level of error reporting. eve::callable is the most general base class for defining such a Callable Object without having to manually handles all these details.
| Func | Type of current Callable Object being implemented. |
| OptionsValues | Type of stored options. |
| Options | List of supported option specifications. |
Public Member Functions | |
| constexpr auto | operator[] (O o) const |
| Adds an option to current callable. | |
| constexpr auto | options () const |
| Retrieves the current options' state, including processed default. | |
Friends | |
| template<template< typename > class F2, typename OV2, typename... O2> | |
| constexpr bool | operator== (callable const &, callable< F2, OV2, O2... > const &) |
| Checks if two callable are instances of the same function. | |
|
inlineconstexprinherited |
Adds an option to current callable.
If the option o is supported by one of the specifications Spec, build a new Callable Object that will behave as an instance of Tag except the option o is passed inside an eve::options as an additional parameter.
Does not participate in overload resolution if o is not supported by any option specifications.
| o | Option to add to current's Callable Object setup |