This stuff is a bit heavyweight to use. Any chance that the whole: getAllCommands, getCommandInfo, perform could be wrapped into some nice C++11 lambda single function call, something like:
Yep, that's the ultimate direction for all that kind of stuff.. Haven't got time to do it right now, but looking forward to being able to experiment with that at some point!
Subtitled "Why don't you design it, type it in, make it compatible with five target platforms, and a vintage compiler from 2005 and then test it yourself you lazy sod" :)