mastodonpp  0.0.0
locale_bionic.h
1 // -*- C++ -*-
2 //===------------------- support/android/locale_bionic.h ------------------===//
3 //
4 // The LLVM Compiler Infrastructure
5 //
6 // This file is dual licensed under the MIT and the University of Illinois Open
7 // Source Licenses. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10 
11 #ifndef _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H
12 #define _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H
13 
14 #if defined(__BIONIC__)
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #include <stdlib.h>
21 #include <xlocale.h>
22 
23 #ifdef __cplusplus
24 }
25 #endif
26 
27 #if defined(__ANDROID__)
28 
29 #include <android/api-level.h>
30 #include <android/ndk-version.h>
31 #include <support/xlocale/__posix_l_fallback.h>
32 // In NDK versions later than 16, locale-aware functions are provided by
33 // legacy_stdlib_inlines.h
34 #if __NDK_MAJOR__ <= 16
35 #if __ANDROID_API__ < 21
36 #include <support/xlocale/__strtonum_fallback.h>
37 #elif __ANDROID_API__ < 26
38 
39 #if defined(__cplusplus)
40 extern "C" {
41 #endif
42 
43 inline _LIBCPP_INLINE_VISIBILITY float strtof_l(const char* __nptr, char** __endptr,
44  locale_t) {
45  return ::strtof(__nptr, __endptr);
46 }
47 
48 inline _LIBCPP_INLINE_VISIBILITY double strtod_l(const char* __nptr,
49  char** __endptr, locale_t) {
50  return ::strtod(__nptr, __endptr);
51 }
52 
53 inline _LIBCPP_INLINE_VISIBILITY long strtol_l(const char* __nptr, char** __endptr,
54  int __base, locale_t) {
55  return ::strtol(__nptr, __endptr, __base);
56 }
57 
58 #if defined(__cplusplus)
59 }
60 #endif
61 
62 #endif // __ANDROID_API__ < 26
63 
64 #endif // __NDK_MAJOR__ <= 16
65 #endif // defined(__ANDROID__)
66 
67 #endif // defined(__BIONIC__)
68 #endif // _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H
locale_t
Definition: locale_win32.h:32