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-exception
6//
7//===----------------------------------------------------------------------===//
8
9// REQUIRES: locale.en_US.UTF-8
10
11// <locale>
12
13// basic_string<char> name() const;
14
15#include <locale>
16#include <cassert>
17
18#include "test_macros.h"
19#include "platform_support.h" // locale name macros
20
21int main(int, char**)
22{
23 std::locale cloc;
24 std::locale copy(cloc);
25 std::locale n1(LOCALE_en_US_UTF_8);
26 std::locale n2(LOCALE_en_US_UTF_8);
27 std::locale noname1 = n1.combine<std::ctype<char> >(cloc);
28 std::locale nonamec = noname1;
29 std::locale noname2 = n1.combine<std::ctype<char> >(cloc);
30
31 assert(cloc == cloc);
32 assert(cloc == copy);
33 assert(cloc != n1);
34 assert(cloc != n2);
35 assert(cloc != noname1);
36 assert(cloc != nonamec);
37 assert(cloc != noname2);
38
39 assert(copy == cloc);
40 assert(copy == copy);
41 assert(copy != n1);
42 assert(copy != n2);
43 assert(copy != noname1);
44 assert(copy != nonamec);
45 assert(copy != noname2);
46
47 assert(n1 != cloc);
48 assert(n1 != copy);
49 assert(n1 == n1);
50 assert(n1 == n2);
51 assert(n1 != noname1);
52 assert(n1 != nonamec);
53 assert(n1 != noname2);
54
55 assert(n2 != cloc);
56 assert(n2 != copy);
57 assert(n2 == n1);
58 assert(n2 == n2);
59 assert(n2 != noname1);
60 assert(n2 != nonamec);
61 assert(n2 != noname2);
62
63 assert(noname1 != cloc);
64 assert(noname1 != copy);
65 assert(noname1 != n1);
66 assert(noname1 != n2);
67 assert(noname1 == noname1);
68 assert(noname1 == nonamec);
69 assert(noname1 != noname2);
70
71 assert(nonamec != cloc);
72 assert(nonamec != copy);
73 assert(nonamec != n1);
74 assert(nonamec != n2);
75 assert(nonamec == noname1);
76 assert(nonamec == nonamec);
77 assert(nonamec != noname2);
78
79 assert(noname2 != cloc);
80 assert(noname2 != copy);
81 assert(noname2 != n1);
82 assert(noname2 != n2);
83 assert(noname2 != noname1);
84 assert(noname2 != nonamec);
85 assert(noname2 == noname2);
86
87 return 0;
88}
89

source code of libcxx/test/std/localization/locales/locale/locale.operators/eq.pass.cpp