2010-10-01 32 views

回答

2

Boost 1.49已經具有BOOST_PP_TUPLE_SIZE宏

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' 

不幸的是沒有辦法確定除了知道它或將它保存在一個元組的大小已知大小的元組或在列表中等

相關問題