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 № 1boost::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>...)
.