// Copyright Louis Dionne 2013-2017 // 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 #include #include #include #include #include #include namespace hana = boost::hana; // Basic usage: static_assert( hana::zip_with(hana::mult, hana::make_tuple(1, 2, 3, 4), hana::make_tuple(5, 6, 7, 8)) == hana::make_tuple(5, 12, 21, 32) , ""); // Example of computing a tuple of all the common types of several tuples: template using common_tuple_t = typename decltype( hana::unpack( hana::zip_with( hana::metafunction, hana::transform(std::declval(), hana::decltype_)... ), hana::template_ ) )::type; static_assert(std::is_same< common_tuple_t< std::tuple, std::tuple, std::tuple >, std::tuple >::value, ""); int main() { }