Observable Reference
Generic observable objects for C++
|
Expressions manage expression tree evaluation and results.
Expressions are also value updaters, so they can be used for updating a value when an expression tree changes.
ValueType | The expression's result value type. This is what get() returns. |
EvaluatorType | An instance of expression_evaluator, or a type derived from it. |
Public Member Functions | |
expression (expression_node< ValueType > &&root, EvaluatorType const &evaluator) | |
Create a new expression from the root node of an expression tree. 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 ¬ifier) override |
Set a functor that can be used to notify the value to be updated of a change. More... | |
virtual | ~expression () |
Destructor. 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::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_updater & | operator= (value_updater const &)=default |
Value updaters are copy-assignable. More... | |
value_updater & | operator= (value_updater &&)=default |
Value updaters are move-assignable. More... | |
Protected Member Functions | |
auto | root_node () -> expression_node< ValueType > & |
Return the expression tree's root node. More... | |
|
inline |
Create a new expression from the root node of an expression tree.
[in] | root | Expression tree root node. |
[in] | evaluator | Expression evaluator to be used for globally updating the expression. |
|
inlinevirtual |
Destructor.
|
default |
Expressions are default-constructible.
|
delete |
Expressions are not copy-constructible.
|
default |
Expressions are move-constructible.
|
inline |
Evaluate the expression.
This will ensure that the expression's result is up-to-date.
|
inlineoverridevirtual |
Retrieve the expression's result.
Implements observable::value_updater< ValueType >.
|
inlineoverridevirtual |
Set a functor that can be used to notify the value to be updated of a change.
[in] | notifier | Functor that will notify the value of a change. |
Implements observable::value_updater< ValueType >.
|
delete |
Expressions are not copy-assignable.
|
default |
Expressions are move-assignable.
|
inlineprotected |
Return the expression tree's root node.