xref: /aosp_15_r20/external/cronet/third_party/libc++/src/test/std/utilities/charconv/charconv.msvc/test.pass.cpp (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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 // UNSUPPORTED: c++03, c++11, c++14
10 
11 // to_chars requires functions in the dylib that have not been introduced in older
12 // versions of the dylib on macOS.
13 // XFAIL: availability-fp_to_chars-missing
14 
15 // steady_clock requires threads.
16 // UNSUPPORTED: no-threads
17 // UNSUPPORTED: no-random-device
18 // UNSUPPORTED: no-localization
19 
20 // XFAIL: LIBCXX-AIX-FIXME
21 
22 // <charconv>
23 
24 #include <type_traits>
25 
26 // Work-around for sprintf_s's usage in the Microsoft tests.
27 #ifndef _WIN32
28 #  define sprintf_s snprintf
29 #endif
30 
31 #ifdef _MSVC_STL_VERSION
32 #include <xutility>
33 using std::_Bit_cast;
34 #else
35 // FUNCTION TEMPLATE _Bit_cast
36 template <class _To, class _From,
37           std::enable_if_t<sizeof(_To) == sizeof(_From) && std::is_trivially_copyable_v<_To> &&
38                                std::is_trivially_copyable_v<_From>,
39                            int> = 0>
_Bit_cast(const _From & _From_obj)40 [[nodiscard]] constexpr _To _Bit_cast(const _From& _From_obj) noexcept {
41   return __builtin_bit_cast(_To, _From_obj);
42 }
43 #endif
44 
45 // Includes Microsoft's test that tests the entire header.
46 
47 #include "test.cpp"
48