|
mCRL2
|
An unprotected term does not change the reference count of the shared term when it is copied or moved. More...
#include <aterm_core.h>
Public Member Functions | |
| unprotected_aterm_core () noexcept | |
| Default constuctor. | |
| unprotected_aterm_core (const detail::_aterm *term) noexcept | |
| Constructor. | |
| bool | type_is_appl () const noexcept |
| Dynamic check whether the term is an aterm. | |
| bool | type_is_int () const noexcept |
| Dynamic check whether the term is an aterm_int. | |
| bool | type_is_list () const noexcept |
| Dynamic check whether the term is an aterm_list. | |
| bool | operator== (const unprotected_aterm_core &t) const |
| Comparison operator. | |
| std::weak_ordering | operator<=> (const unprotected_aterm_core &t) const |
| Comparison operator for two unprotected aterms. | |
| bool | defined () const |
| Returns true if this term is not equal to the term assigned by the default constructor of aterms, aterm_appls and aterm_int. | |
| void | swap (unprotected_aterm_core &t) noexcept |
| Swaps this term with its argument. | |
| const function_symbol & | function () const |
| Yields the function symbol in an aterm. | |
Protected Attributes | |
| const detail::_aterm * | m_term |
Friends | |
| detail::_aterm * | detail::address (const unprotected_aterm_core &t) |
An unprotected term does not change the reference count of the shared term when it is copied or moved.
Definition at line 33 of file aterm_core.h.
|
inlinenoexcept |
Default constuctor.
Definition at line 43 of file aterm_core.h.
|
inlinenoexcept |
Constructor.
| term | The term from which the new term is constructed. |
Definition at line 49 of file aterm_core.h.
|
inline |
Returns true if this term is not equal to the term assigned by the default constructor of aterms, aterm_appls and aterm_int.
The default constructor of a term_list<T> is the empty list, on which the operator defined yields true. This operation is more efficient than comparing the current term with an aterm(), aterm_list() or an aterm_int().
Definition at line 111 of file aterm_core.h.
|
inline |
Yields the function symbol in an aterm.
This is for internal use only.
Definition at line 129 of file aterm_core.h.
|
inline |
Comparison operator for two unprotected aterms.
This operator is constant time. It compares the addresses where terms are stored. That means that the outcome of this operator is only stable as long as aterms are not garbage collected.
| t | A term to which the current term is compared. |
Definition at line 99 of file aterm_core.h.
|
inline |
Comparison operator.
Terms are stored in a maximally shared way. This means that this equality operator can be calculated in constant time.
Definition at line 87 of file aterm_core.h.
|
inlinenoexcept |
Swaps this term with its argument.
This operation is more efficient than exchanging terms by an assignment, as swapping does not require to change the protection of terms.
| t | The term with which this term is swapped. |
Definition at line 120 of file aterm_core.h.
|
inlinenoexcept |
Dynamic check whether the term is an aterm.
This function has constant complexity. It is defined as !type_is_int() && !type_is_list().
Definition at line 57 of file aterm_core.h.
|
inlinenoexcept |
Dynamic check whether the term is an aterm_int.
This function has constant complexity.
Definition at line 65 of file aterm_core.h.
|
inlinenoexcept |
Dynamic check whether the term is an aterm_list.
This function has constant complexity.
Definition at line 75 of file aterm_core.h.
|
friend |
|
protected |
Definition at line 38 of file aterm_core.h.