155 result.reserve(std::end(container) - std::begin(container)); |
155 result.reserve(std::end(container) - std::begin(container)); |
156 std::transform(std::begin(container), std::end(container), makeDefaultInserter(result), function); |
156 std::transform(std::begin(container), std::end(container), makeDefaultInserter(result), function); |
157 return result; |
157 return result; |
158 } |
158 } |
159 } |
159 } |
|
160 |
|
161 template<typename T, typename Fn> |
|
162 bool any(T&& container, Fn&& f) |
|
163 { |
|
164 for (auto&& x : container) |
|
165 { |
|
166 if (f(x)) |
|
167 { |
|
168 return true; |
|
169 } |
|
170 } |
|
171 return false; |
|
172 } |
|
173 |
|
174 template<typename T, typename Fn> |
|
175 bool all(T&& container, Fn&& f) |
|
176 { |
|
177 for (auto&& x : container) |
|
178 { |
|
179 if (not f(x)) |
|
180 { |
|
181 return false; |
|
182 } |
|
183 } |
|
184 return true; |
|
185 } |