diff options
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/vcpkg/base/util.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index c73345719..7266fbbc6 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -3,6 +3,7 @@ #include <algorithm> #include <map> #include <mutex> +#include <unordered_map> #include <utility> #include <vector> @@ -29,6 +30,17 @@ namespace vcpkg::Util } } + namespace Maps + { + template<class K, class V1, class V2, class Func> + void transform_values(const std::unordered_map<K, V1>& container, std::unordered_map<K, V2>& output, Func func) + { + std::for_each(container.cbegin(), container.cend(), [&](const std::pair<const K, V1>& p) { + output[p.first] = func(p.second); + }); + } + } + template<class Cont, class Func> using FmapOut = decltype(std::declval<Func&>()(*begin(std::declval<Cont&>()))); |
