https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64842
Ville Voutilainen <ville.voutilainen at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |ville.voutilainen at gmail dot com Resolution|--- |INVALID --- Comment #1 from Ville Voutilainen <ville.voutilainen at gmail dot com> --- The constructors for Point are constexpr, but since p2 is not, passing it as an argument for scale() means that the invocation of scale() will not yield a constant expression. If you change the declaration of p2 to be constexpr Point p2 {10,10}; the code will work. Clang agrees with gcc.