1 //===----------------------------------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
9 // REQUIRES: locale.en_US.UTF-8
13 // basic_string<char> name() const;
18 #include "test_macros.h"
19 #include "platform_support.h" // locale name macros
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
);
35 assert(cloc
!= noname1
);
36 assert(cloc
!= nonamec
);
37 assert(cloc
!= noname2
);
43 assert(copy
!= noname1
);
44 assert(copy
!= nonamec
);
45 assert(copy
!= noname2
);
51 assert(n1
!= noname1
);
52 assert(n1
!= nonamec
);
53 assert(n1
!= noname2
);
59 assert(n2
!= noname1
);
60 assert(n2
!= nonamec
);
61 assert(n2
!= noname2
);
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
);
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
);
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
);