From 10697a7c34e27a82efdffb3b29254ffc9309704f Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Mon, 25 Jul 2016 20:34:25 +0000 Subject: [PATCH] Fix r276671 to not use a defaulted move constructor. MSVC won't provide the body of this move constructor and assignment operator, possibly because the copy constructor is banned. Just write it manually. llvm-svn: 276685 --- llvm/include/llvm/ADT/StringSwitch.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/llvm/include/llvm/ADT/StringSwitch.h b/llvm/include/llvm/ADT/StringSwitch.h index ebdcbeae8e1c..bd200fc7c11a 100644 --- a/llvm/include/llvm/ADT/StringSwitch.h +++ b/llvm/include/llvm/ADT/StringSwitch.h @@ -55,9 +55,17 @@ public: // StringSwitch is not copyable. StringSwitch(const StringSwitch &) = delete; - StringSwitch(StringSwitch &&) = default; void operator=(const StringSwitch &) = delete; - StringSwitch &operator=(StringSwitch &&) = default; + + StringSwitch(StringSwitch &&other) { + *this = std::move(other); + } + StringSwitch &operator=(StringSwitch &&other) { + Str = other.Str; + Result = other.Result; + return *this; + } + ~StringSwitch() = default; template