diff options
-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); +} |