Pregunta

Cómo determinar los elementos cuentan en BOOST.PROCROCESOR Tuple '

¿Fue útil?

Solución

Boost 1.49 ya tiene boost_pp_tuple_size macro

Otros consejos

No lo haces. Es por eso que cada macro que usa tuplas requiere que especifique el tamaño de la tupla. Puede intentar hacer algo basado en una tupla de 2 donde el primer valor es el tamaño del segundo:

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

Desafortunadamente, no hay forma de determinar el tamaño de una tupla que no sea conocerla o almacenarla en una tupla de tamaño conocida o en una lista, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top