[SOLVED] CS #pragma once

$25

File Name: CS_#pragma_once.zip
File Size: 141.3 KB

5/5 - (1 vote)

#pragma once

#include

/// ContextManager is a simple RAII object for ensuring that cleanup code runs
/// when a function exits.
class ContextManager {
/// action is the cleanup code to run.Its a std::function, so probably a
/// lambda.
std::function action;

/// runit lets us disable the reclamation in cases where we change our mind
bool runit = true;

public:
/// Construct a ContextManager by providing a function (lambda) to run on
/// destruct
ContextManager(std::function a) : action(a) {}

/// When the ContextManager goes out of scope, run its action
~ContextManager() {
if (runit)
action();
}

/// Cancel the action, to keep it from running when this object goes out of
/// scope
void cancel() { runit = false; }
};

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS #pragma once
$25