c++ gen