modify
add cplusplus_gen()