如何确定元素计数 BOOST.PREPROCESOR 元组?

有帮助吗?

解决方案

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'

不幸的是,除了知道或将其存储在已知尺寸的元组或列表等中以外,没有其他方法可以确定元组的大小。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top