Index: libcxx/include/regex =================================================================== --- libcxx/include/regex +++ libcxx/include/regex @@ -169,15 +169,15 @@ // assign: basic_regex& assign(const basic_regex& that); basic_regex& assign(basic_regex&& that) noexcept; - basic_regex& assign(const charT* ptr, flag_type f = regex_constants::ECMAScript); - basic_regex& assign(const charT* p, size_t len, flag_type f); + basic_regex& assign(const charT* ptr, flag_type f = regex_constants::ECMAScript); + basic_regex& assign(const charT* p, size_t len, flag_type f = regex_constants::ECMAScript); template basic_regex& assign(const basic_string& s, - flag_type f = regex_constants::ECMAScript); + flag_type f = regex_constants::ECMAScript); template basic_regex& assign(InputIterator first, InputIterator last, - flag_type f = regex_constants::ECMAScript); - basic_regex& assign(initializer_list, flag_type = regex_constants::ECMAScript); + flag_type f = regex_constants::ECMAScript); + basic_regex& assign(initializer_list, flag_type = regex_constants::ECMAScript); // const operations: unsigned mark_count() const; @@ -2617,7 +2617,7 @@ basic_regex& assign(const value_type* __p, flag_type __f = regex_constants::ECMAScript) {return assign(__p, __p + __traits_.length(__p), __f);} _LIBCPP_INLINE_VISIBILITY - basic_regex& assign(const value_type* __p, size_t __len, flag_type __f) + basic_regex& assign(const value_type* __p, size_t __len, flag_type __f = regex_constants::ECMAScript) {return assign(__p, __p + __len, __f);} template _LIBCPP_INLINE_VISIBILITY Index: libcxx/test/std/re/re.regex/re.regex.assign/assign_ptr_size_flag.pass.cpp =================================================================== --- libcxx/test/std/re/re.regex/re.regex.assign/assign_ptr_size_flag.pass.cpp +++ libcxx/test/std/re/re.regex/re.regex.assign/assign_ptr_size_flag.pass.cpp @@ -18,6 +18,16 @@ int main(int, char**) { + std::regex r0; + r0.assign("(a([bc]))", 9); + assert(r0.flags() == std::regex::ECMAScript); + assert(r0.mark_count() == 2); + + std::regex r1; + r1.assign("(a([bc]))", 9, std::regex::ECMAScript); + assert(r1.flags() == std::regex::ECMAScript); + assert(r1.mark_count() == 2); + std::regex r2; r2.assign("(a([bc]))", 9, std::regex::extended); assert(r2.flags() == std::regex::extended);