【发布时间】:2010-10-01 18:51:50
【问题描述】:
如何确定boost.preprocessor tuple`s 中的元素数量?
【问题讨论】:
标签: c++ boost boost-preprocessor
如何确定boost.preprocessor tuple`s 中的元素数量?
【问题讨论】:
标签: c++ boost boost-preprocessor
Boost 1.49 已经有 BOOST_PP_TUPLE_SIZE 宏
【讨论】:
你没有。这就是为什么每个使用元组的宏都要求您指定元组的大小。您可以尝试基于 2 元组做一些事情,其中第一个值是第二个的大小:
#define MyTuple (2,(a,tuple))
#define MyTupleSize( S_ ) BOOST_PP_TUPLE_ELEM( 2, 0, S_ )
#define GetMyTuple( S_, I_ ) BOOST_PP_TUPLE_ELEM( MyTupleSize(S_), I_, BOOST_PP_TUPLE_ELEM(2, 1, S_ ) )
MyTupleSize( MyTuple ) // this is '2'
GetMyTuple( MyTuple, 1 )// this is 'tuple'
不幸的是,除了知道元组或将其存储在已知大小的元组或列表等中之外,没有其他方法可以确定元组的大小。
【讨论】: