Observable Reference
Generic observable objects for C++
Public Member Functions | List of all members
observable::expr::expression< ValueType, immediate_evaluator > Class Template Reference

Description

template<typename ValueType>
class observable::expr::expression< ValueType, immediate_evaluator >

Specialized expression that is updated immediately, whenever an expression node changes.

See also
expression<ValueType, EvaluatorType>

Public Member Functions

 expression (expression_node< ValueType > &&root)
 Create a new expression from the root node of an expression tree. More...
 
 expression ()=default
 Expressions are default-constructible. More...
 
 expression (expression const &)=delete
 Expressions are not copy-constructible. More...
 
auto operator= (expression const &) -> expression &=delete
 Expressions are not copy-assignable. More...
 
 expression (expression &&)=default
 Expressions are move-constructible. More...
 
auto operator= (expression &&) -> expression &=default
 Expressions are move-assignable. More...
 
- Public Member Functions inherited from observable::expr::expression< ValueType, expression_evaluator >
 expression (expression_node< ValueType > &&root, expression_evaluator const &evaluator)
 Create a new expression from the root node of an expression tree. More...
 
 expression ()=default
 Expressions are default-constructible. More...
 
 expression (expression const &)=delete
 Expressions are not copy-constructible. More...
 
 expression (expression &&)=default
 Expressions are move-constructible. More...
 
void eval ()
 Evaluate the expression. More...
 
virtual auto get () const -> ValueType override
 Retrieve the expression's result. More...
 
virtual void set_value_notifier (std::function< void(ValueType &&)> const &notifier) override
 Set a functor that can be used to notify the value to be updated of a change. More...
 
virtual ~expression ()
 Destructor. More...
 
auto operator= (expression const &) -> expression &=delete
 Expressions are not copy-assignable. More...
 
auto operator= (expression &&) -> expression &=default
 Expressions are move-assignable. More...
 
- Public Member Functions inherited from observable::value_updater< ValueType >
virtual ~value_updater ()
 Destructor. More...
 
 value_updater ()=default
 Value updaters are default-constructible. More...
 
 value_updater (value_updater const &)=default
 Value updaters are copy-constructible. More...
 
 value_updater (value_updater &&)=default
 Value updaters are move-constructible. More...
 
value_updateroperator= (value_updater const &)=default
 Value updaters are copy-assignable. More...
 
value_updateroperator= (value_updater &&)=default
 Value updaters are move-assignable. More...
 

Additional Inherited Members

- Protected Member Functions inherited from observable::expr::expression< ValueType, expression_evaluator >
auto root_node () -> expression_node< ValueType > &
 Return the expression tree's root node. More...
 

Constructor & Destructor Documentation

◆ expression() [1/4]

template<typename ValueType >
observable::expr::expression< ValueType, immediate_evaluator >::expression ( expression_node< ValueType > &&  root)
inlineexplicit

Create a new expression from the root node of an expression tree.

Parameters
[in]rootExpression tree root node.

◆ expression() [2/4]

template<typename ValueType >
observable::expr::expression< ValueType, immediate_evaluator >::expression ( )
default

Expressions are default-constructible.

◆ expression() [3/4]

template<typename ValueType >
observable::expr::expression< ValueType, immediate_evaluator >::expression ( expression< ValueType, immediate_evaluator > const &  )
delete

Expressions are not copy-constructible.

◆ expression() [4/4]

template<typename ValueType >
observable::expr::expression< ValueType, immediate_evaluator >::expression ( expression< ValueType, immediate_evaluator > &&  )
default

Expressions are move-constructible.

Member Function Documentation

◆ operator=() [1/2]

template<typename ValueType >
auto observable::expr::expression< ValueType, immediate_evaluator >::operator= ( expression< ValueType, immediate_evaluator > const &  ) -> expression &=delete
delete

Expressions are not copy-assignable.

◆ operator=() [2/2]

template<typename ValueType >
auto observable::expr::expression< ValueType, immediate_evaluator >::operator= ( expression< ValueType, immediate_evaluator > &&  ) -> expression &=default
default

Expressions are move-assignable.