Default arguments on redeclaration of member function of class templates are rejected in GCC 4.9+ The default argument must appear when the member function is first declared. https://gcc.gnu.org/gcc-4.9/porting_to.html