如何为连接字符串生成可变宏
How can i generate variadic macro for concatenate string
我被困在这里了
#define CONCAT(a,b) BOOST_PP_STRINGIZE(BOOST_PP_CAT(a,b))
#define CONCAT1(a,b,c) CONCAT(CONCAT(a,b),c) and so on.
即使有20个参数,我如何生成CONCAT宏?也许我可以使用BOOST_PP_SEQ_FOR_EACH,但我不知道该怎么做?
这取决于您的用例。
这个
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#define SEQ (a)(b)(c)
BOOST_PP_STRINGIZE(BOOST_PP_SEQ_CAT(SEQ)) // "abc"
将连接序列,然后将其字符串化。也可以简单地将每个参数字符串化,因为"a" "b" "c"
等效于"abc"
。
#define MY_STRINGIZE(r, data, elem) BOOST_PP_STRINGIZE(elem)
BOOST_PP_SEQ_FOR_EACH(MY_STRINGIZE, _, SEQ)
由于您已经在使用Boost库,请尝试BOOST_PP_SEQ_CAT
(文档)。它采用元素列表,并简单地将它们连接在一起,即BOOST_PP_SEQ_CAT(a b c)
得到CCD_ 5。
相关文章:
- 使用短运算符的字符串连接有区别吗?
- 字符串连接时间复杂度 c++
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 如何在 C 宏中将变量字符串与文字字符串连接起来?
- C++中干净高效的字符串连接
- 如何将 Unicode 字符串连接成字符串以传递到 mysql 调用中
- 如何与字符串连接thar数组
- 如何将平台^字符串转换为wstring,然后与L字符串连接
- 如何在c++中进行快速字符串连接
- 在C++中,相当于CPython字符串连接
- 如何在 c++ 中使用 STL 将带有空格的字符串连接成一个字符串
- C++将三个char*字符串连接在一起
- 尝试通过二叉树中的递归返回字符串(连接)
- 使用流的字符串连接返回垃圾
- 将字符串变量与整数和文本字符串连接起来的 C++ 字符串流
- 将 int 变量与字符串连接会导致奇怪的输出
- C++ 将常量字符 * 与字符串连接起来,仅打印常量字符 *
- 通过将模板参数与字符串连接起来生成C++类型名
- 将我的对象与字符串连接
- 没有得到预期的结果字符串连接