blob: 988d5551ad52792c648f50f6a12779ae757317a7 [file] [log] [blame]
Howard Hinnant5cd66582010-08-13 18:11:23 +00001//===----------------------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
Howard Hinnant412dbeb2010-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 Hinnant5cd66582010-08-13 18:11:23 +00007//
8//===----------------------------------------------------------------------===//
9
Asiri Rathnayakef520c142015-11-10 11:41:22 +000010// XFAIL: libcpp-no-exceptions
Howard Hinnant5cd66582010-08-13 18:11:23 +000011// <regex>
12
13// template <class charT, class traits = regex_traits<charT>> class basic_regex;
14
15// basic_regex& assign(const basic_regex& that);
16
17#include <regex>
18#include <cassert>
Marshall Clowfd5ceb22016-04-26 16:24:44 +000019#include "test_macros.h"
Howard Hinnant5cd66582010-08-13 18:11:23 +000020
21int main()
22{
23 std::regex r1("(a([bc]))");
24 std::regex r2;
25 r2.assign(r1);
26 assert(r2.flags() == std::regex::ECMAScript);
27 assert(r2.mark_count() == 2);
Marshall Clow9db90692015-01-13 16:49:52 +000028 assert(std::regex_search("ab", r2));
29
30 bool caught = false;
31 try { r2.assign("(def", std::regex::extended); }
32 catch(std::regex_error &) { caught = true; }
33 assert(caught);
34 assert(r2.flags() == std::regex::ECMAScript);
35 assert(r2.mark_count() == 2);
36 assert(std::regex_search("ab", r2));
Howard Hinnant5cd66582010-08-13 18:11:23 +000037}