Why special-case 0 rather than using C++ default parameters?