Having to roll your own version of default arguments likewise seems like a code smell.