mCRL2
Loading...
Searching...
No Matches
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type > Class Template Reference

A pair that is stored into an atermpp container. This class takes care that all aterms that occur (recursively) inside such a pair are marked, whears non-aterm_core types are not marked.
More...

#include <aterm_container.h>

Inheritance diagram for atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >:

Public Member Functions

 reference_aterm ()=default
 Default constructor.
 
 reference_aterm (const reference_aterm &other)
 
 reference_aterm (const std_pair &other)
 
 reference_aterm (std_pair &&other)
 
reference_atermoperator= (const reference_aterm &other)
 
const reference_atermoperator= (const std_pair &other)
 
reference_atermoperator= (reference_aterm &&other)
 
const reference_atermoperator= (std_pair &&other)
 
 operator std_pair & ()
 Converts implicitly to a protected term of type std::pair<T,U>..
 
 operator const std_pair & () const
 
void mark (std::stack< std::reference_wrapper< detail::_aterm > > &todo) const
 

Protected Types

typedef std::pair< typename std::conditional< is_reference_aterm< typename T::first_type >::value, typename T::first_type, reference_aterm< typename T::first_type > >::type, typename std::conditional< is_reference_aterm< typename T::second_type >::value, typename T::second_type, reference_aterm< typename T::second_type > >::type > super
 
typedef T std_pair
 

Detailed Description

template<typename T>
class atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >

A pair that is stored into an atermpp container. This class takes care that all aterms that occur (recursively) inside such a pair are marked, whears non-aterm_core types are not marked.

Definition at line 302 of file aterm_container.h.

Member Typedef Documentation

◆ std_pair

template<typename T >
typedef T atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::std_pair
protected

Definition at line 317 of file aterm_container.h.

◆ super

template<typename T >
typedef std::pair<typename std::conditional<is_reference_aterm<typename T::first_type>::value, typename T::first_type, reference_aterm< typename T::first_type > >::type, typename std::conditional<is_reference_aterm<typename T::second_type>::value, typename T::second_type, reference_aterm< typename T::second_type > >::type > atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::super
protected

Definition at line 316 of file aterm_container.h.

Constructor & Destructor Documentation

◆ reference_aterm() [1/4]

template<typename T >
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::reference_aterm ( )
default

Default constructor.

◆ reference_aterm() [2/4]

template<typename T >
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::reference_aterm ( const reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type > &  other)
inline

Definition at line 323 of file aterm_container.h.

◆ reference_aterm() [3/4]

template<typename T >
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::reference_aterm ( const std_pair other)
inline

Definition at line 329 of file aterm_container.h.

◆ reference_aterm() [4/4]

template<typename T >
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::reference_aterm ( std_pair &&  other)
inline

Definition at line 333 of file aterm_container.h.

Member Function Documentation

◆ mark()

template<typename T >
void atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::mark ( std::stack< std::reference_wrapper< detail::_aterm > > &  todo) const
inline

Definition at line 378 of file aterm_container.h.

◆ operator const std_pair &()

template<typename T >
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::operator const std_pair & ( ) const
inline

Definition at line 373 of file aterm_container.h.

◆ operator std_pair &()

template<typename T >
atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::operator std_pair & ( )
inline

Converts implicitly to a protected term of type std::pair<T,U>..

Definition at line 368 of file aterm_container.h.

◆ operator=() [1/4]

template<typename T >
reference_aterm & atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::operator= ( const reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type > &  other)
inline

Definition at line 338 of file aterm_container.h.

◆ operator=() [2/4]

template<typename T >
const reference_aterm & atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::operator= ( const std_pair other)
inline

Definition at line 345 of file aterm_container.h.

◆ operator=() [3/4]

template<typename T >
reference_aterm & atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::operator= ( reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type > &&  other)
inline

Definition at line 352 of file aterm_container.h.

◆ operator=() [4/4]

template<typename T >
const reference_aterm & atermpp::detail::reference_aterm< T, typename std::enable_if< is_pair< T >::value >::type >::operator= ( std_pair &&  other)
inline

Definition at line 359 of file aterm_container.h.


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