mCRL2
Loading...
Searching...
No Matches
atermpp::detail::reference_aterm< T, Type > Class Template Reference

Base class that should not be used. More...

#include <aterm_container.h>

Public Member Functions

 reference_aterm ()=default
 
 reference_aterm (const T_type &other) noexcept
 
template<class... Args>
 reference_aterm (Args &&... args) noexcept
 
template<class... Args>
 reference_aterm (const Args &... args) noexcept
 
 reference_aterm (T_type &&other) noexcept
 
const reference_atermoperator= (const T_type &other) noexcept
 
const reference_atermoperator= (T_type &&other) noexcept
 
 operator T_type & ()
 Converts implicitly to a protected term of type T.
 
 operator const T_type & () const
 
void mark (std::stack< std::reference_wrapper< detail::_aterm > > &todo) const
 

Protected Types

typedef std::decay< T >::type T_type
 

Protected Attributes

T_type m_t
 

Detailed Description

template<class T, typename Type>
class atermpp::detail::reference_aterm< T, Type >

Base class that should not be used.

Definition at line 94 of file aterm_container.h.

Member Typedef Documentation

◆ T_type

template<class T , typename Type >
typedef std::decay<T>::type atermpp::detail::reference_aterm< T, Type >::T_type
protected

Definition at line 97 of file aterm_container.h.

Constructor & Destructor Documentation

◆ reference_aterm() [1/5]

template<class T , typename Type >
atermpp::detail::reference_aterm< T, Type >::reference_aterm ( )
default

◆ reference_aterm() [2/5]

template<class T , typename Type >
atermpp::detail::reference_aterm< T, Type >::reference_aterm ( const T_type other)
inlinenoexcept

Definition at line 102 of file aterm_container.h.

◆ reference_aterm() [3/5]

template<class T , typename Type >
template<class... Args>
atermpp::detail::reference_aterm< T, Type >::reference_aterm ( Args &&...  args)
inlinenoexcept

Definition at line 107 of file aterm_container.h.

◆ reference_aterm() [4/5]

template<class T , typename Type >
template<class... Args>
atermpp::detail::reference_aterm< T, Type >::reference_aterm ( const Args &...  args)
inlinenoexcept

Definition at line 112 of file aterm_container.h.

◆ reference_aterm() [5/5]

template<class T , typename Type >
atermpp::detail::reference_aterm< T, Type >::reference_aterm ( T_type &&  other)
inlinenoexcept

Definition at line 116 of file aterm_container.h.

Member Function Documentation

◆ mark()

template<class T , typename Type >
void atermpp::detail::reference_aterm< T, Type >::mark ( std::stack< std::reference_wrapper< detail::_aterm > > &  todo) const
inline

For types that are not a std::pair, or a type convertible to an aterm it is necessary that a dedicated mark function is provided that calls mark_term on all aterm types in the class T, when this class is stored in an atermpp container. See below for an example, where the code is given for pairs, aterms and built in types. The container is traversed during garbage collection, such that all terms in these containers are protected individually, without putting them all explicitly in protection sets.

Definition at line 152 of file aterm_container.h.

◆ operator const T_type &()

template<class T , typename Type >
atermpp::detail::reference_aterm< T, Type >::operator const T_type & ( ) const
inline

Definition at line 140 of file aterm_container.h.

◆ operator T_type &()

template<class T , typename Type >
atermpp::detail::reference_aterm< T, Type >::operator T_type & ( )
inline

Converts implicitly to a protected term of type T.

Definition at line 135 of file aterm_container.h.

◆ operator=() [1/2]

template<class T , typename Type >
const reference_aterm & atermpp::detail::reference_aterm< T, Type >::operator= ( const T_type other)
inlinenoexcept

Definition at line 120 of file aterm_container.h.

◆ operator=() [2/2]

template<class T , typename Type >
const reference_aterm & atermpp::detail::reference_aterm< T, Type >::operator= ( T_type &&  other)
inlinenoexcept

Definition at line 127 of file aterm_container.h.

Member Data Documentation

◆ m_t

template<class T , typename Type >
T_type atermpp::detail::reference_aterm< T, Type >::m_t
protected

Definition at line 98 of file aterm_container.h.


The documentation for this class was generated from the following file: