|
11 | 11 |
|
12 | 12 | namespace beman::any_view::detail { |
13 | 13 |
|
14 | | -template <class IterConceptT, |
15 | | - class ElementT, |
| 14 | +template <class ElementT, |
16 | 15 | class RefT, |
17 | 16 | class RValueRefT, |
18 | 17 | class DiffT, |
19 | 18 | std::input_or_output_iterator IteratorT, |
20 | 19 | std::sentinel_for<IteratorT> SentinelT> |
21 | | -class iterator_adaptor : public iterator_interface<IterConceptT, ElementT, RefT, RValueRefT, DiffT> { |
| 20 | +class iterator_adaptor : public iterator_interface<ElementT, RefT, RValueRefT, DiffT> { |
22 | 21 | [[no_unique_address]] IteratorT iterator; |
23 | 22 | [[no_unique_address]] SentinelT sentinel; |
24 | 23 |
|
25 | | - using iterator_interface = detail::iterator_interface<IterConceptT, ElementT, RefT, RValueRefT, DiffT>; |
| 24 | + using iterator_interface = detail::iterator_interface<ElementT, RefT, RValueRefT, DiffT>; |
26 | 25 | using pointer = std::add_pointer_t<RefT>; |
27 | 26 |
|
28 | 27 | static constexpr auto get_noexcept() { |
29 | 28 | return std::is_nothrow_move_constructible_v<IteratorT> and std::is_nothrow_move_constructible_v<SentinelT>; |
30 | 29 | } |
31 | 30 |
|
32 | | - static constexpr bool forward = std::derived_from<IterConceptT, std::forward_iterator_tag>; |
33 | | - static constexpr bool bidirectional = std::derived_from<IterConceptT, std::bidirectional_iterator_tag>; |
34 | | - static constexpr bool random_access = std::derived_from<IterConceptT, std::random_access_iterator_tag>; |
35 | | - static constexpr bool contiguous = std::derived_from<IterConceptT, std::contiguous_iterator_tag>; |
| 31 | + static constexpr bool forward = std::forward_iterator<IteratorT>; |
| 32 | + static constexpr bool bidirectional = std::bidirectional_iterator<IteratorT>; |
| 33 | + static constexpr bool random_access = std::random_access_iterator<IteratorT>; |
| 34 | + static constexpr bool contiguous = std::contiguous_iterator<IteratorT>; |
36 | 35 |
|
37 | 36 | static constexpr auto down_cast(const iterator_interface& other) { |
38 | 37 | return dynamic_cast<const iterator_adaptor*>(std::addressof(other)); |
|
0 commit comments