2011-10-08 5 views
6

나는 섹션C++ 11 정규 표현식에 match_partial이 있습니까?

알고리즘의 regex_match와 n1429을 읽고 일반적으로 정규 표현식 라이브러리에서 볼 수없는 기능을 regex_search 공히 모두 지원합니다 부분 일치. 알고리즘에 전달 된 플래그에 플래그 std::regex_constants::match_partial을 설정하면 하나 이상의 문자가 일치하면 참 결과가 반환 될 수 있고 상태 머신은 문자 시퀀스의 끝 부분에 도달하고 상태는 여전히 일치 시키십시오. [...]

그러나 나는 현재의 gcc-4.7.0의 헤더 나 FCD에서 그 기능의 흔적을 발견 할 수 없습니다. 나는 또한 n1429의 개정판을 찾았지만 아무것도 찾지 못했습니다. 제안서의 기초가 Boost의 기원이며 TR1에 포함되었다는 것을 알고 있습니다. 하지만 언제 match_partial이 사라 졌는지 모르겠습니다.

부분 일치 기능이 C++ 11에 있습니까? 다른 이름일까요?

답변

8

그것은 match_partial 플래그가 N1507 "Errata to the Regular Expression Proposal"에 해상도 N1723 "Proposed Resolutions to Library TR Issues" (2004 10월)에서 제거되는 것 같습니다 다음 match_partial 플래그

제거 match_partial의

7.34의 의미.

LWG이이 유용하고 구현 가능한 기능입니다 점에 동의하지만, 우리는 반복적으로 을 시도하고 그것을 적절한 사양을 제공하는 데 실패했습니다 : N1837 "Library Extension Technical Report  Issues List"에 따라

근거는 점이다. 이 기능을 이후 버전에 추가하는 것이 가능할 것으로 기대합니다. .

C++ 11에는 대체가 없습니다. Boost.Regex (std::regex의 출처)는 여전히 partial match을 지원합니다.

+0

감사합니다. 나는 과감한 개정이 아닌 전체 N1429의 대체품을 찾았다. – towi

+1

나는 왜 내가 어울리지 못하는지를 알아 내려고 머리를 때렸다. 나는 이것이 모든 구현의 기본 동작이라고 생각했다. 고마워. – Kenneth

관련 문제