]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 28_regex / algorithms / regex_replace / wchar_t / pr83601.cc
CommitLineData
8532713f
TS
1// { dg-do run { target c++11 } }
2
a5544970 3// Copyright (C) 2018-2019 Free Software Foundation, Inc.
8532713f
TS
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15//
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING3. If not see
18// <http://www.gnu.org/licenses/>.
19//
20
21#include <regex>
22#include <testsuite_hooks.h>
23
24// libstdc++/83601
25void frep(const wchar_t *istr, const wchar_t *rstr, const wchar_t *ostr) {
26 std::basic_regex<wchar_t> wrgx(L"(a*)(b+)");
27 std::basic_string<wchar_t> wstr = istr, wret = ostr, test;
28 std::regex_replace(std::back_inserter(test), wstr.begin(), wstr.end(),
29 wrgx, std::basic_string<wchar_t>(rstr),
30 std::regex_constants::format_sed);
31 VERIFY(test == wret);
32}
33
34int main() {
35 frep(L"xbbyabz", L"!\\\\2!", L"x!\\2!y!\\2!z");
36 frep(L"xbbyabz", L"!\\\\0!", L"x!\\0!y!\\0!z");
37 frep(L"xbbyabz", L"!\\&!", L"x!&!y!&!z");
38 return 0;
39}