2010-10-01 18 views

Répondre

2

Boost 1.49 a déjà la macro BOOST_PP_TUPLE_SIZE

2

Ce n'est pas le cas. C'est pourquoi chaque macro qui utilise des tuples nécessite de spécifier la taille du tuple. Vous pouvez essayer de faire quelque chose basé sur un 2 tuple où la première valeur est la taille de la seconde:

#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' 

Malheureusement, il n'y a aucun moyen de déterminer la taille d'un tuple autre que de savoir ou stocker dans un tuple de taille connu ou dans une liste etc.