|
| | TemplatableFn ()=default |
| |
| | TemplatableFn (std::nullptr_t)=delete |
| |
template<typename F >
requires std::convertible_to<F, T (*)(X...)> |
| | TemplatableFn (F f) |
| |
template<typename F >
requires (!std::convertible_to<F, T (*)(X...)>) && std::invocable<F, X...> &&std::convertible_to<std::invoke_result_t<F, X...>, T> &&std::is_empty_v<F> &&std::default_initializable<F> |
| | TemplatableFn (F) |
| |
template<typename F >
requires std::invocable<F, X...> && (!std::convertible_to<F, T (*)(X...)>) &&(!std::is_empty_v<F> || !std::convertible_to<std::invoke_result_t<F, X...>, T> || !std::default_initializable<F>) |
| | TemplatableFn (F)=delete |
| |
| bool | has_value () const |
| |
| T | value (X... x) const |
| |
| optional< T > | optional_value (X... x) const |
| |
| T | value_or (X... x, T default_value) const |
| |
template<typename T, typename... X>
class esphome::TemplatableFn< T, X >
Function-pointer-only templatable storage (4 bytes on 32-bit).
Used by the TEMPLATABLE_VALUE macro for codegen-managed fields. Codegen wraps constants in stateless lambdas so only a function pointer is needed.
Definition at line 40 of file automation.h.
template<typename T , typename... X>
template<typename F >
requires (!std::convertible_to<F, T (*)(X...)>) && std::invocable<F, X...> &&std::convertible_to<std::invoke_result_t<F, X...>, T> &&std::is_empty_v<F> &&std::default_initializable<F>