3.1 KiB
[common.iter.const]
24 Iterators library [iterators]
24.5 Iterator adaptors [predef.iterators]
24.5.5 Common iterators [iterators.common]
24.5.5.3 Constructors and conversions [common.iter.const]
constexpr common_iterator(I i);
Effects: Initializes v_ as if by v_{in_place_type, std::move(i)}.
constexpr common_iterator(S s);
Effects: Initializes v_ as if byv_{in_place_type, std::move(s)}.
template<class I2, class S2> requires [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_to [concept.convertible]")<const I2&, I> && [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_to [concept.convertible]")<const S2&, S> constexpr common_iterator(const common_iterator<I2, S2>& x);
Hardened preconditions: x.v_.valueless_by_exception() is false.
Effects: Initializes v_ as if byv_{in_place_index, get(x.v_)}, where i is x.v_.index().
template<class I2, class S2> requires [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_to [concept.convertible]")<const I2&, I> && [convertible_to](concept.convertible#concept:convertible_to "18.4.4 Concept convertible_to [concept.convertible]")<const S2&, S> && [assignable_from](concept.assignable#concept:assignable_from "18.4.8 Concept assignable_from [concept.assignable]")<I&, const I2&> && [assignable_from](concept.assignable#concept:assignable_from "18.4.8 Concept assignable_from [concept.assignable]")<S&, const S2&> constexpr common_iterator& operator=(const common_iterator<I2, S2>& x);
Hardened preconditions: x.v_.valueless_by_exception() is false.
Effects: Equivalent to:
where i is x.v_.index().
Returns: *this.