brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · c580ab9 Raw
40 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <regex>10 11// template <class charT, class traits = regex_traits<charT>> class basic_regex;12 13// basic_regex& assign(const basic_regex& that);14 15#include <regex>16#include <cassert>17#include "test_macros.h"18 19int main(int, char**)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);26    assert(std::regex_search("ab", r2));27 28#ifndef TEST_HAS_NO_EXCEPTIONS29    bool caught = false;30    try { r2.assign("(def", std::regex::extended); }31    catch(std::regex_error &) { caught = true; }32    assert(caught);33    assert(r2.flags() == std::regex::ECMAScript);34    assert(r2.mark_count() == 2);35    assert(std::regex_search("ab", r2));36#endif37 38  return 0;39}40