max_element.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 73 行

HPP
73
字号
#ifndef BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED#define BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED// Copyright Aleksey Gurtovoy 2000-2004//// 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)//// See http://www.boost.org/libs/mpl for documentation.// $Source: /CVSROOT/CGAL/Packages/Boost/include/boost/mpl/max_element.hpp,v $// $Date: 2004/11/20 10:39:22 $// $Revision: 1.1.1.2 $#include <boost/mpl/less.hpp>#include <boost/mpl/iter_fold.hpp>#include <boost/mpl/begin_end.hpp>#include <boost/mpl/if.hpp>#include <boost/mpl/deref.hpp>#include <boost/mpl/apply.hpp>#include <boost/mpl/aux_/common_name_wknd.hpp>#include <boost/mpl/aux_/na_spec.hpp>namespace boost { namespace mpl {BOOST_MPL_AUX_COMMON_NAME_WKND(max_element)namespace aux {template< typename Predicate >struct select_max{    template< typename OldIterator, typename Iterator >    struct apply    {        typedef typename apply2<              Predicate            , typename deref<OldIterator>::type            , typename deref<Iterator>::type            >::type condition_;        typedef typename if_<              condition_            , Iterator            , OldIterator            >::type type;    };};} // namespace aux template<      typename BOOST_MPL_AUX_NA_PARAM(Sequence)    , typename Predicate = less<_,_>    >struct max_element    : iter_fold<          Sequence        , typename begin<Sequence>::type        , protect< aux::select_max<Predicate> >        >{};BOOST_MPL_AUX_NA_SPEC(1, max_element)}}#endif // BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?