aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 23:28:14 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 23:28:14 -0700
commitaddecbfdefe9f00214db9af438b0fe255e92a16a (patch)
tree9859220f90f28e4ebec200b053c69c76a136c72f
parentc699d5715b2e768ef2f7742a1894742df982038b (diff)
downloadvcpkg-addecbfdefe9f00214db9af438b0fe255e92a16a.tar.gz
vcpkg-addecbfdefe9f00214db9af438b0fe255e92a16a.zip
Introduce vcpkg_Maps utility namespace
-rw-r--r--toolsrc/include/vcpkg_Maps.h18
-rw-r--r--toolsrc/vcpkgcommon/vcpkgcommon.vcxproj1
-rw-r--r--toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters3
3 files changed, 22 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg_Maps.h b/toolsrc/include/vcpkg_Maps.h
new file mode 100644
index 000000000..5b7b8ed46
--- /dev/null
+++ b/toolsrc/include/vcpkg_Maps.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include <unordered_map>
+#include <unordered_set>
+
+namespace vcpkg { namespace Maps
+{
+ template <typename K, typename V>
+ std::unordered_set<K> extract_key_set(const std::unordered_map<K, V>& input_map)
+ {
+ std::unordered_set<K> key_set;
+ for (auto const& element : input_map)
+ {
+ key_set.insert(element.first);
+ }
+ return key_set;
+ }
+}}
diff --git a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj
index e91cf2cf8..d5e68fde3 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_Maps.h" />
<ClInclude Include="..\include\vcpkg_Sets.h" />
<ClInclude Include="..\include\vcpkg_Strings.h" />
<ClInclude Include="..\include\vcpkg_System.h" />
diff --git a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters
index 969cf58b4..ae747d687 100644
--- a/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters
+++ b/toolsrc/vcpkgcommon/vcpkgcommon.vcxproj.filters
@@ -50,6 +50,9 @@
<ClInclude Include="..\include\opt_bool.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\vcpkg_Maps.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\vcpkg_Sets.h">
<Filter>Header Files</Filter>
</ClInclude>