mCRL2
Loading...
Searching...
No Matches
atermpp::detail::_aterm_appl< N > Class Template Reference

This class stores a term followed by N arguments. Where N should be equal to the arity of the function symbol. These arguments do have room reserved for them during the creation of the _aterm_appl. More...

#include <aterm.h>

Inheritance diagram for atermpp::detail::_aterm_appl< N >:
atermpp::detail::_aterm mcrl2::utilities::noncopyable

Public Member Functions

template<typename ... Terms, typename std::enable_if< are_terms< Terms... >::value >::type * = nullptr, typename std::enable_if< sizeof...(Terms)==N >::type * = nullptr>
 _aterm_appl (const function_symbol &sym, const Terms &...arguments)
 Constructs a term application with the given symbol and arguments.
 
template<typename Iterator , typename std::enable_if< mcrl2::utilities::is_iterator< Iterator >::value >::type * = nullptr>
 _aterm_appl (const function_symbol &sym, Iterator it, Iterator end)
 constructs a term application with the given symbol and an iterator where the number of elements is equal to the template parameter N.
 
 _aterm_appl (const function_symbol &sym, std::array< unprotected_aterm_core, N > arguments)
 Constructs a term application with the given symbol and arguments.
 
template<typename Iterator , typename std::enable_if< mcrl2::utilities::is_iterator< Iterator >::value >::type * = nullptr>
 _aterm_appl (const function_symbol &symbol, Iterator it, Iterator end, bool)
 constructs a term application with the given symbol and its arguments from the iterator.
 
const aterm_corearg (std::size_t index) const
 
 operator _aterm_appl< 1 > & ()
 Convert any known number of arguments aterm<N> to the default _aterm_appl.
 
- Public Member Functions inherited from atermpp::detail::_aterm
 _aterm (const function_symbol &symbol)
 Create a term from a function symbol.
 
const function_symbolfunction () const noexcept
 
void mark () const
 Mark this term to be garbage collected.
 
void unmark () const
 Remove the mark from a term.
 
bool is_marked () const
 Check if the term is already marked.
 
- Public Member Functions inherited from mcrl2::utilities::noncopyable
 noncopyable ()=default
 
 noncopyable (const noncopyable &)=delete
 
noncopyableoperator= (const noncopyable &)=delete
 

Private Attributes

std::array< unprotected_aterm_core, N > m_arguments
 

Detailed Description

template<std::size_t N = 1>
class atermpp::detail::_aterm_appl< N >

This class stores a term followed by N arguments. Where N should be equal to the arity of the function symbol. These arguments do have room reserved for them during the creation of the _aterm_appl.

Definition at line 33 of file aterm.h.

Constructor & Destructor Documentation

◆ _aterm_appl() [1/4]

template<std::size_t N = 1>
template<typename ... Terms, typename std::enable_if< are_terms< Terms... >::value >::type * = nullptr, typename std::enable_if< sizeof...(Terms)==N >::type * = nullptr>
atermpp::detail::_aterm_appl< N >::_aterm_appl ( const function_symbol sym,
const Terms &...  arguments 
)
inline

Constructs a term application with the given symbol and arguments.

Definition at line 41 of file aterm.h.

◆ _aterm_appl() [2/4]

template<std::size_t N = 1>
template<typename Iterator , typename std::enable_if< mcrl2::utilities::is_iterator< Iterator >::value >::type * = nullptr>
atermpp::detail::_aterm_appl< N >::_aterm_appl ( const function_symbol sym,
Iterator  it,
Iterator  end 
)
inline

constructs a term application with the given symbol and an iterator where the number of elements is equal to the template parameter N.

Definition at line 52 of file aterm.h.

◆ _aterm_appl() [3/4]

template<std::size_t N = 1>
atermpp::detail::_aterm_appl< N >::_aterm_appl ( const function_symbol sym,
std::array< unprotected_aterm_core, N >  arguments 
)
inline

Constructs a term application with the given symbol and arguments.

Definition at line 69 of file aterm.h.

◆ _aterm_appl() [4/4]

template<std::size_t N = 1>
template<typename Iterator , typename std::enable_if< mcrl2::utilities::is_iterator< Iterator >::value >::type * = nullptr>
atermpp::detail::_aterm_appl< N >::_aterm_appl ( const function_symbol symbol,
Iterator  it,
Iterator  end,
bool   
)
inline

constructs a term application with the given symbol and its arguments from the iterator.

Definition at line 79 of file aterm.h.

Member Function Documentation

◆ arg()

template<std::size_t N = 1>
const aterm_core & atermpp::detail::_aterm_appl< N >::arg ( std::size_t  index) const
inline
Returns
A const reference to the arguments at the ith position.

Definition at line 97 of file aterm.h.

◆ operator _aterm_appl< 1 > &()

template<std::size_t N = 1>
atermpp::detail::_aterm_appl< N >::operator _aterm_appl< 1 > & ( )
inlineexplicit

Convert any known number of arguments aterm<N> to the default _aterm_appl.

Definition at line 103 of file aterm.h.

Member Data Documentation

◆ m_arguments

template<std::size_t N = 1>
std::array<unprotected_aterm_core, N> atermpp::detail::_aterm_appl< N >::m_arguments
private

Definition at line 109 of file aterm.h.


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