Я знаю, как я могу получить размер объекта кортежа в 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;
Есть ли подобная черта в хане?
Здесь ничего нет. Я предполагаю, что вы злоупотребляете Ханой здесь, или что есть эквивалентный способ сделать то, что вы пытаетесь достичь, без необходимости звонить size
по типу кортежа. Но я не могу знать наверняка, не увидев остальную часть вашего кода, так что возьмите это с крошкой соли.
То, как вы могли бы обойти отсутствие tuple_size
метафункция declval
, Вы могли бы написать:
constexpr size_t tupleSize = decltype(
hana::size(std::declval<hana::tuple<T...>>())
)::value;
Обратите внимание, что в зависимости от контекста, в котором вы должны вызывать это, может быть даже возможно использовать sizeof...(T)
если у вас есть эта информация.
Других решений пока нет …