在C++ 11的預決定草稿中,基於範圍的for循環可以指定要通過一對迭代器迭代的範圍。這使得遍歷正則表達式的所有匹配變得很容易。使用一對迭代器指定範圍的能力後來被刪除,並且它不存在於C++ 11中。對於特定的正則表達式,是否仍然有一種直接的方法來迭代所有匹配項?我希望能夠做到這樣的事情:基於範圍的for循環正則表達式匹配?
std::regex begin(" 1?2?3?4* ");
std::regex end;
for(auto& match: std::pair(begin, end)) process(*match);
在C++ 11中是否支持這種類型的東西?
我會在make_range()中爲end = T()設置一個默認值。這樣istream_iterator-s,實際上正則表達式迭代器可以使用單個arg創建。這是一個相當常見的成語。 – cristicbz