Iterating over boost::hana::tuple

boost, boost-hana, c++

Solution

`tuple_t` is for a tuple of `hana::type`s. You want a `tuple` of normal objects, which is just `tuple`:

boost::hana::tuple<A, B> names;
boost::hana::for_each(names, [&](const auto& x) {
    std::cout << x.name << std::endl;
});

Problem

I could not find a way to access real object with `hana::for_each` iterating over tuples. ``` struct A { std::string name; } struct B { std::string name; } using type_t = decltype(boost::hana::tuple_t<A, B>); type_t names; boost::hana::for_each(names, [&](const auto& a) { std::cout << a.name << std::endl; }); ``` Type of `a` appears to be `hana::tuple_impl<...>` and seems to be not-castable to its underlying type `decltype(std::decay_t<a>)::type`. I basically want to iterate over a list of templated objects (containers) that have the same interface but contain different values. Better ways to achieve this is welcome.

Original source