Я просто не могу получить функцию regex_match
для поиска совпадений без учета регистра. Несмотря на то, boost::xpressive::regex_constants::icase
является defined и я использую бросок (так что нет никакой двусмысленности в icase
метода Xpressive), я получаю ошибку компиляции (VS2010):Нечувствительность к регистру с Boost Xpressive
ошибка C2440: «приведение типа»: не удается преобразовать из 'Const подталкивание :: Xpressive :: подробнее :: modifier_op' к 'повышение :: 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;
}
вы знаете, в чем проблема возможно?
спасибо, что работает для меня! – muffel
Справа. И в будущем послушайте, что компилятор вам говорит. Тот факт, что вам нужно было приложить флаг 'icase' к' match_flag_type' для его компиляции, должен был дать вам указание, что вы делаете что-то неправильно. Затем прочитайте документы. :-) –