chset_operators.ipp
来自「CGAL is a collaborative effort of severa」· IPP 代码 · 共 663 行 · 第 1/2 页
IPP
663 行
template <typename CharT, typename ParserT>inline chset<CharT>operator&(negated_char_parser<ParserT> const& a, chset<CharT> const& b){ return chset<CharT>(a) & b;}//////////////////////////////////template <typename CharT, typename ParserT>inline chset<CharT>operator-(negated_char_parser<ParserT> const& a, chset<CharT> const& b){ return chset<CharT>(a) - b;}//////////////////////////////////template <typename CharT, typename ParserT>inline chset<CharT>operator^(negated_char_parser<ParserT> const& a, chset<CharT> const& b){ return chset<CharT>(a) ^ b;}#else // BOOST_WORKAROUND(BOOST_MSVC, < 1300)/////////////////////////////////////////////////////////////////////////////////// negated_char_parser<range> <--> chset free operators implementation/////////////////////////////////////////////////////////////////////////////////template <typename CharT>inline chset<CharT>operator|(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b){ return a | chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b){ return a & chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b){ return a - chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(chset<CharT> const& a, negated_char_parser<range<CharT> > const& b){ return a ^ chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator|(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) | b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) & b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) - b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(negated_char_parser<range<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) ^ b;}/////////////////////////////////////////////////////////////////////////////////// negated_char_parser<chlit> <--> chset free operators implementation/////////////////////////////////////////////////////////////////////////////////template <typename CharT>inline chset<CharT>operator|(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b){ return a | chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b){ return a & chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b){ return a - chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(chset<CharT> const& a, negated_char_parser<chlit<CharT> > const& b){ return a ^ chset<CharT>(b);}//////////////////////////////////template <typename CharT>inline chset<CharT>operator|(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) | b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) & b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) - b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(negated_char_parser<chlit<CharT> > const& a, chset<CharT> const& b){ return chset<CharT>(a) ^ b;}#endif // BOOST_WORKAROUND(BOOST_MSVC, < 1300)/////////////////////////////////////////////////////////////////////////////////// anychar_parser <--> chset free operators//// Where a is chset and b is a anychar_parser, and vice-versa, implements://// a | b, a & b, a - b, a ^ b/////////////////////////////////////////////////////////////////////////////////namespace impl { template <typename CharT> inline boost::spirit::range<CharT> const& full() { static boost::spirit::range<CharT> full_( (std::numeric_limits<CharT>::min)(), (std::numeric_limits<CharT>::max)()); return full_; } template <typename CharT> inline boost::spirit::range<CharT> const& empty() { static boost::spirit::range<CharT> empty_; return empty_; }}//////////////////////////////////template <typename CharT>inline chset<CharT>operator|(chset<CharT> const&, anychar_parser){ return chset<CharT>(impl::full<CharT>());}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(chset<CharT> const& a, anychar_parser){ return a;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(chset<CharT> const&, anychar_parser){ return chset<CharT>();}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(chset<CharT> const& a, anychar_parser){ return ~a;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator|(anychar_parser, chset<CharT> const& /*b*/){ return chset<CharT>(impl::full<CharT>());}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(anychar_parser, chset<CharT> const& b){ return b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(anychar_parser, chset<CharT> const& b){ return ~b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(anychar_parser, chset<CharT> const& b){ return ~b;}/////////////////////////////////////////////////////////////////////////////////// nothing_parser <--> chset free operators implementation/////////////////////////////////////////////////////////////////////////////////template <typename CharT>inline chset<CharT>operator|(chset<CharT> const& a, nothing_parser){ return a;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(chset<CharT> const& /*a*/, nothing_parser){ return impl::empty<CharT>();}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(chset<CharT> const& a, nothing_parser){ return a;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(chset<CharT> const& a, nothing_parser){ return a;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator|(nothing_parser, chset<CharT> const& b){ return b;}//////////////////////////////////template <typename CharT>inline chset<CharT>operator&(nothing_parser, chset<CharT> const& /*b*/){ return impl::empty<CharT>();}//////////////////////////////////template <typename CharT>inline chset<CharT>operator-(nothing_parser, chset<CharT> const& /*b*/){ return impl::empty<CharT>();}//////////////////////////////////template <typename CharT>inline chset<CharT>operator^(nothing_parser, chset<CharT> const& b){ return b;}///////////////////////////////////////////////////////////////////////////////}} // namespace boost::spirit#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?