std::regex_iterator<BidirIt,CharT,Traits>:: regex_iterator
|
regex_iterator
(
)
;
|
(1) | (C++11부터) |
|
regex_iterator
(
BidirIt a, BidirIt b,
const
regex_type
&
re,
|
(2) | (C++11부터) |
|
regex_iterator
(
const
regex_iterator
&
)
;
|
(3) | (C++11부터) |
|
regex_iterator
(
BidirIt, BidirIt,
const
regex_type
&&
,
|
(4) | (C++11부터) |
새로운
regex_iterator
를 생성합니다:
[
a
,
b
)
, 정규 표현식
re
, 그리고 매칭 동작을 제어하는 플래그
m
로부터
regex_iterator
를 생성합니다. 이 생성자는 이 데이터로
std::regex_search
에 대한 초기 호출을 수행합니다. 이 초기 호출의 결과가
false
인 경우,
*
this
는 시퀀스 종료 반복자로 설정됩니다.
regex_iterator
를 복사합니다.
매개변수
| a | - | LegacyBidirectionalIterator 대상 문자 시퀀스의 시작을 가리키는 반복자 |
| b | - | LegacyBidirectionalIterator 대상 문자 시퀀스의 끝을 가리키는 반복자 |
| re | - | 대상 문자 시퀀스 검색에 사용되는 정규 표현식 |
| m | - | re 의 동작을 제어하는 플래그 |
예제
#include <iostream> #include <regex> #include <string_view> int main() { constexpr std::string_view str{R"( #ONE: *p = &Mass; #Two: MOV %rd, 42 )"}; const std::regex re("[a-w]"); // regex_iterator 생성, 오버로드 (2) auto it = std::regex_iterator<std::string_view::iterator> { str.cbegin(), str.cend(), re // re는 lvalue; 만약 즉시 실행 표현식이 사용되었다면 // 예를 들어 std::regex{"[a-z]"}인 경우, // 오버로드 (4)가 삭제되었기 때문에 오류가 발생함 }; for (decltype(it) last /* 오버로드 (1) */; it != last; ++it) std::cout << (*it).str(); std::cout << '\n'; }
출력:
password
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2332 | C++11 |
임시
basic_regex
로부터 생성된
regex_iterator
는
즉시 무효화됨 |
삭제된 오버로드를 통해 해당 생성이 허용되지 않음 |