увеличить хана на две последовательности в карту

static constexpr auto type_tuple_c = hana::tuple_t<T...>;
static constexpr auto idx_tuple_c = hana::tuple_c<std::size_t, 0, sizeof...(T)>;

Я хотел бы сопоставить эти две последовательности одинаковых размеров друг с другом. Тем не менее, я не могу понять, как получить это с hana::map функции:

static constexpr auto type_idx_map_c = hana::unpack(
hana::zip_with(hana::make_pair, type_tuple_c, idx_tuple_c)
, hana::make_map
);

Независимо от того, какие преобразования я делаю, я не могу создать отображение. Я понимаю, что карта требует, чтобы ее элементы соответствовали концепции Продукта, но я не могу понять (или даже понять) такое поведение в отношении сжатых структур.

Что я могу сделать, или что я делаю неправильно?

Бег gcc version 6.0.0 20160320 а также hana version 0.7.0 последний раз был доставлен сегодня

5

Решение

Я хотел бы сопоставить эти две последовательности одинаковых размеров друг с другом.

Эти последовательности обычно не имеют одинаковых размеров. type_tuple_c имеет размер sizeof...(T), но idx_tuple_c имеет размер 2 — он содержит только элементы hana::size_c<0> а также hana::size_c<sizeof...(T)>,

Я думаю, что вы ищете, насколько далеко идут индексы std::make_index_sequence<sizeof...(T)>{}, Это должно все еще хорошо играть с Boost.Hana.

5

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

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