Hmm, IMO Badge has two main advantages over your approach:
1. Aesthetics. (This is down to personal taste of course, but I much prefer how Badge gets the job done without needing multiple lines of code at every declaration.)
2. What if I need to put the function implementation out-of-line?
my c++ skills are a bit rusty, because most of the time python works just fine.