https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118393
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Summary|GCC does not allow calling |GCC does not allow calling |of overloaded private type |of overloaded private |conversion operator in |implicit type conversion |default argument field of |operator in default |friend function |argument field of friend | |function Ever confirmed|0 |1 Last reconfirmed| |2025-01-10 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. If the cast is explicit either using C style casts or a static_cast, it works. That is: void friend_set(int i=static_cast<int>(X())){} works.