IOSS 2.0
Loading...
Searching...
No Matches
Ioss_ScopeGuard.h File Reference
#include "ioss_export.h"
Include dependency graph for Ioss_ScopeGuard.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Ioss::RefHolder< T >
 
class  Ioss::ScopeGuardImplBase
 
class  Ioss::ScopeGuardImpl0< F >
 
class  Ioss::ScopeGuardImpl1< F, P1 >
 
class  Ioss::ScopeGuardImpl2< F, P1, P2 >
 
class  Ioss::ScopeGuardImpl3< F, P1, P2, P3 >
 
class  Ioss::ObjScopeGuardImpl0< Obj, MemFun >
 
class  Ioss::ObjScopeGuardImpl1< Obj, MemFun, P1 >
 
class  Ioss::ObjScopeGuardImpl2< Obj, MemFun, P1, P2 >
 

Namespaces

namespace  Ioss
 The main namespace for the Ioss library.
 

Macros

#define CONCATENATE_DIRECT(s1, s2)   s1##s2
 
#define CONCATENATE(s1, s2)   CONCATENATE_DIRECT(s1, s2)
 
#define ANONYMOUS_VARIABLE(str)   CONCATENATE(str, __LINE__)
 
#define ON_BLOCK_EXIT   ::Ioss::ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = ::Ioss::MakeGuard
 
#define ON_BLOCK_EXIT_OBJ   ::Ioss::ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = ::Ioss::MakeObjGuard
 

Functions

template<class T >
RefHolder< T > Ioss::ByRef (T &t)
 
 Ioss::__attribute__ ((unused)) typedef const ScopeGuardImplBase &ScopeGuard
 
template<typename F >
ScopeGuardImpl0< F > Ioss::MakeGuard (F fun)
 
template<typename F , typename P1 >
ScopeGuardImpl1< F, P1 > Ioss::MakeGuard (F fun, P1 p1)
 
template<typename F , typename P1 , typename P2 >
ScopeGuardImpl2< F, P1, P2 > Ioss::MakeGuard (F fun, P1 p1, P2 p2)
 
template<typename F , typename P1 , typename P2 , typename P3 >
ScopeGuardImpl3< F, P1, P2, P3 > Ioss::MakeGuard (F fun, P1 p1, P2 p2, P3 p3)
 
template<class Obj , typename MemFun >
ObjScopeGuardImpl0< Obj, MemFun > Ioss::MakeObjGuard (Obj &obj, MemFun memFun)
 
template<typename Ret , class Obj1 , class Obj2 >
ObjScopeGuardImpl0< Obj1, Ret(Obj2::*)()> Ioss::MakeGuard (Ret(Obj2::*memFun)(), Obj1 &obj)
 
template<typename Ret , class Obj1 , class Obj2 >
ObjScopeGuardImpl0< Obj1, Ret(Obj2::*)()> Ioss::MakeGuard (Ret(Obj2::*memFun)(), Obj1 *obj)
 
template<class Obj , typename MemFun , typename P1 >
ObjScopeGuardImpl1< Obj, MemFun, P1 > Ioss::MakeObjGuard (Obj &obj, MemFun memFun, P1 p1)
 
template<typename Ret , class Obj1 , class Obj2 , typename P1a , typename P1b >
ObjScopeGuardImpl1< Obj1, Ret(Obj2::*)(P1a), P1b > Ioss::MakeGuard (Ret(Obj2::*memFun)(P1a), Obj1 &obj, P1b p1)
 
template<typename Ret , class Obj1 , class Obj2 , typename P1a , typename P1b >
ObjScopeGuardImpl1< Obj1, Ret(Obj2::*)(P1a), P1b > Ioss::MakeGuard (Ret(Obj2::*memFun)(P1a), Obj1 *obj, P1b p1)
 
template<class Obj , typename MemFun , typename P1 , typename P2 >
ObjScopeGuardImpl2< Obj, MemFun, P1, P2 > Ioss::MakeObjGuard (Obj &obj, MemFun memFun, P1 p1, P2 p2)
 
template<typename Ret , class Obj1 , class Obj2 , typename P1a , typename P1b , typename P2a , typename P2b >
ObjScopeGuardImpl2< Obj1, Ret(Obj2::*)(P1a, P2a), P1b, P2b > Ioss::MakeGuard (Ret(Obj2::*memFun)(P1a, P2a), Obj1 &obj, P1b p1, P2b p2)
 
template<typename Ret , class Obj1 , class Obj2 , typename P1a , typename P1b , typename P2a , typename P2b >
ObjScopeGuardImpl2< Obj1, Ret(Obj2::*)(P1a, P2a), P1b, P2b > Ioss::MakeGuard (Ret(Obj2::*memFun)(P1a, P2a), Obj1 *obj, P1b p1, P2b p2)
 

Macro Definition Documentation

◆ ANONYMOUS_VARIABLE

#define ANONYMOUS_VARIABLE ( str)    CONCATENATE(str, __LINE__)

◆ CONCATENATE

#define CONCATENATE ( s1,
s2 )   CONCATENATE_DIRECT(s1, s2)

◆ CONCATENATE_DIRECT

#define CONCATENATE_DIRECT ( s1,
s2 )   s1##s2

◆ ON_BLOCK_EXIT

#define ON_BLOCK_EXIT   ::Ioss::ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = ::Ioss::MakeGuard

◆ ON_BLOCK_EXIT_OBJ

#define ON_BLOCK_EXIT_OBJ   ::Ioss::ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = ::Ioss::MakeObjGuard