47 operator T &()
const {
return ref_; }
136 template <
typename F,
typename P1,
typename P2>
142 template <
typename F,
typename P1,
typename P2,
typename P3>
161 template <
typename F,
typename P1,
typename P2,
typename P3>
185 template <
class Obj,
typename MemFun>
191 template <
typename Ret,
class Obj1,
class Obj2>
197 template <
typename Ret,
class Obj1,
class Obj2>
203 template <
class Obj,
typename MemFun,
typename P1>
221 template <
class Obj,
typename MemFun,
typename P1>
227 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b>
234 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b>
241 template <
class Obj,
typename MemFun,
typename P1,
typename P2>
263 template <
class Obj,
typename MemFun,
typename P1,
typename P2>
269 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b,
typename P2a,
272 MakeGuard(Ret (Obj2::*memFun)(P1a, P2a), Obj1 &obj, P1b p1, P2b p2)
278 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b,
typename P2a,
281 MakeGuard(Ret (Obj2::*memFun)(P1a, P2a), Obj1 *obj, P1b p1, P2b p2)
287 #define CONCATENATE_DIRECT(s1, s2) s1##s2 288 #define CONCATENATE(s1, s2) CONCATENATE_DIRECT(s1, s2) 289 #define ANONYMOUS_VARIABLE(str) CONCATENATE(str, __LINE__) 291 #define ON_BLOCK_EXIT ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = MakeGuard 292 #define ON_BLOCK_EXIT_OBJ ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = MakeObjGuard 294 #endif // SCOPEGUARD_H_ Obj & obj_
Definition: Ioss_ScopeGuard.h:216
RefHolder< T > ByRef(T &t)
Definition: Ioss_ScopeGuard.h:51
F fun_
Definition: Ioss_ScopeGuard.h:155
static ObjScopeGuardImpl0< Obj, MemFun > MakeObjGuard(Obj &obj, MemFun memFun)
Definition: Ioss_ScopeGuard.h:172
void Execute()
Definition: Ioss_ScopeGuard.h:177
ScopeGuardImpl3(F fun, P1 p1, P2 p2, P3 p3)
Definition: Ioss_ScopeGuard.h:154
~ScopeGuardImpl0()
Definition: Ioss_ScopeGuard.h:88
Definition: Ioss_ScopeGuard.h:242
F fun_
Definition: Ioss_ScopeGuard.h:110
const P1 p1_
Definition: Ioss_ScopeGuard.h:156
ScopeGuardImplBase()
Definition: Ioss_ScopeGuard.h:77
const P1 p1_
Definition: Ioss_ScopeGuard.h:111
~ObjScopeGuardImpl2()
Definition: Ioss_ScopeGuard.h:249
~ScopeGuardImpl3()
Definition: Ioss_ScopeGuard.h:150
Definition: Ioss_ScopeGuard.h:53
Definition: Ioss_ScopeGuard.h:84
const P1 p1_
Definition: Ioss_ScopeGuard.h:218
ScopeGuardImpl1(F fun, P1 p1)
Definition: Ioss_ScopeGuard.h:109
static ScopeGuardImpl1< F, P1 > MakeGuard(F fun, P1 p1)
Definition: Ioss_ScopeGuard.h:104
F fun_
Definition: Ioss_ScopeGuard.h:93
~ScopeGuardImplBase()=default
T & ref_
Definition: Ioss_ScopeGuard.h:43
const P1 p1_
Definition: Ioss_ScopeGuard.h:259
Definition: Ioss_ScopeGuard.h:143
const P3 p3_
Definition: Ioss_ScopeGuard.h:158
Definition: Ioss_ScopeGuard.h:204
~ObjScopeGuardImpl1()
Definition: Ioss_ScopeGuard.h:211
Obj & obj_
Definition: Ioss_ScopeGuard.h:181
static void SafeExecute(J &j)
Definition: Ioss_ScopeGuard.h:63
ScopeGuardImpl0< F > MakeGuard(F fun)
Definition: Ioss_ScopeGuard.h:96
ObjScopeGuardImpl0< Obj, MemFun > MakeObjGuard(Obj &obj, MemFun memFun)
Definition: Ioss_ScopeGuard.h:186
void Execute()
Definition: Ioss_ScopeGuard.h:89
static ScopeGuardImpl2< F, P1, P2 > MakeGuard(F fun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:122
MemFun memFun_
Definition: Ioss_ScopeGuard.h:217
static ScopeGuardImpl3< F, P1, P2, P3 > MakeGuard(F fun, P1 p1, P2 p2, P3 p3)
Definition: Ioss_ScopeGuard.h:146
bool dismissed_
Definition: Ioss_ScopeGuard.h:74
ObjScopeGuardImpl0(Obj &obj, MemFun memFun)
Definition: Ioss_ScopeGuard.h:180
ScopeGuardImpl2(F fun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:130
static ObjScopeGuardImpl1< Obj, MemFun, P1 > MakeObjGuard(Obj &obj, MemFun memFun, P1 p1)
Definition: Ioss_ScopeGuard.h:207
static ObjScopeGuardImpl2< Obj, MemFun, P1, P2 > MakeObjGuard(Obj &obj, MemFun memFun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:245
Definition: Ioss_ScopeGuard.h:169
RefHolder(T &ref)
Definition: Ioss_ScopeGuard.h:46
const P2 p2_
Definition: Ioss_ScopeGuard.h:260
const P2 p2_
Definition: Ioss_ScopeGuard.h:157
void Execute()
Definition: Ioss_ScopeGuard.h:151
static ScopeGuardImpl0< F > MakeGuard(F fun)
Definition: Ioss_ScopeGuard.h:87
MemFun memFun_
Definition: Ioss_ScopeGuard.h:182
void Execute()
Definition: Ioss_ScopeGuard.h:250
const P1 p1_
Definition: Ioss_ScopeGuard.h:132
void Dismiss() const
Definition: Ioss_ScopeGuard.h:78
Definition: Ioss_ScopeGuard.h:119
ScopeGuardImpl0(F fun)
Definition: Ioss_ScopeGuard.h:92
ObjScopeGuardImpl2(Obj &obj, MemFun memFun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:253
RefHolder & operator=(const RefHolder &)=delete
MemFun memFun_
Definition: Ioss_ScopeGuard.h:258
~ScopeGuardImpl2()
Definition: Ioss_ScopeGuard.h:126
__attribute__((unused)) typedef const ScopeGuardImplBase &ScopeGuard
void Execute()
Definition: Ioss_ScopeGuard.h:127
F fun_
Definition: Ioss_ScopeGuard.h:131
~ObjScopeGuardImpl0()
Definition: Ioss_ScopeGuard.h:176
ObjScopeGuardImpl1(Obj &obj, MemFun memFun, P1 p1)
Definition: Ioss_ScopeGuard.h:215
Obj & obj_
Definition: Ioss_ScopeGuard.h:257
const P2 p2_
Definition: Ioss_ScopeGuard.h:133
ScopeGuardImplBase & operator=(const ScopeGuardImplBase &)
~ScopeGuardImpl1()
Definition: Ioss_ScopeGuard.h:105
ScopeGuardImplBase(const ScopeGuardImplBase &other)
Definition: Ioss_ScopeGuard.h:59
void Execute()
Definition: Ioss_ScopeGuard.h:212
Definition: Ioss_ScopeGuard.h:101
Definition: Ioss_ScopeGuard.h:41
void Execute()
Definition: Ioss_ScopeGuard.h:106