宏**BOOST_PP_ENUM_SHIFTED_z**代表对**BOOST_PP_ENUM_SHIFTED**重复构造的重新进入。

用法

**BOOST_PP_ENUM_SHIFTED_** ## z(count, macro, data)

参数

z
下一个可用的**BOOST_PP_REPEAT**维度。
count
macro的重复调用次数。有效值范围从0到**BOOST_PP_LIMIT_REPEAT**。
macro
形式为macro(z, n, data)的三元操作。此宏由**BOOST_PP_ENUM_SHIFTED**使用下一个可用的重复深度、当前重复编号和辅助data参数进行展开。
data
传递给macro的辅助数据。

备注

此宏展开为以下序列:
macro(z, 1, data), ... macro(z, count - 1, data)
有时,可能需要使用**BOOST_PP_CAT**而不是预处理器令牌粘贴运算符进行连接。当z值本身是宏调用时会发生这种情况。它需要延迟才能展开。在这种情况下,语法变为:
**BOOST_PP_CAT**(BOOST_PP_ENUM_SHIFTED_, z)(count, macro, data)。

另请参阅

需求

**头文件:** <boost/preprocessor/repetition/enum_shifted.hpp>

示例代码

#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/repetition/enum_shifted.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>

#define TEXT(z, n, text) text

#define MACRO(z, n, data) \
   ( \
      BOOST_PP_ENUM_SHIFTED_ ## z( \
         BOOST_PP_INC(n), \
         TEXT, data \
      ) \
   ) \
   /**/

BOOST_PP_REPEAT(3, MACRO, class) // expands to () (class) (class, class)

© 版权所有 Housemarque Oy 2002
© 版权所有 Paul Mensonides 2002

根据 Boost 软件许可证版本 1.0 分发。(参见随附文件 LICENSE_1_0.txt 或复制自 www.boost.org/LICENSE_1_0.txt