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 + -
显示快捷键?