This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.
3604. What is the effect of an invalid value of typesyntax_option_type
?
Section: 28.6.7.2 [re.regex.construct], 28.6.4.2 [re.synopt] Status: New Submitter: Jonathan Wakely Opened: 2021-09-27 Last modified: 2021-10-14
Priority: 3
View other active issues in [re.regex.construct].
View all other issues in [re.regex.construct].
View all issues with New status.
Discussion:
28.6.4.2 [re.synopt] says:
A valid value of type
syntax_option_type
shall have at most one of the grammar elementsECMAScript
,basic
,extended
,awk
,grep
,egrep
, set.
But then we never say what happens if an invalid value is used.
What doesstd::regex(".", std::regex::grep|std::regex::awk)
do? Is it undefined? Does it throw? It seems reasonable for basic_regex
constructors to throw if f
is not a valid value, i.e. for each non-default constructor:
Throws:
regex_error
iff
is not a valid value, or if […] is not a valid regular expression according to the grammar specified byf
.
However, there is no regex_constants::error_code
value suitable for this error condition.
flags()
returns f
." This prevents an implementation from storing f|ECMAScript
in flags()
if no grammar element is present in f
. This seems like an unnecessary restriction, and forces implementations to do extra work to check if the ECMAScript
grammar is in use. Arguably, it would even be better to require implementations to set ECMAScript
in flags()
if no grammar element was set in the flags passed to the constructor. This problem was introduced by LWG 2330(i).
[2021-10-14; Reflector poll]
Set priority to 3 after reflector poll.
Proposed resolution:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4