20static_assert(
sizeof(std::size_t) ==
sizeof(
_aterm*),
"The size of an aterm pointer is not equal to the size of type std::size_t. Cannot compile the MCRL2 toolset for this platform.");
21static_assert(
sizeof(std::size_t) >= 4,
"The size of std::size_t should at least be four bytes. Cannot compile the toolset for this platform.");
33#ifdef MCRL2_ENABLE_MULTITHREADING
This is the class to which an aterm points.
The interface for the term library. Provides the storage of of all classes of terms.
void add_deletion_hook(function_symbol sym, term_callback callback)
Add a callback that is triggered whenever a term with the given function symbol is destroyed.
This is a thread's specific access to the global aterm pool which ensures that garbage collection and...
aterm_pool & g_term_pool()
obtain a reference to the global aterm pool.
std::aligned_storage< sizeof(aterm_pool), alignof(aterm_pool)>::type g_aterm_pool_storage
Storage for a global term pool that is not initialized.
static aterm_pool & g_aterm_pool_instance
A reference to the global term pool storage.
thread_aterm_pool & g_thread_term_pool()
A reference to the thread local term pool storage.
The main namespace for the aterm++ library.
void(* term_callback)(const aterm &)
void add_deletion_hook(const function_symbol &, term_callback)
Check for reasonably sized aterm (32 bits, 4 bytes) This check might break on perfectly valid archite...
static constexpr bool GlobalThreadSafe
Enables thread safety for the whole toolset.