Comment déterminer les éléments comptent dans boost.preprocessor tuple`s?Comment déterminer les éléments comptent dans boost.preprocessor tuple`s?
0
A
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.