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.

Reply via email to