From Jason Turner

[upper.bound]

Diff to HTML by rtfpessoa

tmp/tmp7duocq67/{from.md → to.md} RENAMED
@@ -1,22 +1,25 @@
1
  #### `upper_bound` <a id="upper.bound">[[upper.bound]]</a>
2
 
3
  ``` cpp
4
- template<class ForwardIterator, class T>
5
  constexpr ForwardIterator
6
  upper_bound(ForwardIterator first, ForwardIterator last,
7
  const T& value);
8
 
9
- template<class ForwardIterator, class T, class Compare>
 
10
  constexpr ForwardIterator
11
  upper_bound(ForwardIterator first, ForwardIterator last,
12
  const T& value, Compare comp);
13
 
14
- template<forward_iterator I, sentinel_for<I> S, class T, class Proj = identity,
 
15
  indirect_strict_weak_order<const T*, projected<I, Proj>> Comp = ranges::less>
16
  constexpr I ranges::upper_bound(I first, S last, const T& value, Comp comp = {}, Proj proj = {});
17
- template<forward_range R, class T, class Proj = identity,
 
18
  indirect_strict_weak_order<const T*, projected<iterator_t<R>, Proj>> Comp =
19
  ranges::less>
20
  constexpr borrowed_iterator_t<R>
21
  ranges::upper_bound(R&& r, const T& value, Comp comp = {}, Proj proj = {});
22
  ```
 
1
  #### `upper_bound` <a id="upper.bound">[[upper.bound]]</a>
2
 
3
  ``` cpp
4
+ template<class ForwardIterator, class T = iterator_traits<ForwardIterator>::value_type>
5
  constexpr ForwardIterator
6
  upper_bound(ForwardIterator first, ForwardIterator last,
7
  const T& value);
8
 
9
+ template<class ForwardIterator, class T = iterator_traits<ForwardIterator>::value_type,
10
+ class Compare>
11
  constexpr ForwardIterator
12
  upper_bound(ForwardIterator first, ForwardIterator last,
13
  const T& value, Compare comp);
14
 
15
+ template<forward_iterator I, sentinel_for<I> S, class Proj = identity,
16
+ class T = projected_value_t<I, Proj>,
17
  indirect_strict_weak_order<const T*, projected<I, Proj>> Comp = ranges::less>
18
  constexpr I ranges::upper_bound(I first, S last, const T& value, Comp comp = {}, Proj proj = {});
19
+ template<forward_range R, class Proj = identity,
20
+ class T = projected_value_t<iterator_t<R>, Proj>,
21
  indirect_strict_weak_order<const T*, projected<iterator_t<R>, Proj>> Comp =
22
  ranges::less>
23
  constexpr borrowed_iterator_t<R>
24
  ranges::upper_bound(R&& r, const T& value, Comp comp = {}, Proj proj = {});
25
  ```