blob: 8bf98268c4932d1c947e37d3697a38b6d48cf9b6 [file] [log] [blame]
Howard Hinnant7026a172010-08-13 18:11:23 +00001//===----------------------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant7026a172010-08-13 18:11:23 +00007//
8//===----------------------------------------------------------------------===//
9
10// <regex>
11
12// template <class charT, class traits = regex_traits<charT>> class basic_regex;
13
14// basic_regex& assign(const basic_regex& that);
15
16#include <regex>
17#include <cassert>
18
19int main()
20{
21 std::regex r1("(a([bc]))");
22 std::regex r2;
23 r2.assign(r1);
24 assert(r2.flags() == std::regex::ECMAScript);
25 assert(r2.mark_count() == 2);
Marshall Clow083e0112015-01-13 16:49:52 +000026 assert(std::regex_search("ab", r2));
27
28 bool caught = false;
29 try { r2.assign("(def", std::regex::extended); }
30 catch(std::regex_error &) { caught = true; }
31 assert(caught);
32 assert(r2.flags() == std::regex::ECMAScript);
33 assert(r2.mark_count() == 2);
34 assert(std::regex_search("ab", r2));
Howard Hinnant7026a172010-08-13 18:11:23 +000035}