重复生成宏
Repeat generation of macro
本文关键字:复生 更新时间:2023-10-16
我想生成以下预处理器杂注
#pragma blabla column("0030")
#pragma blabla column("0130")
#pragma blabla column("0230")
...
#pragma blabla column("2330")
小时从0变为23
BOOST_PP_LOCAL_LIMITS
/ITERATE
可能吗?
是的。
#include <boost/preprocessor/repeat.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/comparison/greater.hpp>
#define blabla(z, n, data)
_Pragma(BOOST_PP_STRINGIZE(
blabla column(
BOOST_PP_STRINGIZE(
BOOST_PP_CAT(
BOOST_PP_CAT(
BOOST_PP_IF(
BOOST_PP_GREATER(n, 9),
,
0
),
n
),
30
)
)
)
))
BOOST_PP_REPEAT(24, blabla, ~)
_Pragma
将我们保存在那里,因为没有办法生成像#pragma
这样的预处理器指令,但它对接受的内容非常挑剔。特别是,它不进行字符串连接,因此_Pragma("some" "thing")
不起作用,我们必须连接令牌land中的所有内容,然后字符串化作为最后一步。
相关文章:
- 没有找到相关文章