Alexandria 2.31.0
SDC-CH common library for the Euclid project
|
#include <Placeholder.h>
Public Member Functions | |
Placeholder (const unsigned pos) | |
std::string | repr () const final |
T | eval (const Context &, const Arguments &args) const final |
void | visit (Visitor &visitor) const final |
![]() | |
Node () | |
virtual | ~Node ()=default |
template<typename... Args> | |
T | eval (const Context &context, Args... args) const |
template<typename... Args> | |
T | eval (Args... args) const |
![]() | |
NodeBase (const std::type_index &type_index) | |
virtual | ~NodeBase ()=default |
const std::type_index & | type () const |
Private Attributes | |
unsigned | m_pos |
Additional Inherited Members | |
![]() | |
T | eval_helper (const Context &context, Arguments &arguments) const |
template<typename A0 , typename... AN> | |
T | eval_helper (const Context &context, Arguments &arguments, A0 v0, AN... an) const |
Placeholder node, pretty much like a variable.
T | Type of the placeholder |
Definition at line 32 of file Placeholder.h.
|
inlineexplicit |
Constructor
pos | Position of the Placeholder. It will be used to retrieve later the value assigned to it. |
Definition at line 39 of file Placeholder.h.
|
inlinefinalvirtual |
Evaluate the computing tree
In principle one could avoid to pass any values here, and assign directly the final value to the placeholders that were used to create this tree. However, this would cause the placeholders not to be thread-safe, and a tree would have to be either cloned, either protected by a mutex. Passing the values as an argument allows making the full tree immutable once built, and fully thread safe.
std::out_of_range | There is no value assigned to this placeholder |
boost::bad_get | The type of the value assigned to the placeholder does not correspond to the expected type T |
Implements Pyston::Node< T >.
Definition at line 56 of file Placeholder.h.
References Pyston::Placeholder< T >::m_pos.
|
inlinefinalvirtual |
Implements Pyston::NodeBase.
Definition at line 44 of file Placeholder.h.
References Pyston::Placeholder< T >::m_pos, and std::to_string().
|
inlinefinalvirtual |
Entry point for the visitor
Implements Pyston::NodeBase.
Definition at line 63 of file Placeholder.h.
|
private |
Definition at line 69 of file Placeholder.h.
Referenced by Pyston::Placeholder< T >::eval(), Pyston::Placeholder< AttributeSet >::get(), and Pyston::Placeholder< T >::repr().