使用范围参数覆盖的 std::regex_search 无法编译 [重复]

Posted

技术标签:

【中文标题】使用范围参数覆盖的 std::regex_search 无法编译 [重复]【英文标题】:std::regex_search override with parameter of range doesn't compile [duplicate] 【发布时间】:2020-10-13 03:20:36 【问题描述】:

我想使用 std::regex_search 的覆盖,它可以分配目标字符串的偏移量(范围)。

template< class BidirIt,
          class CharT, class Traits >
bool regex_search( BidirIt first, BidirIt last,
                   const std::basic_regex<CharT,Traits>& e,
                   std::regex_constants::match_flag_type flags = 
                       std::regex_constants::match_default );

以下是我无法编译的代码。去掉 m 参数可以让它工作,但我可以这样检索匹配信息。

string s = "a**b cd e*f.";
size_t asteriskPos = s.find('*');
std::smatch m;
bool b = std::regex_search(s.begin()+asteriskPos , s.end(), m, std::regex("[^a-z*]"));
cout << b << endl;

【问题讨论】:

【参考方案1】:

我找到了这个C++: Why I can't pass a pair of iterators to regex_search?

auto iter = test.cbegin();
auto end = test.cend();

常量迭代器可以工作。

【讨论】:

以上是关于使用范围参数覆盖的 std::regex_search 无法编译 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 mongodb 地理位置查询中使用对象属性作为 $maxDistance 参数

多态性

c++中重载,重写,覆盖

请问重载overload,覆盖override,重写overwrite,这三者之间有啥区别呢?

LTE无线网络优化简介

如何使用一组重叠最小的范围覆盖一个范围?