constexpr common_iterator(I i);
Effects:
Initializes
v_Â as if by
v_Â{in_Âplace_Âtype<I>, std​::​move(i)}. constexpr common_iterator(S s);
Effects:
Initializes
v_Â as if by
v_Â{in_Âplace_Âtype<S>, std​::​move(s)}. template<class I2, class S2>
requires convertible_Âto<const I2&, I> && convertible_Âto<const S2&, S>
constexpr common_iterator(const common_iterator<I2, S2>& x);
Preconditions:
x.v_Â.valueless_Âby_Âexception() is
false. Effects:
Initializes
v_Â as if by
v_Â{in_Âplace_Âindex<i>, get<i>(x.v_Â)},
where
i is
x.v_Â.index(). template<class I2, class S2>
requires convertible_Âto<const I2&, I> && convertible_Âto<const S2&, S> &&
assignable_Âfrom<I&, const I2&> && assignable_Âfrom<S&, const S2&>
common_iterator& operator=(const common_iterator<I2, S2>& x);
Preconditions:
x.v_Â.valueless_Âby_Âexception() is
false. Effects:
Equivalent to:
- If v_Â.index() == x.v_Â.index(), then
get<i>(v_Â) = get<i>(x.v_Â).
- Otherwise, v_Â.emplace<i>(get<i>(x.v_Â)).
where
i is
x.v_Â.index().