Implementation of a branch class that performs caching on assignment of its children. More...
#include <expression_tree.h>
Public Member Functions | |
branch (const typename detail::operation< T >::t &f, const node< T, expression_tree::cache_on_assignment, ThreadingPolicy > &l, const node< T, expression_tree::cache_on_assignment, ThreadingPolicy > &r) | |
Default constructor. | |
branch (const branch &o) | |
Copy constructor. | |
virtual T | evaluate () const |
If the value of this branch has been cached already, return it. | |
virtual void | grow () |
Implementation of a branch class that performs caching on assignment of its children.
When a caching-on-assignment branch' children are assigned to, the branch checks whether its children are constant. If they are, it applies its operation on them and caches that value.
virtual void expression_tree::cache_on_assignment< T, ThreadingPolicy >::branch::grow | ( | ) | [inline, virtual] |
When this branch has its children modified, check if they are constant. If they are, perform the operation and cache the value.
Reimplemented from expression_tree::detail::default_branch< T, expression_tree::cache_on_assignment, ThreadingPolicy >.