We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 84a9ec2 commit 1dee803Copy full SHA for 1dee803
llvm/include/llvm/Support/SaveAndRestore.h
@@ -20,11 +20,12 @@ namespace llvm {
20
/// A utility class that uses RAII to save and restore the value of a variable.
21
template <typename T> struct SaveAndRestore {
22
SaveAndRestore(T &X) : X(X), OldValue(X) {}
23
- SaveAndRestore(T &X, const T &NewValue) : X(X), OldValue(X) {
24
- X = NewValue;
+ SaveAndRestore(T &X, const T &NewValue) : X(X), OldValue(X) { X = NewValue; }
+ SaveAndRestore(T &X, T &&NewValue) : X(X), OldValue(std::move(X)) {
25
+ X = std::move(NewValue);
26
}
- ~SaveAndRestore() { X = OldValue; }
27
- T get() { return OldValue; }
+ ~SaveAndRestore() { X = std::move(OldValue); }
28
+ const T &get() { return OldValue; }
29
30
private:
31
T &X;
0 commit comments