15a83710eSEric Fiselier //===----------------------------------------------------------------------===// 25a83710eSEric Fiselier // 357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65a83710eSEric Fiselier // 75a83710eSEric Fiselier //===----------------------------------------------------------------------===// 85a83710eSEric Fiselier 961c115f3SDaniel Sanders // REQUIRES: locale.en_US.UTF-8 1061c115f3SDaniel Sanders 115a83710eSEric Fiselier // <regex> 125a83710eSEric Fiselier 135a83710eSEric Fiselier // template <class charT> struct regex_traits; 145a83710eSEric Fiselier 155a83710eSEric Fiselier // regex_traits(); 165a83710eSEric Fiselier 175a83710eSEric Fiselier #include <regex> 185a83710eSEric Fiselier #include <cassert> 195a83710eSEric Fiselier 20fd5ceb22SMarshall Clow #include "test_macros.h" 215a83710eSEric Fiselier #include "platform_support.h" // locale name macros 225a83710eSEric Fiselier main(int,char **)232df59c50SJF Bastienint main(int, char**) 245a83710eSEric Fiselier { 255a83710eSEric Fiselier { 26*f4c1258dSLouis Dionne std::regex_traits<char> t; 27*f4c1258dSLouis Dionne assert(t.getloc().name() == "C"); 285a83710eSEric Fiselier } 29*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS 30*f4c1258dSLouis Dionne { 31*f4c1258dSLouis Dionne std::regex_traits<wchar_t> t; 32*f4c1258dSLouis Dionne assert(t.getloc().name() == "C"); 33*f4c1258dSLouis Dionne } 34*f4c1258dSLouis Dionne #endif 355a83710eSEric Fiselier { 365a83710eSEric Fiselier std::locale::global(std::locale(LOCALE_en_US_UTF_8)); 37*f4c1258dSLouis Dionne std::regex_traits<char> t; 38*f4c1258dSLouis Dionne assert(t.getloc().name() == LOCALE_en_US_UTF_8); 395a83710eSEric Fiselier } 40*f4c1258dSLouis Dionne #ifndef TEST_HAS_NO_WIDE_CHARACTERS 41*f4c1258dSLouis Dionne { 42*f4c1258dSLouis Dionne std::locale::global(std::locale(LOCALE_en_US_UTF_8)); 43*f4c1258dSLouis Dionne std::regex_traits<wchar_t> t; 44*f4c1258dSLouis Dionne assert(t.getloc().name() == LOCALE_en_US_UTF_8); 45*f4c1258dSLouis Dionne } 46*f4c1258dSLouis Dionne #endif 472df59c50SJF Bastien 482df59c50SJF Bastien return 0; 495a83710eSEric Fiselier } 50