C++11 allows default values for function template parameters. This provides a new way to control function template overloads via SFINAE. The syntax is somewhat finicky, but can be simplified using alias templates and/or macros. The resulting syntax is nicer than either of the C++98 mechanisms for controlling overloads. We should provide some utilities for that purpose.