如何在宏中用冒号连接参数?

时间:2019-04-26 16:52:39

标签: c++ c++11 macros

我想编写一个宏来生成一个向量,该向量的名称由名称+类型组成。因此,GEN_NAME_TYPE_MEMBER(int, Id)应该生成vector<int> vec_Id_intGEN_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;

有没有办法在名称的末尾加上空格?

0 个答案:

没有答案