/ / Boost mpl :: vektor a hana - c ++, metaprogramovanie, boost-mpl, boost-hana

Boost mpl :: vektor a hana - c ++, metaprogramovanie, boost-mpl, boost-hana

Hľadám nejaký meta vektor / prepojenýZoznam. Zdá sa, že mpl :: vektor bol najlepší spôsob, ako to urobiť. Ale teraz je tu hana. Bohužiaľ nemôžem nájsť nejaký vektor hana :: Videl som adaptér pre mpl :: vector, ktorý je všetko. Takže "mpl :: vector je stále najlepší spôsob, ako robiť veci?

Hana bola celkom rýchla na zostavenie, takže som bol ako: dobre, prečo nie? Ale mpl nie je tak rýchle, musím skutočne kódovať mpl :: vector sám?

odpovede:

3 pre odpoveď č. 1

boost::hana::tuple by mala byť dobrá náhrada za mpl::vector ak potrebujete, je heterogénny "zoznam" typov / hodnôt.

Môžete pristupovať k položke v konkrétnom indexe pomocou boost::hana::at, pridať položky s boost::hana::append, odstráňte ich boost::hana::remove a oveľa viac.

Dokonca aj vtedy, ak nie je k dispozícii 1-to-1 korešpondencia mpl::vector"s rozhraním, malo by to byť triviálne implementovať niektoré úžitkové funkcie vzhľadom na vyššie uvedené primitívne prvky.


Ak potrebujete zoznam typov, mali by ste použiť boost::hana::tuple_t, čo je syntaktický cukor pre hana::tuple(hana::type_c<Types>...).