From Jason Turner

[associative.general]

Diff to HTML by rtfpessoa

tmp/tmpjis4k8lp/{from.md → to.md} RENAMED
@@ -1,33 +1,32 @@
1
- ### In general <a id="associative.general">[[associative.general]]</a>
2
 
3
  The header `<map>` defines the class templates `map` and `multimap`; the
4
  header `<set>` defines the class templates `set` and `multiset`.
5
 
6
  The following exposition-only alias templates may appear in deduction
7
  guides for associative containers:
8
 
9
  ``` cpp
10
  template<class InputIterator>
11
- using iter-value-type =
12
- typename iterator_traits<InputIterator>::value_type; // exposition only
13
  template<class InputIterator>
14
  using iter-key-type = remove_const_t<
15
  tuple_element_t<0, iter-value-type<InputIterator>>>; // exposition only
16
  template<class InputIterator>
17
  using iter-mapped-type =
18
  tuple_element_t<1, iter-value-type<InputIterator>>; // exposition only
19
  template<class InputIterator>
20
  using iter-to-alloc-type = pair<
21
- add_const_t<tuple_element_t<0, iter-value-type<InputIterator>>>,
22
  tuple_element_t<1, iter-value-type<InputIterator>>>; // exposition only
23
  template<ranges::input_range Range>
24
  using range-key-type =
25
  remove_const_t<typename ranges::range_value_t<Range>::first_type>; // exposition only
26
  template<ranges::input_range Range>
27
- using range-mapped-type = typename ranges::range_value_t<Range>::second_type; // exposition only
28
  template<ranges::input_range Range>
29
  using range-to-alloc-type =
30
- pair<add_const_t<typename ranges::range_value_t<Range>::first_type>,
31
  typename ranges::range_value_t<Range>::second_type>; // exposition only
32
  ```
33
 
 
1
+ ### General <a id="associative.general">[[associative.general]]</a>
2
 
3
  The header `<map>` defines the class templates `map` and `multimap`; the
4
  header `<set>` defines the class templates `set` and `multiset`.
5
 
6
  The following exposition-only alias templates may appear in deduction
7
  guides for associative containers:
8
 
9
  ``` cpp
10
  template<class InputIterator>
11
+ using iter-value-type = iterator_traits<InputIterator>::value_type; // exposition only
 
12
  template<class InputIterator>
13
  using iter-key-type = remove_const_t<
14
  tuple_element_t<0, iter-value-type<InputIterator>>>; // exposition only
15
  template<class InputIterator>
16
  using iter-mapped-type =
17
  tuple_element_t<1, iter-value-type<InputIterator>>; // exposition only
18
  template<class InputIterator>
19
  using iter-to-alloc-type = pair<
20
+ const tuple_element_t<0, iter-value-type<InputIterator>>,
21
  tuple_element_t<1, iter-value-type<InputIterator>>>; // exposition only
22
  template<ranges::input_range Range>
23
  using range-key-type =
24
  remove_const_t<typename ranges::range_value_t<Range>::first_type>; // exposition only
25
  template<ranges::input_range Range>
26
+ using range-mapped-type = ranges::range_value_t<Range>::second_type; // exposition only
27
  template<ranges::input_range Range>
28
  using range-to-alloc-type =
29
+ pair<const typename ranges::range_value_t<Range>::first_type,
30
  typename ranges::range_value_t<Range>::second_type>; // exposition only
31
  ```
32