Problem. Suppose for one object you overload '""'. With his solution you've also overloaded 'bool' and '0+' in the way the user of the code probably expects. With your solution all of those implicit overloads have to be spelled out. Or else you've got to build all of the dispatch logic that is already built into overload.