Opened 6 years ago
#12870 new Bugs
bugs?: xpressive: xp::skip(xp::_s) does not work
| Reported by: | Owned by: | Eric Niebler | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | xpressive |
| Version: | Boost 1.63.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
If you execute the following code, "[ 4]" will be output, but right output is supposed to be "[4]".
Source Code
#include <iostream>
#include <boost/xpressive/xpressive.hpp>
using namespace std;
namespace xp = boost::xpressive;
int main()
{
xp::sregex rule2 = xp::skip(xp::_s)('(' >> (xp::s1= *xp::_d) >> ')');
xp::sregex rule1 = xp::skip(xp::_s)(rule2);
xp::smatch match1;
if (!xp::regex_match(string("( 4 )"), match1, rule1)) {
cout << "syntax error" << endl;
} else {
auto&& match2 = *match1.nested_results().begin();
string text = match2[1];
cout << "[" << text << "]" << endl;
}
return 0;
}
Compilation Environment
- [OS] centos 6.8
- [Compiler] g++ v4.9.3
- [Command Line] g++ -std=c++11 a.cpp
- [Libs] boost-1.63.0
Thanks for Boost.Xpressive!
Note:
See TracTickets
for help on using tickets.
