欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

comparison_adaptor.hpp

Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
HPP
字号:
// Boost.Bimap//// Copyright (c) 2006-2007 Matias Capeletto//// 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)/// \file container_adaptor/detail/comparison_adaptor.hpp/// \brief Comparison adaptor.#ifndef BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_COMPARISON_ADAPTOR_HPP#define BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_COMPARISON_ADAPTOR_HPP#if defined(_MSC_VER) && (_MSC_VER>=1200)#pragma once#endif#include <boost/config.hpp>#include <boost/call_traits.hpp>#include <functional>namespace boost {namespace bimaps {namespace container_adaptor {namespace detail {/// \brief Comparison adaptor/**A simple comparison adaptor.                                                                                    **/template < class Compare, class NewType, class Converter >struct comparison_adaptor : std::binary_function<NewType,NewType,bool>{    comparison_adaptor( const Compare & comp, const Converter & conv)        : compare(comp), converter(conv) {}    bool operator()( BOOST_DEDUCED_TYPENAME call_traits<NewType>::param_type x,                     BOOST_DEDUCED_TYPENAME call_traits<NewType>::param_type y) const    {        return compare( converter(x), converter(y) );    }    private:    Compare     compare;    Converter   converter;};template < class Compare, class NewType, class Converter >struct compatible_comparison_adaptor : std::binary_function<NewType,NewType,bool>{    compatible_comparison_adaptor( const Compare & comp, const Converter & conv)        : compare(comp), converter(conv) {}    template< class CompatibleTypeLeft, class CompatibleTypeRight >    bool operator()( const CompatibleTypeLeft  & x,                     const CompatibleTypeRight & y) const    {        return compare( converter(x), converter(y) );    }    private:    Compare     compare;    Converter   converter;};/// \brief Unary Check adaptor/**A simple unary check adaptor.                                                                                    **/template < class Compare, class NewType, class Converter >struct unary_check_adaptor : std::unary_function<NewType,bool>{    unary_check_adaptor( const Compare & comp, const Converter & conv ) :        compare(comp), converter(conv) {}    bool operator()( BOOST_DEDUCED_TYPENAME call_traits<NewType>::param_type x) const    {        return compare( converter(x) );    }    private:    Compare   compare;    Converter converter;};} // namespace detail} // namespace container_adaptor} // namespace bimaps} // namespace boost#endif // BOOST_BIMAP_CONTAINER_ADAPTOR_DETAIL_COMPARISON_ADAPTOR_HPP

⌨️ 快捷键说明

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