blob: 438cd75452bbba62ebc9666cf617d98550ad7fc2 [file] [log] [blame]
Howard Hinnant3257c982010-06-17 00:34:59 +00001// -*- C++ -*-
Howard Hinnant0ce02242010-09-28 17:19:10 +00002//===----------------------------------------------------------------------===//
Howard Hinnant3257c982010-06-17 00:34:59 +00003//
4// The LLVM Compiler Infrastructure
5//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00006// This file is dual licensed under the MIT and the University of Illinois Open
7// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3257c982010-06-17 00:34:59 +00008//
9//===----------------------------------------------------------------------===//
10
Dan Albertb4ed5ca2014-08-04 18:44:48 +000011// REQUIRES: locale.cs_CZ.ISO8859-2
12
Howard Hinnant3257c982010-06-17 00:34:59 +000013// <regex>
14
15// template <class charT> struct regex_traits;
16
17// template <class ForwardIterator>
18// string_type
19// transform_primary(ForwardIterator first, ForwardIterator last) const;
20
Howard Hinnant3257c982010-06-17 00:34:59 +000021#include <regex>
22#include <cassert>
Marshall Clow6dfff1c2016-04-26 16:24:44 +000023#include "test_iterators.h"
Dan Albert1d4a1ed2016-05-25 22:36:09 -070024
Ed Schouteneda3fca2015-03-16 15:09:15 +000025#include "platform_support.h" // locale name macros
26
Howard Hinnant3257c982010-06-17 00:34:59 +000027int main()
28{
29 {
30 std::regex_traits<char> t;
31 const char A[] = "A";
32 const char Aacute[] = "\xC1";
33 typedef forward_iterator<const char*> F;
Howard Hinnantbbd80862010-08-22 00:45:01 +000034 assert(t.transform_primary(F(A), F(A+1)) !=
Howard Hinnant3257c982010-06-17 00:34:59 +000035 t.transform_primary(F(Aacute), F(Aacute+1)));
Ed Schouteneda3fca2015-03-16 15:09:15 +000036 t.imbue(std::locale(LOCALE_cs_CZ_ISO8859_2));
Howard Hinnant3257c982010-06-17 00:34:59 +000037 assert(t.transform_primary(F(A), F(A+1)) ==
38 t.transform_primary(F(Aacute), F(Aacute+1)));
39 }
40 {
41 std::regex_traits<wchar_t> t;
42 const wchar_t A[] = L"A";
43 const wchar_t Aacute[] = L"\xC1";
44 typedef forward_iterator<const wchar_t*> F;
45 assert(t.transform_primary(F(A), F(A+1)) !=
46 t.transform_primary(F(Aacute), F(Aacute+1)));
Ed Schouteneda3fca2015-03-16 15:09:15 +000047 t.imbue(std::locale(LOCALE_cs_CZ_ISO8859_2));
Howard Hinnant3257c982010-06-17 00:34:59 +000048 assert(t.transform_primary(F(A), F(A+1)) ==
49 t.transform_primary(F(Aacute), F(Aacute+1)));
50 }
51}