https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79671

--- Comment #67 from Michael Matz <matz at gcc dot gnu.org> ---
(In reply to Jason Merrill from comment #66)
> The operator semantics described in clause 5 [expr] apply to the built-in
> operators, not any overloaded operators.  Assignment of classes is always
> done by way of an assignment operator function, even if it happens to be
> trivial and therefore open-coded as a block copy, so the above doesn't apply
> to classes.

I think that's at least slippery.  If none of 5.18 would apply to class types
at all there would be no need for 5.18/3 (if non-class type) 5.18/4 (if
class-type) 5.18/5 (class objects are special), or 5.18/9.2 (braced-inits for
class objects).  So if /2 would have been conditional on "non-class type" as
well, like /3, it wouldn't matter, but so ...

(This is of course only a side-track, I used clause 5 merely because like you
I have difficulties to find a real definition of what constitutes an access
to the value of an object :) )

Reply via email to