/ / Boost mpl :: vector et hana - c ++, métaprogrammation, boost-mpl, boost-hana

Boost mpl :: vecteur et hana - c ++, métaprogrammation, boost-mpl, boost-hana

Je "cherche un type de méta vecteur / liéliste. On dirait que mpl :: vector était la meilleure façon de le faire. Mais maintenant, il y a hana. Malheureusement, je ne peux pas trouver une sorte de hana :: vector. J'ai vu un adaptateur pour mpl :: vector qui est tout. Donc, le moyen mpl :: vector est toujours la meilleure façon de faire les choses?

Hana a été assez rapide pour compiler alors j'étais comme: bien pourquoi pas? Mais mpl n'est pas si rapide, dois-je vraiment coder mpl :: vector moi-même?

Réponses:

3 pour la réponse № 1

boost::hana::tuple devrait être un bon remplacement pour mpl::vector si ce dont vous avez besoin est une "liste" hétérogène de types / valeurs.

Vous pouvez accéder à un élément dans un index particulier avec boost::hana::at, ajouter des articles avec boost::hana::append, les enlever avec boost::hana::remove et beaucoup plus.

Même s'il n'y a pas de correspondance de 1 à 1 avec mpl::vector"L'interface, il devrait être trivial d'implémenter certaines fonctions utilitaires compte tenu des primitives mentionnées ci-dessus.


Si vous avez besoin d’une liste de types, vous devez utiliser boost::hana::tuple_t, qui est le sucre syntaxique pour hana::tuple(hana::type_c<Types>...).