Orxonox: Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 > Class Template Reference

# Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 > Class Template Reference
[Exception-safe code]

`#include <src/util/ScopeGuard.h>`

Inheritance diagram for Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >:

List of all members.

## Public Member Functions

void | Execute ()
| ~ObjScopeGuardImpl3 () throw ()

## Static Public Member Functions

static ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 > | MakeObjGuard (Obj &obj, MemFun memFun, P1 p1, P2 p2, P3 p3)

## Protected Member Functions

| ObjScopeGuardImpl3 (Obj &obj, MemFun memFun, P1 p1, P2 p2, P3 p3)

## Protected Attributes

MemFun | memFun_
Obj & | obj_
const P1 | p1_
const P2 | p2_
const P3 | p3_

## Detailed Description

### template<class Obj, typename MemFun, typename P1, typename P2, typename P3>
class Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >

Implementation class for a class per-instance member function with three parameters. Each parameter is copied by value - use Loki::ByRef if you must use a reference instead. ScopeGuard ignores any value returned from the call within the Execute function.

This class has 3 standalone helper functions which create a ScopeGuard. One is MakeObjGuard, which is deprecated but provided for older code. The other two are MakeGuard overloads, one which takes a pointer to an object, and the other which takes a reference.

## Constructor & Destructor Documentation

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::~ObjScopeGuardImpl3 | ( |  | ) | throw ()`[inline]`

References Loki::ScopeGuardImplBase::SafeExecute().

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::ObjScopeGuardImpl3 | ( | Obj & | obj,
|  | MemFun | memFun,
|  | P1 | p1,
|  | P2 | p2,
|  | P3 | p3 |
| ) |  |  | `[inline, protected]`

## Member Function Documentation

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

void Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::Execute | ( |  | ) | `[inline]`

References Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::memFun_, Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::obj_, Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::p1_, Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::p2_, and Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::p3_.

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

static ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 > Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::MakeObjGuard | ( | Obj & | obj,
|  | MemFun | memFun,
|  | P1 | p1,
|  | P2 | p2,
|  | P3 | p3 |
| ) |  |  | `[inline, static]`

## Member Data Documentation

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

MemFun Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::memFun_`[protected]`

Referenced by Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::Execute().

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

Obj& Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::obj_`[protected]`

Referenced by Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::Execute().

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

const P1 Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::p1_`[protected]`

Referenced by Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::Execute().

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

const P2 Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::p2_`[protected]`

Referenced by Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::Execute().

template<class Obj, typename MemFun, typename P1, typename P2, typename P3>

const P3 Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::p3_`[protected]`

Referenced by Loki::ObjScopeGuardImpl3< Obj, MemFun, P1, P2, P3 >::Execute().

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

- src/util/ScopeGuard.h