[llvm] r363477 - Add a map_range function for applying map_iterator to a range.
Richard Smith via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 14 16:56:40 PDT 2019
Author: rsmith
Date: Fri Jun 14 16:56:40 2019
New Revision: 363477
URL: http://llvm.org/viewvc/llvm-project?rev=363477&view=rev
Log:
Add a map_range function for applying map_iterator to a range.
In preparation for use in Clang.
Modified:
llvm/trunk/include/llvm/ADT/STLExtras.h
Modified: llvm/trunk/include/llvm/ADT/STLExtras.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/STLExtras.h?rev=363477&r1=363476&r2=363477&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/STLExtras.h (original)
+++ llvm/trunk/include/llvm/ADT/STLExtras.h Fri Jun 14 16:56:40 2019
@@ -240,6 +240,13 @@ inline mapped_iterator<ItTy, FuncTy> map
return mapped_iterator<ItTy, FuncTy>(std::move(I), std::move(F));
}
+template <class ContainerTy, class FuncTy>
+auto map_range(ContainerTy &&C, FuncTy F)
+ -> decltype(make_range(map_iterator(C.begin(), F),
+ map_iterator(C.end(), F))) {
+ return make_range(map_iterator(C.begin(), F), map_iterator(C.end(), F));
+}
+
/// Helper to determine if type T has a member called rbegin().
template <typename Ty> class has_rbegin_impl {
using yes = char[1];
More information about the llvm-commits
mailing list