width.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 95 行
HPP
95 行
///////////////////////////////////////////////////////////////////////////////// width.hpp//// Copyright 2008 Eric Niebler. 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)#ifndef BOOST_XPRESSIVE_DETAIL_UTILITY_WIDTH_HPP_EAN_04_07_2006#define BOOST_XPRESSIVE_DETAIL_UTILITY_WIDTH_HPP_EAN_04_07_2006// MS compatible compilers support #pragma once#if defined(_MSC_VER) && (_MSC_VER >= 1020)# pragma once#endif#include <climits> // for INT_MAX#include <boost/mpl/size_t.hpp>namespace boost { namespace xpressive { namespace detail{typedef mpl::size_t<INT_MAX / 2 - 1> unknown_width;struct width;bool is_unknown(width const &that);///////////////////////////////////////////////////////////////////////////////// widthstruct width{ width(std::size_t value = 0) : value_(value) { } bool operator !() const { return !this->value_; } width &operator +=(width const &that) { this->value_ = !is_unknown(*this) && !is_unknown(that) ? this->value_ + that.value_ : unknown_width(); return *this; } width &operator |=(width const &that) { this->value_ = this->value_ == that.value_ ? this->value_ : unknown_width(); return *this; } std::size_t value() const { return this->value_; }private: std::size_t value_;};inline bool is_unknown(width const &that){ return unknown_width::value == that.value();}inline bool operator ==(width const &left, width const &right){ return left.value() == right.value();}inline bool operator !=(width const &left, width const &right){ return left.value() != right.value();}inline width operator +(width left, width const &right){ return left += right;}inline width operator |(width left, width const &right){ return left |= right;}}}} // namespace boost::xpressive::detail#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?