iterator in std::tuple code example
Example 1: iterator on std::tuple
#include <tuple>
#include <iostream>
int main()
{
std::tuple t{42, 'a', 4.2};
std::apply([](auto&&... args) {((std::cout << args << '\n'), ...);}, t);
}
Example 2: iterator on std::tuple
{
auto tup = std::make_tuple(0, 'a', 3.14);
template for (auto elem : tup)
std::cout << elem << std::endl;
}
Example 3: iterator on std::tuple
#include <tuple>
#include <iostream>
#include <boost/hana.hpp>
#include <boost/hana/ext/std/tuple.hpp>
struct Foo1 {
int foo() const { return 42; }
};
struct Foo2 {
int bar = 0;
int foo() { bar = 24; return bar; }
};
int main() {
using namespace std;
using boost::hana::for_each;
Foo1 foo1;
Foo2 foo2;
for_each(tie(foo1, foo2), [](auto &foo) {
cout << foo.foo() << endl;
});
cout << "foo2.bar after mutation: " << foo2.bar << endl;
}