diff options
author | Jacques Lucke <jacques@blender.org> | 2020-04-28 17:41:37 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-04-28 17:41:37 +0300 |
commit | c05ef1459c68e0a37e645b1c32caeea0961edef5 (patch) | |
tree | c7c5f3337abfd01a8c362d73c6c2409ead180ce8 | |
parent | d575b72c16d217353795594032196a5857907de2 (diff) |
BLI: add Set.clear method
-rw-r--r-- | source/blender/blenlib/BLI_set.hh | 6 | ||||
-rw-r--r-- | tests/gtests/blenlib/BLI_set_test.cc | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_set.hh b/source/blender/blenlib/BLI_set.hh index f9d4bbfaed4..dc9df5d116a 100644 --- a/source/blender/blenlib/BLI_set.hh +++ b/source/blender/blenlib/BLI_set.hh @@ -284,6 +284,12 @@ class Set { return this->size() == 0; } + void clear() + { + this->~Set(); + new (this) Set(); + } + /** * Returns true when there is at least one element that is in both sets. * Otherwise false. diff --git a/tests/gtests/blenlib/BLI_set_test.cc b/tests/gtests/blenlib/BLI_set_test.cc index ae46c2bf52e..90c052d7d2b 100644 --- a/tests/gtests/blenlib/BLI_set_test.cc +++ b/tests/gtests/blenlib/BLI_set_test.cc @@ -194,3 +194,11 @@ TEST(set, UniquePtrValues) EXPECT_EQ(set.size(), 3); } + +TEST(set, Clear) +{ + Set<int> set = {3, 4, 6, 7}; + EXPECT_EQ(set.size(), 4); + set.clear(); + EXPECT_EQ(set.size(), 0); +} |