10#ifndef MCRL2_ATERMPP_ATERM_H
11#define MCRL2_ATERMPP_ATERM_H
26 class thread_aterm_pool;
227 template <
bool CHECK_BUSY_FLAG=true>
A class containing some type traits.
The aterm_core base class that provides protection of the underlying shared terms.
~aterm_core() noexcept
Standard destructor.
aterm_core & operator=(const aterm_core &other) noexcept
Assignment operator.
aterm_core() noexcept
Default constructor.
aterm_core & assign(const aterm_core &other, detail::thread_aterm_pool &pool) noexcept
Assignment operator, to be used if busy and forbidden flags are explicitly available.
aterm_core & unprotected_assign(const aterm_core &other) noexcept
Assignment operator, to be used when the busy flags do not need to be set.
This is the class to which an aterm points.
const function_symbol & function() const noexcept
This is a thread's specific access to the global aterm pool which ensures that garbage collection and...
An unprotected term does not change the reference count of the shared term when it is copied or moved...
bool operator<=(const unprotected_aterm_core &t) const
Comparison operator for two unprotected aterms.
bool operator>=(const unprotected_aterm_core &t) const
Comparison operator for two unprotected aterms.
bool type_is_list() const noexcept
Dynamic check whether the term is an aterm_list.
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
bool operator>(const unprotected_aterm_core &t) const
Comparison operator for two unprotected aterms.
bool operator<(const unprotected_aterm_core &t) const
Comparison operator for two unprotected aterms.
bool operator==(const unprotected_aterm_core &t) const
Comparison operator.
unprotected_aterm_core() noexcept
Default constuctor.
bool type_is_appl() const noexcept
Dynamic check whether the term is an aterm.
bool defined() const
Returns true if this term is not equal to the term assigned by the default constructor of aterms,...
const detail::_aterm * m_term
bool operator!=(const unprotected_aterm_core &t) const
Inequality operator on two unprotected aterms.
const function_symbol & function() const
Yields the function symbol in an aterm.
bool type_is_int() const noexcept
Dynamic check whether the term is an aterm_int.
unprotected_aterm_core(const detail::_aterm *term) noexcept
Constructor.
_aterm * address(const unprotected_aterm_core &t)
function_symbol g_as_empty_list
function_symbol g_as_list
function_symbol g_as_int
These function symbols are used to indicate integer, list and empty list terms.
The main namespace for the aterm++ library.
void swap(atermpp::unprotected_aterm_core &t1, atermpp::unprotected_aterm_core &t2) noexcept
Swaps two aterms.