diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-05-08 21:52:23 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-05-08 21:52:23 +0000 |
commit | b0439e6d6a7c3cd93589b712b732334803506184 (patch) | |
tree | 9eed67e33426746babef177ef885b6a7da3fac71 /unittests | |
parent | 24ac5dfba02400ce57907dc150a8023f7678a62d (diff) | |
download | llvm-b0439e6d6a7c3cd93589b712b732334803506184.tar.gz llvm-b0439e6d6a7c3cd93589b712b732334803506184.tar.bz2 llvm-b0439e6d6a7c3cd93589b712b732334803506184.tar.xz |
StringMap support for move-only values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208359 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/ADT/StringMapTest.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/unittests/ADT/StringMapTest.cpp b/unittests/ADT/StringMapTest.cpp index b6d41bcc8e..42a0388618 100644 --- a/unittests/ADT/StringMapTest.cpp +++ b/unittests/ADT/StringMapTest.cpp @@ -218,4 +218,20 @@ TEST_F(StringMapTest, NonDefaultConstructable) { ASSERT_EQ(iter->second.i, 123); } +struct MoveOnly { + int i; + MoveOnly(int i) : i(i) {} + MoveOnly(MoveOnly&&) = default; + MoveOnly(const MoveOnly&) = delete; + MoveOnly &operator=(MoveOnly&&) = default; + MoveOnly &operator=(const MoveOnly&) = delete; +}; + +TEST_F(StringMapTest, MoveOnlyKey) { + StringMap<MoveOnly> t; + t.GetOrCreateValue("Test", MoveOnly(42)); + StringRef Key = "Test"; + StringMapEntry<MoveOnly>::Create(Key.begin(), Key.end(), MoveOnly(42))->Destroy(); +} + } // end anonymous namespace |