Spaceship-operator: why the data-members must be public / triggers ICE
Jonathan Wakely
jwakely.gcc@gmail.com
Wed Nov 13 10:35:00 GMT 2019
On Wed, 13 Nov 2019 at 09:24, Klaus Doldinger
<klaus.doldinger64@gmail.com> wrote:
>
> Hi all,
>
> in the follwing example
>
> #include <compare> // omitting trigger ICE
>
> template<auto V>
> struct A {};
>
> struct B {
> inline constexpr auto operator<=>(const B& rhs) const = default;
> private:
> int value; // why must this member be public?
> };
>
> int main() {
> A<B{}> t;
> }
>
> why must the member value be public?
Looks like a bug, please report it to bugzilla.
> Side note: if I omit #include <compare> it triggers an ICE.
And please report that to bugzilla too, as a second bug.
More information about the Gcc-help
mailing list