89 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9// REQUIRES: locale.en_US.UTF-810 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 macros20 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