This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/64680] New: basic_regex::operator= does not reset flags
- From: "kariya_mitsuru at hotmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 20 Jan 2015 02:53:05 +0000
- Subject: [Bug libstdc++/64680] New: basic_regex::operator= does not reset flags
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64680
Bug ID: 64680
Summary: basic_regex::operator= does not reset flags
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: kariya_mitsuru at hotmail dot com
Created attachment 34491
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34491&action=edit
g++ -v
The sample code below should not throw a regex_error.
========================= sample code =========================
#include <regex>
int main()
{
std::regex re("[[:alnum:]]", std::regex_constants::basic);
re = "\\w+";
}
===============================================================
cf. http://melpon.org/wandbox/permlink/lrD2Ia4urIPVgakK
According to the C++11 standard 28.8.3[re.regex.assign], operator=(const charT*
ptr) is equivalent to assign(ptr), and assign(ptr) calls assign(const char*
ptr, flag_type f = regex_constants::ECMAScript).
Since "\\w+" is a valid ECMAScript syntax, the sample code above should end
normally.