annotate libcxx/include/charconv @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1f2b6ac9f198
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // -*- C++ -*-
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
2 //===----------------------------------------------------------------------===//
150
anatofuz
parents:
diff changeset
3 //
anatofuz
parents:
diff changeset
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
anatofuz
parents:
diff changeset
5 // See https://llvm.org/LICENSE.txt for license information.
anatofuz
parents:
diff changeset
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
anatofuz
parents:
diff changeset
7 //
anatofuz
parents:
diff changeset
8 //===----------------------------------------------------------------------===//
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 #ifndef _LIBCPP_CHARCONV
anatofuz
parents:
diff changeset
11 #define _LIBCPP_CHARCONV
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 /*
anatofuz
parents:
diff changeset
14 charconv synopsis
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 namespace std {
anatofuz
parents:
diff changeset
17
anatofuz
parents:
diff changeset
18 // floating-point format for primitive numerical conversion
anatofuz
parents:
diff changeset
19 enum class chars_format {
anatofuz
parents:
diff changeset
20 scientific = unspecified,
anatofuz
parents:
diff changeset
21 fixed = unspecified,
anatofuz
parents:
diff changeset
22 hex = unspecified,
anatofuz
parents:
diff changeset
23 general = fixed | scientific
anatofuz
parents:
diff changeset
24 };
anatofuz
parents:
diff changeset
25
anatofuz
parents:
diff changeset
26 // 23.20.2, primitive numerical output conversion
anatofuz
parents:
diff changeset
27 struct to_chars_result {
anatofuz
parents:
diff changeset
28 char* ptr;
anatofuz
parents:
diff changeset
29 errc ec;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
30 friend bool operator==(const to_chars_result&, const to_chars_result&) = default; // since C++20
150
anatofuz
parents:
diff changeset
31 };
anatofuz
parents:
diff changeset
32
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
33 constexpr to_chars_result to_chars(char* first, char* last, see below value,
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
34 int base = 10); // constexpr since C++23
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
35 to_chars_result to_chars(char* first, char* last, bool value,
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
36 int base = 10) = delete;
150
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 to_chars_result to_chars(char* first, char* last, float value);
anatofuz
parents:
diff changeset
39 to_chars_result to_chars(char* first, char* last, double value);
anatofuz
parents:
diff changeset
40 to_chars_result to_chars(char* first, char* last, long double value);
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 to_chars_result to_chars(char* first, char* last, float value,
anatofuz
parents:
diff changeset
43 chars_format fmt);
anatofuz
parents:
diff changeset
44 to_chars_result to_chars(char* first, char* last, double value,
anatofuz
parents:
diff changeset
45 chars_format fmt);
anatofuz
parents:
diff changeset
46 to_chars_result to_chars(char* first, char* last, long double value,
anatofuz
parents:
diff changeset
47 chars_format fmt);
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 to_chars_result to_chars(char* first, char* last, float value,
anatofuz
parents:
diff changeset
50 chars_format fmt, int precision);
anatofuz
parents:
diff changeset
51 to_chars_result to_chars(char* first, char* last, double value,
anatofuz
parents:
diff changeset
52 chars_format fmt, int precision);
anatofuz
parents:
diff changeset
53 to_chars_result to_chars(char* first, char* last, long double value,
anatofuz
parents:
diff changeset
54 chars_format fmt, int precision);
anatofuz
parents:
diff changeset
55
anatofuz
parents:
diff changeset
56 // 23.20.3, primitive numerical input conversion
anatofuz
parents:
diff changeset
57 struct from_chars_result {
anatofuz
parents:
diff changeset
58 const char* ptr;
anatofuz
parents:
diff changeset
59 errc ec;
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
60 friend bool operator==(const from_chars_result&, const from_chars_result&) = default; // since C++20
150
anatofuz
parents:
diff changeset
61 };
anatofuz
parents:
diff changeset
62
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
63 constexpr from_chars_result from_chars(const char* first, const char* last,
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
64 see below& value, int base = 10); // constexpr since C++23
150
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 } // namespace std
anatofuz
parents:
diff changeset
67
anatofuz
parents:
diff changeset
68 */
anatofuz
parents:
diff changeset
69
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
70 #include <__assert> // all public C++ headers provide the assertion handler
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
71 #include <__charconv/chars_format.h>
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
72 #include <__charconv/from_chars_integral.h>
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
73 #include <__charconv/from_chars_result.h>
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
74 #include <__charconv/tables.h>
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
75 #include <__charconv/to_chars.h>
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
76 #include <__charconv/to_chars_base_10.h>
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
77 #include <__charconv/to_chars_floating_point.h>
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
78 #include <__charconv/to_chars_integral.h>
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
79 #include <__charconv/to_chars_result.h>
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
80 #include <__charconv/traits.h>
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
81 #include <__config>
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
82 #include <__system_error/errc.h>
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
83 #include <cmath> // for log2f
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
84 #include <cstdint>
150
anatofuz
parents:
diff changeset
85 #include <limits>
anatofuz
parents:
diff changeset
86
anatofuz
parents:
diff changeset
87 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
88 # pragma GCC system_header
150
anatofuz
parents:
diff changeset
89 #endif
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 _LIBCPP_BEGIN_NAMESPACE_STD
anatofuz
parents:
diff changeset
92
anatofuz
parents:
diff changeset
93 _LIBCPP_END_NAMESPACE_STD
anatofuz
parents:
diff changeset
94
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
95 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
96 # include <concepts>
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
97 # include <cstdlib>
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
98 # include <cstring>
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
99 # include <iosfwd>
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
100 # include <type_traits>
236
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
101 #endif
c4bab56944e8 LLVM 16
kono
parents: 221
diff changeset
102
221
79ff65ed7e25 LLVM12 Original
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
103 #endif // _LIBCPP_CHARCONV