Увеличить размер хана типа кортежа

Я знаю, как я могу получить размер объекта кортежа в boost::hana как это:

auto tupleSize = hana::size(hana::make_tuple(1,2,3))

Но как насчет размера типа кортежа? Stl уже предоставляет следующую черту типа кортежа:

constexpr size_t tupleSize = std::tuple_size<std::tuple<int, int, int>>::value;

Есть ли подобная черта в хане?

2

Решение

Здесь ничего нет. Я предполагаю, что вы злоупотребляете Ханой здесь, или что есть эквивалентный способ сделать то, что вы пытаетесь достичь, без необходимости звонить size по типу кортежа. Но я не могу знать наверняка, не увидев остальную часть вашего кода, так что возьмите это с крошкой соли.

То, как вы могли бы обойти отсутствие tuple_sizeметафункция declval, Вы могли бы написать:

constexpr size_t tupleSize = decltype(
hana::size(std::declval<hana::tuple<T...>>())
)::value;

Обратите внимание, что в зависимости от контекста, в котором вы должны вызывать это, может быть даже возможно использовать sizeof...(T) если у вас есть эта информация.

2

Другие решения

Других решений пока нет …