STLExtras: Add some more algorithm wrappers
llvm-svn: 342102
This commit is contained in:
parent
eee709f03c
commit
911907ca3c
|
|
@ -977,6 +977,10 @@ inline void sort(IteratorTy Start, IteratorTy End) {
|
||||||
std::sort(Start, End);
|
std::sort(Start, End);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename Container> inline void sort(Container &&C) {
|
||||||
|
llvm::sort(adl_begin(C), adl_end(C));
|
||||||
|
}
|
||||||
|
|
||||||
template <typename IteratorTy, typename Compare>
|
template <typename IteratorTy, typename Compare>
|
||||||
inline void sort(IteratorTy Start, IteratorTy End, Compare Comp) {
|
inline void sort(IteratorTy Start, IteratorTy End, Compare Comp) {
|
||||||
#ifdef EXPENSIVE_CHECKS
|
#ifdef EXPENSIVE_CHECKS
|
||||||
|
|
@ -986,6 +990,11 @@ inline void sort(IteratorTy Start, IteratorTy End, Compare Comp) {
|
||||||
std::sort(Start, End, Comp);
|
std::sort(Start, End, Comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename Container, typename Compare>
|
||||||
|
inline void sort(Container &&C, Compare Comp) {
|
||||||
|
llvm::sort(adl_begin(C), adl_end(C), Comp);
|
||||||
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// Extra additions to <algorithm>
|
// Extra additions to <algorithm>
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
@ -1137,6 +1146,11 @@ auto upper_bound(R &&Range, ForwardIt I) -> decltype(adl_begin(Range)) {
|
||||||
return std::upper_bound(adl_begin(Range), adl_end(Range), I);
|
return std::upper_bound(adl_begin(Range), adl_end(Range), I);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename R, typename ForwardIt, typename Compare>
|
||||||
|
auto upper_bound(R &&Range, ForwardIt I, Compare C)
|
||||||
|
-> decltype(adl_begin(Range)) {
|
||||||
|
return std::upper_bound(adl_begin(Range), adl_end(Range), I, C);
|
||||||
|
}
|
||||||
/// Wrapper function around std::equal to detect if all elements
|
/// Wrapper function around std::equal to detect if all elements
|
||||||
/// in a container are same.
|
/// in a container are same.
|
||||||
template <typename R>
|
template <typename R>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue