| 87 | template <typename Fn, typename From, |
| 88 | typename To = decltype(std::declval<Fn>()(std::declval<From>()))> |
| 89 | std::vector<To> MapVector(Fn&& map, const std::vector<From>& source) { |
| 90 | std::vector<To> out; |
| 91 | out.reserve(source.size()); |
| 92 | std::transform(source.begin(), source.end(), std::back_inserter(out), |
| 93 | std::forward<Fn>(map)); |
| 94 | return out; |
| 95 | } |
| 96 | |
| 97 | template <typename Fn, typename From, |
| 98 | typename To = decltype(std::declval<Fn>()(std::declval<From>()))> |