boost 中 cat.hpp 学习笔记
文章地址
引入
Linux 需要 install 一下 libboost-dev 这个库,macOS 没有测,Windows 日常不在考虑范围内。
BOOST_PP_CAT 宏包含于 boost/preprocessor/cat.hpp 中。
用法
BOOST_PP_CAT(a, b)
这个宏会将 a 和 b 从文本上连接在一起形成 ab。
例子
#include <bits/stdc++.h>
#include <boost/preprocessor/cat.hpp>
#define MY_CAT(a, b) a##b
#define c1 BOOST_PP_CAT(a, b)
#define c2 MY_CAT(a, b)
int main() {
int ab = 512, a1 = 1024;
#define b 1
printf("%d\n", c1);
printf("%d\n", c2);
return 0;
}输出结果为:
1024
512行为分析
最原始的字符连接仅仅是对于填入括号中的字符本身进行连接,而 BOOST_PP_CAT 会先进行宏转译然后再进行连接。
如有不对烦请指正。