Domanda

Come determinare il conteggio degli elementi in boost.preprocessor Tuple?

È stato utile?

Soluzione

Boost 1.49 ha già boost_pp_tuple_size macro

Altri suggerimenti

Non lo fai. Ecco perché ogni macro che utilizza Tules richiede di specificare le dimensioni della tupla. Potresti provare a fare qualcosa in base a una tupla 2 in cui il primo valore ha la dimensione del secondo:

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

Sfortunatamente non c'è modo di determinare le dimensioni di una tupla oltre a conoscerla o memorizzarlo in una tupla di dimensioni conosciute o in un elenco ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top