Question

Comment déterminer les éléments qui comptent boost.preprocessor Tuple?

Était-ce utile?

La solution

Boost 1.49 a déjà boost_pp_tuple_size macro

Autres conseils

Vous ne le faites pas. C'est pourquoi chaque macro qui utilise des tuples vous oblige à spécifier la taille du tuple. Vous pouvez essayer de faire quelque chose basé sur un tuple de 2 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 le connaître ou de le stocker dans un tuple de taille connue ou dans une liste, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top