BOOST_PP_LOCAL_ITERATE() (局部迭代) 源码分析

来源:互联网 发布:pcb绘图软件 编辑:程序博客网 时间:2024/05/17 01:30

该宏位于目录

文档说它的作用是:

该宏将用户自定义宏 BOOST_PP_LOCAL_MACROBOOST_PP_LOCAL_LIMITS

所指定的区间中的值垂直展开。

还给出了一个例子:

它将展开为:

上面的代码在VC2008不能通过编译,但是这只需要一点修改,上面的代码修改为:

BOOST_PP_LOCAL_MACRO宏和BOOST_PP_LOCAL_LIMITS宏都是用户自定定义代码。

其中BOOST_PP_LOCAL_LIMITS的定义后面需要一个空格(至少)。像上面的

#define BOOST_PP_LOCAL_LIMITS (1,5)。这意味着(1,5)并不是宏的参数,或是一个整体。

而BOOST_PP_LOCAL_LIMITS本身就代表 (1,5)

 

BOOST_PP_LOCAL_ITERATE宏代码定义如下:

local.hpp 的代码如下:

 上面的索引范围还可以倒着写:

如(3,9)写成(9,3)

其它剩下的代码也是倒着写:

其中BOOST_PP_LOCAL_R代码:

这就是BOOST_PP_LOCAL_ITERATE() 宏的功能。

原创粉丝点击