Xpressive>> =运算符

时间:2011-02-10 22:57:33

标签: c++ boost boost-xpressive

我正忙着使用Boost Xpressive并且遇到以下代码片段的麻烦

#include <iostream>
#include <string>
#include <boost/xpressive/xpressive.hpp>

using namespace std;
using namespace boost::xpressive;

int main()
{
    string s("123");
    sregex rex = _d;
    rex >>= _d;

    smatch what;

    regex_search(s, what, rex);

    cout << "Match: " << what[0] << endl;

    return 0;
 }

运行此程序的结果是1与预期12的匹配。 sregex::operator>>=是否具有不同的含义/使用我直观假设的内容?我希望这会产生与sregex类似的_d >> _d

1 个答案:

答案 0 :(得分:1)

Xpressive不支持&gt;&gt; =运算符。这段代码完全编译的事实可能被认为是一个错误。尝试:

rex = rex >> _d;

然而,像这样建立正则表达式会使正则表达式表现不佳。