From Jason Turner

[associative.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpbw2vljmc/{from.md → to.md} +13 -4
tmp/tmpbw2vljmc/{from.md → to.md} RENAMED
@@ -10,15 +10,24 @@ guides for associative containers:
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
- typename iterator_traits<InputIterator>::value_type::first_type>; // exposition only
16
  template<class InputIterator>
17
  using iter-mapped-type =
18
- typename iterator_traits<InputIterator>::value_type::second_type; // exposition only
19
  template<class InputIterator>
20
  using iter-to-alloc-type = pair<
21
- add_const_t<typename iterator_traits<InputIterator>::value_type::first_type>,
22
- typename iterator_traits<InputIterator>::value_type::second_type>; // exposition only
 
 
 
 
 
 
 
 
 
23
  ```
24
 
 
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