diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index b9b5e175f50ead..4be016b795a0f9 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -1237,6 +1237,15 @@ class indexed_accessor_range } }; +/// Given a container of pairs, return a range over the first elements. +template auto make_first_range(ContainerTy &&c) { + return llvm::map_range( + std::forward(c), + [](decltype((*std::begin(c))) elt) -> decltype((elt.first)) { + return elt.first; + }); +} + /// Given a container of pairs, return a range over the second elements. template auto make_second_range(ContainerTy &&c) { return llvm::map_range(