simple C++ struct generator as more compile-time efficient replacement of boost::fusion::tuple