aboutsummaryrefslogtreecommitdiff
path: root/toolsrc
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 23:27:46 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 23:27:46 -0700
commitc699d5715b2e768ef2f7742a1894742df982038b (patch)
treeec63b234f2ee73edddaa128346e48ae99a9c7d44 /toolsrc
parentd2e3779cf203d209942fa347b50da1c16106a77a (diff)
downloadvcpkg-c699d5715b2e768ef2f7742a1894742df982038b.tar.gz
vcpkg-c699d5715b2e768ef2f7742a1894742df982038b.zip
Introduce vcpkg::Sets utility namespace
Diffstat (limited to 'toolsrc')
-rw-r--r--toolsrc/include/vcpkg_Sets.h17
-rw-r--r--toolsrc/vcpkgcommon/vcpkgcommon.vcxproj1
-rw-r--r--toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters3
3 files changed, 21 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg_Sets.h b/toolsrc/include/vcpkg_Sets.h
new file mode 100644
index 000000000..7b330f31c
--- /dev/null
+++ b/toolsrc/include/vcpkg_Sets.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include "vcpkg_Checks.h"
+#include <unordered_set>
+
+namespace vcpkg { namespace Sets
+{
+ template <typename T, typename Container>
+ void remove_all(std::unordered_set<T>* input_set, Container remove_these)
+ {
+ Checks::check_throw(input_set != nullptr, "Input set cannot be null");
+ for (const T& r : remove_these)
+ {
+ input_set->erase(r);
+ }
+ }
+}}
diff --git a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj
index 95cfd5764..e91cf2cf8 100644
--- a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj
+++ b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj
@@ -131,6 +131,7 @@
<ClInclude Include="..\include\vcpkg_Checks.h" />
<ClInclude Include="..\include\vcpkg_Files.h" />
<ClInclude Include="..\include\vcpkg_Graphs.h" />
+ <ClInclude Include="..\include\vcpkg_Sets.h" />
<ClInclude Include="..\include\vcpkg_Strings.h" />
<ClInclude Include="..\include\vcpkg_System.h" />
</ItemGroup>
diff --git a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters
index a7e98c853..969cf58b4 100644
--- a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters
+++ b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters
@@ -50,5 +50,8 @@
<ClInclude Include="..\include\opt_bool.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\vcpkg_Sets.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project> \ No newline at end of file