[Boost-users] Using boost (maybe mpl?) to generalize a switch statement to call different template functions