我想编写一个宏来生成一个向量,该向量的名称由名称+类型组成。因此,GEN_NAME_TYPE_MEMBER(int, Id)
应该生成vector<int> vec_Id_int
。 GEN_NAME_TYPE_MEMBER(std::string, FName)
应生成vector<int> vec_Id_string
。
以下宏几乎可以做到这一点,但是当有冒号时它将失败
#define GEN_NAME_TYPE_MEMBER(Name, Type)
std::vector<Type> vec_##Name_##Type;
初始解决方案
将Type
移到名称的开头
#define GEN_NAME_TYPE_MEMBER(Name, Type)
std::vector<Type> Type##_##Name_vec;
有没有办法在名称的末尾加上空格?