📄 compare_pointees.hpp
字号:
// Copyright (C) 2003, Fernando Luis Cacciola Carballal.//// Use, modification, and distribution is subject to 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/lib/optional for documentation.//// You are welcome to contact the author at:// fernando_cacciola@hotmail.com//#ifndef BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP#define BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP#include<functional>namespace boost {// template<class OP> bool equal_pointees(OP const& x, OP const& y);// template<class OP> struct equal_pointees_t;//// Being OP a model of OptionalPointee (either a pointer or an optional)://// If both x and y have valid pointees, returns the result of (*x == *y)// If only one has a valid pointee, returns false.// If none have valid pointees, returns true.// No-throwtemplate<class OptionalPointee>inlinebool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y ){ return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;}template<class OptionalPointee>struct equal_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>{ bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const { return equal_pointees(x,y) ; }} ;// template<class OP> bool less_pointees(OP const& x, OP const& y);// template<class OP> struct less_pointees_t;//// Being OP a model of OptionalPointee (either a pointer or an optional)://// If y has not a valid pointee, returns false.// ElseIf x has not a valid pointee, returns true.// ElseIf both x and y have valid pointees, returns the result of (*x < *y)// No-throwtemplate<class OptionalPointee>inlinebool less_pointees ( OptionalPointee const& x, OptionalPointee const& y ){ return !y ? false : ( !x ? true : (*x) < (*y) ) ;}template<class OptionalPointee>struct less_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>{ bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const { return less_pointees(x,y) ; }} ;} // namespace boost#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -