https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107343
--- Comment #1 from Jason Liam <jlame646 at gmail dot com> --- The complete quote at the end of my original post is as follows: > For a member function of a non-template class, the default arguments are > allowed on the out-of-class definition, and are combined with the default > arguments provided by the declaration inside the class body. If these > out-of-class defaults would turn a member function into a default constructor > or copy/move (since C++11) constructor/assignment operator, the program is > ill-formed.