// #include // or #include #include #include using namespace boost::xpressive; int main(int,char**) { int nec=0; std::map nec_map; nec_map["O"] = 1; nec_map["W"] = 2; sregex rx_res = *_s >> optional( ((a1 = nec_map ) >> ':')[ ref(nec) = a1 | 0 ] ); return 0; }