On Wed, 13 Nov 2019 at 09:24, Klaus Doldinger <klaus.doldinger64@xxxxxxxxx> 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.