我只是无法获得regex_match
查找不区分大小写匹配项的功能。即使boost::xpressive::regex_constants::icase
已定义icase
并且我使用了强制转换(因此Xpressive的方法没有歧义),我得到一个编译错误(VS2010):
错误 C2440:“类型转换”:无法从“const boost::xpressive::detail::modifier_op”转换为“boost::xpressive::regex_constants::match_flag_type”
一些要重现的代码:
#include <stdio.h>
#include <boost/xpressive/xpressive.hpp>
int main(){
std::string str("FOO");
boost::xpressive::sregex re = boost::xpressive::sregex_compiler().compile("foo");
bool result = regex_match(str,re,(boost::xpressive::regex_constants::match_flag_type)boost::xpressive::regex_constants::icase);
if(result){
std::cout << "Match!";
}else{
std::cout << "No match!";
}
return 0;
}
你知道问题可能是什么吗?