// Copyright 2016, 2017 Peter Dimov. // // Distributed under the Boost Software License, Version 1.0. // // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt #include #include #include #include #include #include #include using boost::mp11::mp_int; struct Q_inc { template using fn = mp_int; }; int main() { using boost::mp11::mp_map_update_q; using boost::mp11::mp_list; using M1 = mp_list<>; using M2 = mp_map_update_q>, Q_inc>; BOOST_TEST_TRAIT_TRUE((std::is_same>>>)); using M3 = mp_map_update_q>, Q_inc>; BOOST_TEST_TRAIT_TRUE((std::is_same>>>)); using M4 = mp_map_update_q>, Q_inc>; BOOST_TEST_TRAIT_TRUE((std::is_same>, std::pair>>>)); using M5 = mp_map_update_q>, Q_inc>; BOOST_TEST_TRAIT_TRUE((std::is_same>, std::pair>, std::pair>>>)); using M6 = mp_map_update_q>, Q_inc>; BOOST_TEST_TRAIT_TRUE((std::is_same>, std::pair>, std::pair>>>)); using M7 = mp_map_update_q>, Q_inc>; BOOST_TEST_TRAIT_TRUE((std::is_same>, std::pair>, std::pair>>>)); return boost::report_errors(); }