1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <locale.h> 11 12#include <locale.h> 13#include <type_traits> 14 15#ifndef LC_ALL 16#error LC_ALL not defined 17#endif 18 19#ifndef LC_COLLATE 20#error LC_COLLATE not defined 21#endif 22 23#ifndef LC_CTYPE 24#error LC_CTYPE not defined 25#endif 26 27#ifndef LC_MONETARY 28#error LC_MONETARY not defined 29#endif 30 31#ifndef LC_NUMERIC 32#error LC_NUMERIC not defined 33#endif 34 35#ifndef LC_TIME 36#error LC_TIME not defined 37#endif 38 39#ifndef NULL 40#error NULL not defined 41#endif 42 43int main() 44{ 45 lconv lc; 46 static_assert((std::is_same<__typeof__(setlocale(0, "")), char*>::value), ""); 47 static_assert((std::is_same<__typeof__(localeconv()), lconv*>::value), ""); 48} 49