/ / Zwiększ mpl :: vector i hana - c ++, metaprogramming, boost-mpl, boost-hana

Zwiększ mpl :: vector i hana - c ++, metaprogramming, boost-mpl, boost-hana

Szukam jakiegoś wektora meta / powiązanegolista. Wygląda na to, że mpl :: vector jest najlepszym sposobem na zrobienie tego. Ale teraz jest hana. Niestety nie mogę znaleźć jakiegoś hana :: vector, widziałem adapter dla mpl :: vector, który jest wszystkim. Więc to znaczy, że mpl :: vector nadal jest najlepszym sposobem robienia rzeczy?

Hana była dość szybka do skompilowania, więc pomyślałem: no cóż, dlaczego nie? Ale mpl nie jest tak szybki, czy naprawdę muszę samemu zakodować mpl :: vector?

Odpowiedzi:

3 dla odpowiedzi № 1

boost::hana::tuple powinien być wystarczająco dobrym zamiennikiem mpl::vector jeśli potrzebna jest niejednorodna "lista" typów / wartości.

Możesz uzyskać dostęp do elementu w określonym indeksie za pomocą boost::hana::at, dodaj elementy za pomocą boost::hana::append, usuń je przy pomocy boost::hana::remove i wiele więcej.

Nawet jeśli nie ma 1-do-1 korespondencji do mpl::vector"s interfejs, powinno być trywialne do realizacji niektórych funkcji użyteczności, biorąc pod uwagę prymitywów wymienionych powyżej.


Jeśli potrzebujesz listy typów, powinieneś użyć boost::hana::tuple_t, który jest cukrem syntaktycznym dla hana::tuple(hana::type_c<Types>...).