Как определить количество элементов в Boost.preprocessor Tuple`s?

StackOverflow https://stackoverflow.com/questions/3842181

  •  27-09-2019
  •  | 
  •  

Вопрос

Как определить счет элементов в Boost.Preprocessor. Tuple`s?

Это было полезно?

Решение

Boost 1.49 уже имеет BOOST_PP_TUPLE_SIZE MACRO

Другие советы

Вы не делаете. Вот почему каждый макрос, который использует кортежи, требует, чтобы вы укажете размер кортежа. Вы можете попробовать сделать что-то на основе 2 кортеж, где первое значение - это размер второго:

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

К сожалению, нет никакого способа определить размер кортеля, кроме того, чтобы знать его или хранить его в известном числе кортеж или в списке и т. Д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top