Files
compute-runtime/opencl/test/unit_test/helpers/variable_backup.h
kamdiedrich e8852a68c4 Reorganization directory structure [2/n]
Change-Id: I47962d17d755e80dcd9476e1ed75560f433f6115
2020-02-23 12:01:27 +01:00

35 lines
633 B
C++

/*
* Copyright (C) 2017-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
template <typename T>
class VariableBackup {
public:
VariableBackup(T *ptr) : pValue(ptr) {
oldValue = *ptr;
}
VariableBackup(T *ptr, T &&newValue) : pValue(ptr) {
oldValue = *ptr;
*pValue = newValue;
}
VariableBackup(T *ptr, T &newValue) : pValue(ptr) {
oldValue = *ptr;
*pValue = newValue;
}
~VariableBackup() {
*pValue = oldValue;
}
void operator=(const T &val) {
*pValue = val;
}
private:
T oldValue;
T *pValue;
};