#ifndef BOOST_MP11_DETAIL_MP_MIN_ELEMENT_HPP_INCLUDED #define BOOST_MP11_DETAIL_MP_MIN_ELEMENT_HPP_INCLUDED // 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 namespace boost { namespace mp11 { // mp_min_element namespace detail { template class P> struct select_min { template using fn = mp_if, T1, T2>; }; } // namespace detail template class P> using mp_min_element = mp_fold_q, mp_first, detail::select_min

>; template using mp_min_element_q = mp_min_element; // mp_max_element namespace detail { template class P> struct select_max { template using fn = mp_if, T1, T2>; }; } // namespace detail template class P> using mp_max_element = mp_fold_q, mp_first, detail::select_max

>; template using mp_max_element_q = mp_max_element; } // namespace mp11 } // namespace boost #endif // #ifndef BOOST_MP11_DETAIL_MP_MIN_ELEMENT_HPP_INCLUDED