// Copyright Louis Dionne 2013-2016 // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) #include #include #include #include #include namespace hana = boost::hana; auto add = [](auto a, auto b, auto c) { return a + b + c; }; int main() { std::tuple tuple{1, 2l, 3.3}; auto sum = hana::unpack(std::integer_sequence{}, [&](auto ...i) { // the `i`s are `std::integral_constant`s return add(std::get(tuple)...); }); BOOST_HANA_RUNTIME_CHECK(sum == 6.3); }