0

boost.preprocessor tuple`sの要素数を決定する方法は?

4

2 に答える 2

2

Boost1.49にはすでにBOOST_PP_TUPLE_SIZEマクロがあります

于 2012-04-11T11:53:45.640 に答える
2

あなたはそうしない。そのため、タプルを使用するすべてのマクロで、タプルのサイズを指定する必要があります。最初の値が 2 番目の値である 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'

残念ながら、タプルのサイズを知るか、既知のサイズのタプルやリストなどに格納する以外に、タプルのサイズを決定する方法はありません。

于 2010-10-04T12:20:25.157 に答える