https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94061
Tibor Billes <gcc-90 at tbilles dot hu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gcc-90 at tbilles dot hu --- Comment #5 from Tibor Billes <gcc-90 at tbilles dot hu> --- I ran into this problem, I found a detailed stackoverflow discussion that explains that the standard mandate the derived to base conversion mentioned earlier in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94061#c2 It says that the list of subobjects are "formed by a sequence of derived-to-base conversions, class member access expressions, and array subscript expressions applied to x". (https://timsong-cpp.github.io/cppwp/n4868/class.compare.default#6.sentence-3) I'm not a C++ language lawyer, just wanted to provide additional information for anyone looking for this problem. And yeah, I also wish this would work.. Here is the stackoverflow discussion with all the good references to the specific sections of the standard: https://stackoverflow.com/questions/73055625/deriving-class-with-protected-equality-operator-results-in-deleted-default