diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-04-01 01:09:34 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-04-01 01:11:51 -0700 |
| commit | 74f788d04f2ff8ce66302b6be401ec9b7e85a42f (patch) | |
| tree | 248492633c926e8046e7a1610607209758f48bdd /toolsrc/include | |
| parent | 74fbd3acd5d2128e94dad2a0a5f705e93bb49e9a (diff) | |
| download | vcpkg-74f788d04f2ff8ce66302b6be401ec9b7e85a42f.tar.gz vcpkg-74f788d04f2ff8ce66302b6be401ec9b7e85a42f.zip | |
[vcpkg] Replace explicit bulk operations with fmap
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/vcpkg_Input.h | 9 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg_Util.h | 24 |
2 files changed, 28 insertions, 5 deletions
diff --git a/toolsrc/include/vcpkg_Input.h b/toolsrc/include/vcpkg_Input.h index 96cbeecc3..4f102d029 100644 --- a/toolsrc/include/vcpkg_Input.h +++ b/toolsrc/include/vcpkg_Input.h @@ -5,11 +5,10 @@ namespace vcpkg::Input { - package_spec check_and_get_package_spec(const std::string& package_spec_as_string, const triplet& default_target_triplet, const std::string& example_text); - - std::vector<package_spec> check_and_get_package_specs(const std::vector<std::string>& package_specs_as_strings, const triplet& default_target_triplet, const std::string& example_text); + package_spec check_and_get_package_spec( + const std::string& package_spec_as_string, + const triplet& default_target_triplet, + cstring_view example_text); void check_triplet(const triplet& t, const vcpkg_paths& paths); - - void check_triplets(const std::vector<package_spec>& triplets, const vcpkg_paths& paths); } diff --git a/toolsrc/include/vcpkg_Util.h b/toolsrc/include/vcpkg_Util.h new file mode 100644 index 000000000..4ebb2a802 --- /dev/null +++ b/toolsrc/include/vcpkg_Util.h @@ -0,0 +1,24 @@ +#pragma once + +#include <vector> +#include <utility> + +namespace vcpkg::Util +{ + template<class Cont, class Func> + using FmapOut = decltype(std::declval<Func>()(std::declval<Cont>()[0])); + + template<class Cont, class Func, class Out = FmapOut<Cont, Func>> + std::vector<Out> fmap(const Cont& xs, Func&& f) + { + using O = decltype(f(xs[0])); + + std::vector<O> ret; + ret.reserve(xs.size()); + + for (auto&& x : xs) + ret.push_back(f(x)); + + return ret; + } +}
\ No newline at end of file |
