xref: /llvm-project/libcxx/test/std/re/re.traits/default.pass.cpp (revision f4c1258d5633fcf06385ff3fd1f4bf57ab971964)
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 Bastien int 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