From Jason Turner

[common.iter.types]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp06txdkim/{from.md → to.md} +10 -6
tmp/tmp06txdkim/{from.md → to.md} RENAMED
@@ -1,15 +1,19 @@
1
  #### Associated types <a id="common.iter.types">[[common.iter.types]]</a>
2
 
3
- The nested *typedef-name*s of the specialization of `iterator_traits`
4
- for `common_iterator<I, S>` are defined as follows.
 
 
 
 
 
 
 
 
5
 
6
  - `iterator_concept` denotes `forward_iterator_tag` if `I` models
7
  `forward_iterator`; otherwise it denotes `input_iterator_tag`.
8
- - `iterator_category` denotes `forward_iterator_tag` if the
9
- *qualified-id* `iterator_traits<I>::iterator_category` is valid and
10
- denotes a type that models `derived_from<forward_iterator_tag>`;
11
- otherwise it denotes `input_iterator_tag`.
12
  - Let `a` denote an lvalue of type `const common_iterator<I, S>`. If the
13
  expression `a.operator->()` is well-formed, then `pointer` denotes
14
  `decltype(a.operator->())`. Otherwise, `pointer` denotes `void`.
15
 
 
1
  #### Associated types <a id="common.iter.types">[[common.iter.types]]</a>
2
 
3
+ The nested *typedef-name* `iterator_category` of the specialization of
4
+ `iterator_traits` for `common_iterator<I, S>` is defined if and only if
5
+ `iter_difference_t<I>` is an integral type. In that case,
6
+ `iterator_category` denotes `forward_iterator_tag` if the *qualified-id*
7
+ `iterator_traits<I>::iterator_category` is valid and denotes a type that
8
+ models `derived_from<forward_iterator_tag>`; otherwise it denotes
9
+ `input_iterator_tag`.
10
+
11
+ The remaining nested *typedef-name*s of the specialization of
12
+ `iterator_traits` for `common_iterator<I, S>` are defined as follows:
13
 
14
  - `iterator_concept` denotes `forward_iterator_tag` if `I` models
15
  `forward_iterator`; otherwise it denotes `input_iterator_tag`.
 
 
 
 
16
  - Let `a` denote an lvalue of type `const common_iterator<I, S>`. If the
17
  expression `a.operator->()` is well-formed, then `pointer` denotes
18
  `decltype(a.operator->())`. Otherwise, `pointer` denotes `void`.
19