ScopeGuard.h File Reference

#include "RefToValue.h"

Namespaces

namespace  Loki

Classes

class  Loki::ObjScopeGuardImpl0< Obj, MemFun >
class  Loki::ObjScopeGuardImpl1< Obj, MemFun, P1 >
class  Loki::ObjScopeGuardImpl2< Obj, MemFun, P1, P2 >
class  Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >
class  Loki::ScopeGuardImpl0< F >
class  Loki::ScopeGuardImpl1< F, P1 >
class  Loki::ScopeGuardImpl2< F, P1, P2 >
class  Loki::ScopeGuardImpl3< F, P1, P2, P3 >
class  Loki::ScopeGuardImpl4< F, P1, P2, P3, P4 >
class  Loki::ScopeGuardImpl5< F, P1, P2, P3, P4, P5 >
class  Loki::ScopeGuardImplBase

Defines

#define LOKI_ANONYMOUS_VARIABLE(str)   LOKI_CONCATENATE(str, __LINE__)
#define LOKI_CONCATENATE(s1, s2)   LOKI_CONCATENATE_DIRECT(s1, s2)
#define LOKI_CONCATENATE_DIRECT(s1, s2)   s1##s2
#define LOKI_ON_BLOCK_EXIT   ::Loki::ScopeGuard LOKI_ANONYMOUS_VARIABLE(scopeGuard) = ::Loki::MakeGuard
#define LOKI_ON_BLOCK_EXIT_OBJ   ::Loki::ScopeGuard LOKI_ANONYMOUS_VARIABLE(scopeGuard) = ::Loki::MakeObjGuard

Typedefs

typedef const ScopeGuardImplBase & Loki::ScopeGuard

Functions

template<typename Ret, class Obj1, class Obj2, typename P1a, typename P1b, typename P2a, typename P2b, typename P3a, typename P3b>
ObjScopeGuardImpl3< Obj1, Ret(Obj2::*)(P1a,
P2a, P3a), P1b, P2b, P3b > 
Loki::MakeGuard (Ret(Obj2::*memFun)(P1a, P2a, P3a), Obj1 *obj, P1b p1, P2b p2, P3b p3)
template<typename Ret, class Obj1, class Obj2, typename P1a, typename P1b, typename P2a, typename P2b, typename P3a, typename P3b>
ObjScopeGuardImpl3< Obj1, Ret(Obj2::*)(P1a,
P2a, P3a), P1b, P2b, P3b > 
Loki::MakeGuard (Ret(Obj2::*memFun)(P1a, P2a, P3a), Obj1 &obj, P1b p1, P2b p2, P3b p3)
template<typename Ret, class Obj1, class Obj2, typename P1a, typename P1b, typename P2a, typename P2b>
ObjScopeGuardImpl2< Obj1, Ret(Obj2::*)(P1a,
P2a), P1b, P2b > 
Loki::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 > 
Loki::MakeGuard (Ret(Obj2::*memFun)(P1a, P2a), Obj1 &obj, P1b p1, P2b p2)
template<typename Ret, class Obj1, class Obj2, typename P1a, typename P1b>
ObjScopeGuardImpl1< Obj1, Ret(Obj2::*)(P1a),
P1b > 
Loki::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 > 
Loki::MakeGuard (Ret(Obj2::*memFun)(P1a), Obj1 &obj, P1b p1)
template<typename Ret, class Obj1, class Obj2>
ObjScopeGuardImpl0< Obj1, Ret(Obj2::*)()> Loki::MakeGuard (Ret(Obj2::*memFun)(), Obj1 *obj)
template<typename Ret, class Obj1, class Obj2>
ObjScopeGuardImpl0< Obj1, Ret(Obj2::*)()> Loki::MakeGuard (Ret(Obj2::*memFun)(), Obj1 &obj)
template<typename F, typename P1, typename P2, typename P3, typename P4, typename P5>
ScopeGuardImpl5< F, P1, P2, P3,
P4, P5 > 
Loki::MakeGuard (F fun, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
template<typename F, typename P1, typename P2, typename P3, typename P4>
ScopeGuardImpl4< F, P1, P2, P3,
P4 > 
Loki::MakeGuard (F fun, P1 p1, P2 p2, P3 p3, P4 p4)
template<typename F, typename P1, typename P2, typename P3>
ScopeGuardImpl3< F, P1, P2, P3 > Loki::MakeGuard (F fun, P1 p1, P2 p2, P3 p3)
template<typename F, typename P1, typename P2>
ScopeGuardImpl2< F, P1, P2 > Loki::MakeGuard (F fun, P1 p1, P2 p2)
template<typename F, typename P1>
ScopeGuardImpl1< F, P1 > Loki::MakeGuard (F fun, P1 p1)
template<typename F>
ScopeGuardImpl0< F > Loki::MakeGuard (F fun)
template<class Obj, typename MemFun, typename P1, typename P2, typename P3>
ObjScopeGuardImpl3< Obj,
MemFun, P1, P2, P3 > 
Loki::MakeObjGuard (Obj &obj, MemFun memFun, P1 p1, P2 p2, P3 p3)
template<class Obj, typename MemFun, typename P1, typename P2>
ObjScopeGuardImpl2< Obj,
MemFun, P1, P2 > 
Loki::MakeObjGuard (Obj &obj, MemFun memFun, P1 p1, P2 p2)
template<class Obj, typename MemFun, typename P1>
ObjScopeGuardImpl1< Obj,
MemFun, P1 > 
Loki::MakeObjGuard (Obj &obj, MemFun memFun, P1 p1)
template<class Obj, typename MemFun>
ObjScopeGuardImpl0< Obj, MemFun > Loki::MakeObjGuard (Obj &obj, MemFun memFun)

Define Documentation

#define LOKI_ANONYMOUS_VARIABLE ( str   )     LOKI_CONCATENATE(str, __LINE__)

#define LOKI_CONCATENATE ( s1,
s2   )     LOKI_CONCATENATE_DIRECT(s1, s2)

#define LOKI_CONCATENATE_DIRECT ( s1,
s2   )     s1##s2

#define LOKI_ON_BLOCK_EXIT   ::Loki::ScopeGuard LOKI_ANONYMOUS_VARIABLE(scopeGuard) = ::Loki::MakeGuard

#define LOKI_ON_BLOCK_EXIT_OBJ   ::Loki::ScopeGuard LOKI_ANONYMOUS_VARIABLE(scopeGuard) = ::Loki::MakeObjGuard


Generated on Tue Jul 28 16:21:11 2009 for Orxonox by  doxygen 1.5.6