Comment déterminer le nombre d'éléments dans boost.Preprocessor Tuple?
-
27-09-2019 - |
Question
Comment déterminer les éléments qui comptent boost.preprocessor Tuple?
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