ESPHome 2025.12.1
Loading...
Searching...
No Matches
esphome::TemplatableValue< T, X > Class Template Reference

#include <automation.h>

Public Member Functions

 TemplatableValue ()
 
 TemplatableValue (const char *str)
 
template<typename F >
requires (!std::invocable<F, X...>)
 TemplatableValue (F value)
 
template<typename F >
requires std::invocable<F, X...> && std::convertible_to<F, T (*)(X...)>
 TemplatableValue (F f)
 
template<typename F >
requires std::invocable<F, X...> &&(!std::convertible_to<F, T (*)(X...)>)
 TemplatableValue (F f)
 
 TemplatableValue (const TemplatableValue &other)
 
 TemplatableValue (TemplatableValue &&other) noexcept
 
TemplatableValueoperator= (const TemplatableValue &other)
 
TemplatableValueoperator= (TemplatableValue &&other) noexcept
 
 ~TemplatableValue ()
 
bool has_value ()
 
value (X... x)
 
optional< T > optional_value (X... x)
 
value_or (X... x, T default_value)
 

Protected Types

enum  : uint8_t {
  NONE , VALUE , LAMBDA , STATELESS_LAMBDA ,
  STATIC_STRING
}
 

Protected Attributes

enum esphome::TemplatableValue:: { ... }  type_
 
union { 
 
   T   value_ 
 
   std::function< T(X...)> *   f_ 
 
   T(*   stateless_f_ )(X...) 
 
   const char *   static_str_ 
 
};  
 

Detailed Description

template<typename T, typename... X>
class esphome::TemplatableValue< T, X >

Definition at line 44 of file automation.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename T , typename... X>
anonymous enum : uint8_t
protected
Enumerator
NONE 
VALUE 
LAMBDA 
STATELESS_LAMBDA 
STATIC_STRING 

Definition at line 163 of file automation.h.

Constructor & Destructor Documentation

◆ TemplatableValue() [1/7]

template<typename T , typename... X>
esphome::TemplatableValue< T, X >::TemplatableValue ( )
inline

Definition at line 46 of file automation.h.

◆ TemplatableValue() [2/7]

template<typename T , typename... X>
esphome::TemplatableValue< T, X >::TemplatableValue ( const char * str)
inline

Definition at line 50 of file automation.h.

◆ TemplatableValue() [3/7]

template<typename T , typename... X>
template<typename F >
requires (!std::invocable<F, X...>)
esphome::TemplatableValue< T, X >::TemplatableValue ( F value)
inline

Definition at line 54 of file automation.h.

◆ TemplatableValue() [4/7]

template<typename T , typename... X>
template<typename F >
requires std::invocable<F, X...> && std::convertible_to<F, T (*)(X...)>
esphome::TemplatableValue< T, X >::TemplatableValue ( F f)
inline

Definition at line 60 of file automation.h.

◆ TemplatableValue() [5/7]

template<typename T , typename... X>
template<typename F >
requires std::invocable<F, X...> &&(!std::convertible_to<F, T (*)(X...)>)
esphome::TemplatableValue< T, X >::TemplatableValue ( F f)
inline

Definition at line 67 of file automation.h.

◆ TemplatableValue() [6/7]

template<typename T , typename... X>
esphome::TemplatableValue< T, X >::TemplatableValue ( const TemplatableValue< T, X > & other)
inline

Definition at line 72 of file automation.h.

◆ TemplatableValue() [7/7]

template<typename T , typename... X>
esphome::TemplatableValue< T, X >::TemplatableValue ( TemplatableValue< T, X > && other)
inlinenoexcept

Definition at line 85 of file automation.h.

◆ ~TemplatableValue()

template<typename T , typename... X>
esphome::TemplatableValue< T, X >::~TemplatableValue ( )
inline

Definition at line 116 of file automation.h.

Member Function Documentation

◆ has_value()

template<typename T , typename... X>
bool esphome::TemplatableValue< T, X >::has_value ( )
inline

Definition at line 125 of file automation.h.

◆ operator=() [1/2]

template<typename T , typename... X>
TemplatableValue & esphome::TemplatableValue< T, X >::operator= ( const TemplatableValue< T, X > & other)
inline

Definition at line 100 of file automation.h.

◆ operator=() [2/2]

template<typename T , typename... X>
TemplatableValue & esphome::TemplatableValue< T, X >::operator= ( TemplatableValue< T, X > && other)
inlinenoexcept

Definition at line 108 of file automation.h.

◆ optional_value()

template<typename T , typename... X>
optional< T > esphome::TemplatableValue< T, X >::optional_value ( X... x)
inline

Definition at line 148 of file automation.h.

◆ value()

template<typename T , typename... X>
T esphome::TemplatableValue< T, X >::value ( X... x)
inline

Definition at line 127 of file automation.h.

◆ value_or()

template<typename T , typename... X>
T esphome::TemplatableValue< T, X >::value_or ( X... x,
T default_value )
inline

Definition at line 155 of file automation.h.

Field Documentation

◆ [union]

union { ... } esphome::TemplatableValue< T, X >

◆ f_

template<typename T , typename... X>
std::function<T(X...)>* esphome::TemplatableValue< T, X >::f_

Definition at line 173 of file automation.h.

◆ stateless_f_

template<typename T , typename... X>
T(* esphome::TemplatableValue< T, X >::stateless_f_) (X...)

Definition at line 174 of file automation.h.

◆ static_str_

template<typename T , typename... X>
const char* esphome::TemplatableValue< T, X >::static_str_

Definition at line 175 of file automation.h.

◆ []

enum { ... } esphome::TemplatableValue< T, X >::type_

◆ value_

template<typename T , typename... X>
T esphome::TemplatableValue< T, X >::value_

Definition at line 172 of file automation.h.


The documentation for this class was generated from the following file: