C++ 带自定义分离器的增压器

C++ 带自定义分离器的增压器,c++,boost-preprocessor,C++,Boost Preprocessor,Boost的预处理器库有一个整洁的宏Boost\u PP\u SEQ\u CAT,以便: #define MY_SEQUENCE (a)(b)(c) BOOST_PP_SEQ_CAT(MY_SEQUENCE) 变成: abc switch(x) { case 1: case 5: case 7: return true; } 在我对这个问题的回答()中,我给出了一个包含许多case子语句的switch语句作为解决方案,但遗憾的是无法通过预处理器宏或变量模板定义这样一

Boost的预处理器库有一个整洁的宏
Boost\u PP\u SEQ\u CAT
,以便:

#define MY_SEQUENCE (a)(b)(c)
BOOST_PP_SEQ_CAT(MY_SEQUENCE)
变成:

abc
switch(x) {
    case 1: case 5: case 7:
        return true;
}
在我对这个问题的回答()中,我给出了一个包含许多
case
子语句的
switch
语句作为解决方案,但遗憾的是无法通过预处理器宏或变量模板定义这样一个
switch

我做了更多的研究,发现
BOOST\u PP\u SEQ\u CAT
(定义如下:)最终在这里执行串联:

#define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b
是否可以通过修改此宏来允许宏化的
开关
语句

#define BOOST_PP_SEQ_CAT_O_I(ARG_A, ARG_B) case: # ARG_A ## ARG_B
e、 g

变成:

abc
switch(x) {
    case 1: case 5: case 7:
        return true;
}
问题是,我不能重新定义BOOST\u PP\u SEQ\u CAT,因为它是在BOOST自己的文件中定义的,修改它们似乎不是正确的解决方案。有没有一种方法可以定义我自己的
BOOST\u PP_SEQ\u CAT
,使用
大小写:
输出,而不用BOOST重新定义