More MSVC bot appeasement. Explicitly define rvalue methods on SortKey.

OwningAtomPtr does not have OwningAtomPtr(OwningAtomPtr&) or the equivalent
operator= as we only want to use rvalue references in it.

SortKey didn't like this on MSVC as it was synthesizing SortKey(SortKey&) and
trying to use the OwningAtomPtr(OwningAtomPtr&) method which was private an
unimplemented.

Now we explicitly have the methods on SortKey so hopefully the bot will be
happier.

llvm-svn: 264077
This commit is contained in:
Pete Cooper 2016-03-22 18:09:55 +00:00
parent 665d7e3838
commit 1edff82f82
1 changed files with 19 additions and 0 deletions

View File

@ -39,6 +39,25 @@ public:
OwningAtomPtr<DefinedAtom> _atom;
const DefinedAtom *_root;
uint64_t _override;
// Note, these are only here to appease MSVC bots which didn't like
// the same methods being implemented/deleted in OwningAtomPtr.
SortKey(SortKey &&key) : _atom(std::move(key._atom)), _root(key._root),
_override(key._override) {
key._root = nullptr;
}
SortKey &operator=(SortKey &&key) {
_atom = std::move(key._atom);
_root = key._root;
key._root = nullptr;
_override = key._override;
return *this;
}
private:
SortKey(const SortKey &) = delete;
void operator=(const SortKey&) = delete;
};
typedef std::function<bool (const DefinedAtom *left, const DefinedAtom *right,