Go to the documentation of this file.
47 operator T &()
const {
return ref_; }
139 template <
typename F,
typename P1,
typename P2>
145 template <
typename F,
typename P1,
typename P2,
typename P3>
164 template <
typename F,
typename P1,
typename P2,
typename P3>
188 template <
class Obj,
typename MemFun>
194 template <
typename Ret,
class Obj1,
class Obj2>
200 template <
typename Ret,
class Obj1,
class Obj2>
206 template <
class Obj,
typename MemFun,
typename P1>
224 template <
class Obj,
typename MemFun,
typename P1>
230 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b>
237 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b>
244 template <
class Obj,
typename MemFun,
typename P1,
typename P2>
266 template <
class Obj,
typename MemFun,
typename P1,
typename P2>
272 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b,
typename P2a,
275 MakeGuard(Ret (Obj2::*memFun)(P1a, P2a), Obj1 &obj, P1b p1, P2b p2)
281 template <
typename Ret,
class Obj1,
class Obj2,
typename P1a,
typename P1b,
typename P2a,
284 MakeGuard(Ret (Obj2::*memFun)(P1a, P2a), Obj1 *obj, P1b p1, P2b p2)
290 #define CONCATENATE_DIRECT(s1, s2) s1##s2
291 #define CONCATENATE(s1, s2) CONCATENATE_DIRECT(s1, s2)
292 #define ANONYMOUS_VARIABLE(str) CONCATENATE(str, __LINE__)
294 #define ON_BLOCK_EXIT ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = MakeGuard
295 #define ON_BLOCK_EXIT_OBJ ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = MakeObjGuard
297 #endif // SCOPEGUARD_H_
Obj & obj_
Definition: Ioss_ScopeGuard.h:184
~ScopeGuardImpl1()
Definition: Ioss_ScopeGuard.h:108
~ObjScopeGuardImpl2()
Definition: Ioss_ScopeGuard.h:252
ObjScopeGuardImpl0(Obj &obj, MemFun memFun)
Definition: Ioss_ScopeGuard.h:183
RefHolder< T > ByRef(T &t)
Definition: Ioss_ScopeGuard.h:51
Definition: Ioss_ScopeGuard.h:104
Definition: Ioss_ScopeGuard.h:53
Definition: Ioss_ScopeGuard.h:41
MemFun memFun_
Definition: Ioss_ScopeGuard.h:185
F fun_
Definition: Ioss_ScopeGuard.h:158
RefHolder(T &ref)
Definition: Ioss_ScopeGuard.h:46
F fun_
Definition: Ioss_ScopeGuard.h:113
static ScopeGuardImpl0< F > MakeGuard(F fun)
Definition: Ioss_ScopeGuard.h:90
ScopeGuardImplBase()
Definition: Ioss_ScopeGuard.h:77
bool dismissed_
Definition: Ioss_ScopeGuard.h:74
ScopeGuardImpl0< F > MakeGuard(F fun)
Definition: Ioss_ScopeGuard.h:99
~ObjScopeGuardImpl0()
Definition: Ioss_ScopeGuard.h:179
const P1 p1_
Definition: Ioss_ScopeGuard.h:221
Definition: Ioss_ScopeGuard.h:87
const P2 p2_
Definition: Ioss_ScopeGuard.h:136
void Execute()
Definition: Ioss_ScopeGuard.h:130
ObjScopeGuardImpl1(Obj &obj, MemFun memFun, P1 p1)
Definition: Ioss_ScopeGuard.h:218
static ObjScopeGuardImpl2< Obj, MemFun, P1, P2 > MakeObjGuard(Obj &obj, MemFun memFun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:248
const P2 p2_
Definition: Ioss_ScopeGuard.h:160
Definition: Ioss_ScopeGuard.h:146
Obj & obj_
Definition: Ioss_ScopeGuard.h:260
ScopeGuardImplBase(const ScopeGuardImplBase &other)
Definition: Ioss_ScopeGuard.h:59
void Execute()
Definition: Ioss_ScopeGuard.h:154
const P1 p1_
Definition: Ioss_ScopeGuard.h:159
ScopeGuardImpl1(F fun, P1 p1)
Definition: Ioss_ScopeGuard.h:112
static ObjScopeGuardImpl0< Obj, MemFun > MakeObjGuard(Obj &obj, MemFun memFun)
Definition: Ioss_ScopeGuard.h:175
Definition: Ioss_ScopeGuard.h:245
~ScopeGuardImpl2()
Definition: Ioss_ScopeGuard.h:129
const P1 p1_
Definition: Ioss_ScopeGuard.h:135
ObjScopeGuardImpl2(Obj &obj, MemFun memFun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:256
void Execute()
Definition: Ioss_ScopeGuard.h:253
MemFun memFun_
Definition: Ioss_ScopeGuard.h:261
ObjScopeGuardImpl0< Obj, MemFun > MakeObjGuard(Obj &obj, MemFun memFun)
Definition: Ioss_ScopeGuard.h:189
void Execute()
Definition: Ioss_ScopeGuard.h:109
T & ref_
Definition: Ioss_ScopeGuard.h:43
static ScopeGuardImpl2< F, P1, P2 > MakeGuard(F fun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:125
static ScopeGuardImpl1< F, P1 > MakeGuard(F fun, P1 p1)
Definition: Ioss_ScopeGuard.h:107
const P1 p1_
Definition: Ioss_ScopeGuard.h:114
~ScopeGuardImplBase()=default
ScopeGuardImpl2(F fun, P1 p1, P2 p2)
Definition: Ioss_ScopeGuard.h:133
ScopeGuardImplBase & operator=(const ScopeGuardImplBase &)
Definition: Ioss_ScopeGuard.h:207
static ObjScopeGuardImpl1< Obj, MemFun, P1 > MakeObjGuard(Obj &obj, MemFun memFun, P1 p1)
Definition: Ioss_ScopeGuard.h:210
RefHolder & operator=(const RefHolder &)=delete
__attribute__((unused)) typedef const ScopeGuardImplBase &ScopeGuard
F fun_
Definition: Ioss_ScopeGuard.h:96
static ScopeGuardImpl3< F, P1, P2, P3 > MakeGuard(F fun, P1 p1, P2 p2, P3 p3)
Definition: Ioss_ScopeGuard.h:149
void Execute()
Definition: Ioss_ScopeGuard.h:92
const P1 p1_
Definition: Ioss_ScopeGuard.h:262
const P3 p3_
Definition: Ioss_ScopeGuard.h:161
const P2 p2_
Definition: Ioss_ScopeGuard.h:263
void Execute()
Definition: Ioss_ScopeGuard.h:180
static void SafeExecute(J &j)
Definition: Ioss_ScopeGuard.h:63
~ObjScopeGuardImpl1()
Definition: Ioss_ScopeGuard.h:214
ScopeGuardImpl0(F fun)
Definition: Ioss_ScopeGuard.h:95
void Execute()
Definition: Ioss_ScopeGuard.h:215
Obj & obj_
Definition: Ioss_ScopeGuard.h:219
~ScopeGuardImpl3()
Definition: Ioss_ScopeGuard.h:153
MemFun memFun_
Definition: Ioss_ScopeGuard.h:220
Definition: Ioss_ScopeGuard.h:172
Definition: Ioss_ScopeGuard.h:122
void Dismiss() const
Definition: Ioss_ScopeGuard.h:78
~ScopeGuardImpl0()
Definition: Ioss_ScopeGuard.h:91
F fun_
Definition: Ioss_ScopeGuard.h:134
ScopeGuardImpl3(F fun, P1 p1, P2 p2, P3 p3)
Definition: Ioss_ScopeGuard.h:157