|
17 | 17 | #define LLVM_ADT_STLEXTRAS_H
|
18 | 18 |
|
19 | 19 | #include "llvm/ADT/Optional.h"
|
20 |
| -#include "llvm/ADT/SmallVector.h" |
21 | 20 | #include "llvm/ADT/iterator.h"
|
22 | 21 | #include "llvm/ADT/iterator_range.h"
|
23 | 22 | #include "llvm/Config/abi-breaking.h"
|
@@ -51,10 +50,6 @@ namespace detail {
|
51 | 50 | template <typename RangeT>
|
52 | 51 | using IterOfRange = decltype(std::begin(std::declval<RangeT &>()));
|
53 | 52 |
|
54 |
| -template <typename RangeT> |
55 |
| -using ValueOfRange = typename std::remove_reference<decltype( |
56 |
| - *std::begin(std::declval<RangeT &>()))>::type; |
57 |
| - |
58 | 53 | } // end namespace detail
|
59 | 54 |
|
60 | 55 | //===----------------------------------------------------------------------===//
|
@@ -1334,15 +1329,6 @@ bool is_splat(R &&Range) {
|
1334 | 1329 | std::equal(adl_begin(Range) + 1, adl_end(Range), adl_begin(Range)));
|
1335 | 1330 | }
|
1336 | 1331 |
|
1337 |
| -/// Given a range of type R, iterate the entire range and return a |
1338 |
| -/// SmallVector with elements of the vector. This is useful, for example, |
1339 |
| -/// when you want to iterate a range and then sort the results. |
1340 |
| -template <unsigned Size, typename R> |
1341 |
| -SmallVector<typename std::remove_const<detail::ValueOfRange<R>>::type, Size> |
1342 |
| -to_vector(R &&Range) { |
1343 |
| - return {adl_begin(Range), adl_end(Range)}; |
1344 |
| -} |
1345 |
| - |
1346 | 1332 | /// Provide a container algorithm similar to C++ Library Fundamentals v2's
|
1347 | 1333 | /// `erase_if` which is equivalent to:
|
1348 | 1334 | ///
|
|
0 commit comments