https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100823
Bug ID: 100823
Summary: Special member functions of common_iterator should be
conditionally trivial
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
At least as a QoI matter, the special member functions of common_iterator<I, S>
should be trivial when the corresponding special member function of variant<I,
S> is. Given that the standard depicts a variant<I, S> exposition-only member
with implicitly declared special member functions, it is arguable that this is
actually required.
There appears to be a couple other conformance issues too:
- the move special members are missing
- the copy assignment calls the converting assignment operator, but unlike the
latter, there's no !valueless_by_exception() precondition on the (implicitly
declared) copy assignment.