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// <clocale>
10
11#include <clocale>
12#include <type_traits>
13
14#include "test_macros.h"
15
16#ifndef LC_ALL
17#error LC_ALL not defined
18#endif
19
20#ifndef LC_COLLATE
21#error LC_COLLATE not defined
22#endif
23
24#ifndef LC_CTYPE
25#error LC_CTYPE not defined
26#endif
27
28#ifndef LC_MONETARY
29#error LC_MONETARY not defined
30#endif
31
32#ifndef LC_NUMERIC
33#error LC_NUMERIC not defined
34#endif
35
36#ifndef LC_TIME
37#error LC_TIME not defined
38#endif
39
40#ifndef NULL
41#error NULL not defined
42#endif
43
44int main(int, char**)
45{
46 std::lconv lc;
47 ((void)lc); // Prevent unused warning
48 static_assert((std::is_same<decltype(std::setlocale(0, "")), char*>::value), "");
49 static_assert((std::is_same<decltype(std::localeconv()), std::lconv*>::value), "");
50
51 return 0;
52}
53

source code of libcxx/test/std/localization/c.locales/clocale.pass.cpp