Spaceship-operator: why the data-members must be public / triggers ICE

Klaus Doldinger klaus.doldinger64@gmail.com
Wed Nov 13 11:43:00 GMT 2019



Am 13.11.19 um 11:35 schrieb Jonathan Wakely:
> 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.

Done.

> 
>> Side note: if I omit #include <compare> it triggers an ICE.
> 
> And please report that to bugzilla too, as a second bug.
> 

Done.



More information about the Gcc-help mailing list