TreeNode< State::ExprData > Class Referencefinal
The TreeNode<State::ExprData> class. More...
Inheritance diagram for TreeNode< State::ExprData >:
Detailed Description
The TreeNode<State::ExprData> class.
This class is specialized from TreeNode<T> because we want to have an additional check : a node is a leaf iff a node is a State::Relation
TODO enforce the invariant of children.size <= 2 (since it's a binary tree)
Public Types | |
using | iterator = typename std::list< TreeNode >::iterator |
using | const_iterator = typename std::list< TreeNode >::const_iterator |
Public Types inherited from score::VariantBasedNode< Relation, Pulse, BinaryOperator, UnaryOperator > | |
using | variant_type = ossia::nullable_variant< InvisibleRootNode, Args... > |
Public Member Functions | |
QString | toString () const |
QString | toPrettyString () const |
iterator | begin () |
const_iterator | begin () const |
const_iterator | cbegin () const |
TreeNode< State::ExprData > & | front () |
iterator | end () |
const_iterator | end () const |
const_iterator | cend () const |
TreeNode< State::ExprData > & | back () |
TreeNode (const TreeNode< State::ExprData > &other) | |
TreeNode (TreeNode< State::ExprData > &&other) | |
TreeNode< State::ExprData > & | operator= (const TreeNode< State::ExprData > &source) |
TreeNode< State::ExprData > & | operator= (TreeNode< State::ExprData > &&source) |
TreeNode (State::ExprData data, TreeNode *parent) | |
TreeNode (TreeNode source, TreeNode *parent) | |
void | push_back (const TreeNode &child) |
void | push_back (TreeNode &&child) |
template<typename... Args> | |
auto & | emplace_back (Args &&... args) |
template<typename... Args> | |
auto & | emplace (Args &&... args) |
TreeNode * | parent () const |
bool | hasChild (std::size_t index) const |
TreeNode & | childAt (int index) |
const TreeNode & | childAt (int index) const |
int | indexOfChild (const TreeNode *child) const |
int | childCount () const |
bool | hasChildren () const |
std::list< TreeNode > & | children () |
const std::list< TreeNode > & | children () const |
void | removeChild (const_iterator it) |
void | setParent (TreeNode *parent) |
Public Member Functions inherited from State::ExprData | |
ExprData (const ExprData &)=default | |
ExprData (ExprData &&)=default | |
ExprData & | operator= (const ExprData &)=default |
ExprData & | operator= (ExprData &&)=default |
ExprData (Relation data) | |
ExprData (Pulse data) | |
ExprData (BinaryOperator data) | |
ExprData (UnaryOperator data) | |
ExprData (score::VariantBasedNode< Relation, Pulse, BinaryOperator, UnaryOperator > data) | |
QString | toString () const |
Public Member Functions inherited from score::VariantBasedNode< Relation, Pulse, BinaryOperator, UnaryOperator > | |
VariantBasedNode (const VariantBasedNode &t)=default | |
VariantBasedNode (VariantBasedNode &&t) noexcept=default | |
VariantBasedNode (const T &t) | |
VariantBasedNode & | operator= (const VariantBasedNode &t)=default |
bool | is () const |
is Checks the type of the node. More... | |
const T * | target () const |
T * | target () |
void | set (const T &t) |
const T & | get () const |
T & | get () |
auto | which () const |
auto & | impl () const |
auto & | impl () |
bool | operator== (const VariantBasedNode &other) const |
Protected Attributes | |
TreeNode< State::ExprData > * | m_parent {} |
std::list< TreeNode > | m_children |
Protected Attributes inherited from score::VariantBasedNode< Relation, Pulse, BinaryOperator, UnaryOperator > | |
ossia::nullable_variant< InvisibleRootNode, Args... > | m_data |
Friends | |
SCORE_LIB_STATE_EXPORT friend bool | operator!= (const TreeNode< State::ExprData > &lhs, const TreeNode< State::ExprData > &rhs) |
SCORE_LIB_STATE_EXPORT friend bool | operator== (const TreeNode< State::ExprData > &lhs, const TreeNode< State::ExprData > &rhs) |
The documentation for this class was generated from the following files:
- Expression.hpp
- Expression.cpp