GNU Octave  8.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
unwind_protect Class Reference

#include "unwind-prot.h"

Inheritance diagram for unwind_protect:
Collaboration diagram for unwind_protect:

Public Member Functions

 unwind_protect (const unwind_protect &)=delete
 
 unwind_protect (void)
 
 ~unwind_protect (void)
 
template<typename F , typename... Args>
void add (F &&fcn, Args &&... args)
 
template<typename T >
void add_delete (T *obj)
 
template<typename... Params, typename... Args>
void add_fcn (void(*fcn)(Params...), Args &&... args)
 
template<typename T , typename... Params, typename... Args>
void add_method (T &obj, void(T::*method)(Params...), Args &&... args)
 
template<typename T , typename... Params, typename... Args>
void add_method (T *obj, void(T::*method)(Params...), Args &&... args)
 
void discard (std::size_t num)
 
void discard (void)
 
void discard_first (void)
 
bool empty (void) const
 
 operator bool (void) const
 
unwind_protectoperator= (const unwind_protect &)=delete
 
template<typename T >
void protect_var (T &var)
 
template<typename T >
void protect_var (T &var, const T &val)
 
OCTAVE_API void run (std::size_t num)
 
void run (void)
 
void run_first (void)
 
std::size_t size (void) const
 

Protected Member Functions

virtual void add_action (elem *new_elem)
 

Protected Attributes

std::stack< elem * > m_lifo
 

Detailed Description

Definition at line 40 of file unwind-prot.h.

Constructor & Destructor Documentation

◆ unwind_protect() [1/2]

unwind_protect::unwind_protect ( void  )
inline

Definition at line 46 of file unwind-prot.h.

◆ unwind_protect() [2/2]

unwind_protect::unwind_protect ( const unwind_protect )
delete

◆ ~unwind_protect()

unwind_protect::~unwind_protect ( void  )
inline

Definition at line 58 of file unwind-prot.h.

Member Function Documentation

◆ add()

template<typename F , typename... Args>
void action_container::add ( F &&  fcn,
Args &&...  args 
)
inlineinherited

◆ add_action()

virtual void unwind_protect::add_action ( elem new_elem)
inlineprotectedvirtual

Implements action_container.

Definition at line 87 of file unwind-prot.h.

◆ add_delete()

template<typename T >
void action_container::add_delete ( T *  obj)
inlineinherited

Definition at line 177 of file action-container.h.

Referenced by get_data_and_bytesize(), and run_command_and_return_output().

◆ add_fcn()

template<typename... Params, typename... Args>
void action_container::add_fcn ( void(*)(Params...)  fcn,
Args &&...  args 
)
inlineinherited

Definition at line 157 of file action-container.h.

◆ add_method() [1/2]

template<typename T , typename... Params, typename... Args>
void action_container::add_method ( T &  obj,
void(T::*)(Params...)  method,
Args &&...  args 
)
inlineinherited

Definition at line 169 of file action-container.h.

◆ add_method() [2/2]

template<typename T , typename... Params, typename... Args>
void action_container::add_method ( T *  obj,
void(T::*)(Params...)  method,
Args &&...  args 
)
inlineinherited

Definition at line 163 of file action-container.h.

◆ discard() [1/2]

void action_container::discard ( std::size_t  num)
inlineinherited

◆ discard() [2/2]

void action_container::discard ( void  )
inlineinherited

Definition at line 215 of file action-container.h.

References action_container::discard().

Referenced by action_container::discard().

◆ discard_first()

void unwind_protect::discard_first ( void  )
inlinevirtual

Implements action_container.

Definition at line 73 of file unwind-prot.h.

◆ empty()

bool action_container::empty ( void  ) const
inlineinherited

Definition at line 219 of file action-container.h.

◆ operator bool()

unwind_protect::operator bool ( void  ) const
inline

Definition at line 60 of file unwind-prot.h.

◆ operator=()

unwind_protect& unwind_protect::operator= ( const unwind_protect )
delete

◆ protect_var() [1/2]

template<typename T >
void action_container::protect_var ( T &  var)
inlineinherited

◆ protect_var() [2/2]

template<typename T >
void action_container::protect_var ( T &  var,
const T &  val 
)
inlineinherited

Definition at line 191 of file action-container.h.

◆ run() [1/2]

void action_container::run ( std::size_t  num)
inherited

◆ run() [2/2]

void action_container::run ( void  )
inlineinherited

Definition at line 202 of file action-container.h.

References action_container::run().

Referenced by action_container::run().

◆ run_first()

void unwind_protect::run_first ( void  )
inlinevirtual

Implements action_container.

Definition at line 62 of file unwind-prot.h.

Referenced by load_path::set().

◆ size()

std::size_t unwind_protect::size ( void  ) const
inlinevirtual

Implements action_container.

Definition at line 83 of file unwind-prot.h.

Member Data Documentation

◆ m_lifo

std::stack<elem *> unwind_protect::m_lifo
protected

Definition at line 92 of file unwind-prot.h.


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