// Copyright 2015, 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 #include struct X1 {}; struct X2 {}; struct X3 {}; struct X4 {}; using boost::mp11::mp_not; using boost::mp11::mp_quote; template using add_pointer = T*; using Q_add_pointer = mp_quote; template using is_not_ref = mp_not>; using Q_is_not_ref = mp_quote; template using second = T2; using Q_second = mp_quote; template using third = T3; using Q_third = mp_quote; template using fourth = T4; using Q_fourth = mp_quote; template using fifth = T5; using Q_fifth = mp_quote; int main() { using boost::mp11::mp_list; using boost::mp11::mp_transform_if_q; using boost::mp11::mp_size_t; using boost::mp11::mp_size; using boost::mp11::mp_fill; using boost::mp11::mp_iota; using L1 = mp_list; BOOST_TEST_TRAIT_TRUE((std::is_same, mp_list>)); using L2 = std::tuple; BOOST_TEST_TRAIT_TRUE((std::is_same, std::tuple>)); using L3 = std::pair; BOOST_TEST_TRAIT_TRUE((std::is_same, std::pair>)); // BOOST_TEST_TRAIT_TRUE((std::is_same>, mp_list>)); BOOST_TEST_TRAIT_TRUE((std::is_same>, std::tuple>)); BOOST_TEST_TRAIT_TRUE((std::is_same>, std::pair>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, mp_list, X2&, mp_size_t<2>, X4 const&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, std::tuple, X2&, mp_size_t<2>, X4 const&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, std::pair, X2&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, mp_list, X2&, mp_size_t<2>, X4 const&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, std::tuple, X2&, mp_size_t<2>, X4 const&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, std::pair, X2&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, mp_list, X2&, mp_size_t<2>, X4 const&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, std::tuple, X2&, mp_size_t<2>, X4 const&>>)); BOOST_TEST_TRAIT_TRUE((std::is_same>>, std::pair, X2&>>)); // return boost::report_errors(); }