0

regex_match大文字と小文字を区別しない一致を見つける関数を取得できません。が定義されboost::xpressive::regex_constants::icaseていて、キャストを使用していても (Xpressive のメソッドにあいまいさはありません)、コンパイル エラーが発生します (VS2010):icase

エラー 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;
}

問題が何であるか知っていますか?

4

1 に答える 1

2

使ってみて

boost::xpressive::sregex re = boost::xpressive::sregex_compiler().
compile("foo", boost::xpressive::icase);

syntax_options_type(つまりboost::xpressive::regex_constants::icase_) ではありませんmatch_flag_type( の 3 つの引数regex_matchはこの型でなければなりません)。

于 2013-07-26T09:48:10.367 に答える