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
。