1 //===----------------------------------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
11 // ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT
13 // template <class Elem, unsigned long Maxcode = 0x10ffff,
14 // codecvt_mode Mode = (codecvt_mode)0>
15 // class codecvt_utf8_utf16
16 // : public codecvt<Elem, char, mbstate_t>
22 // unshift(stateT& state,
23 // externT* to, externT* to_end, externT*& to_next) const;
28 #include "test_macros.h"
32 #ifndef TEST_HAS_NO_WIDE_CHARACTERS
34 typedef std::codecvt_utf8_utf16
<wchar_t> C
;
39 std::codecvt_base::result r
= c
.unshift(m
, n
, n
+4, np
);
40 assert(r
== std::codecvt_base::noconv
);
44 typedef std::codecvt_utf8_utf16
<char16_t
> C
;
49 std::codecvt_base::result r
= c
.unshift(m
, n
, n
+4, np
);
50 assert(r
== std::codecvt_base::noconv
);
53 typedef std::codecvt_utf8_utf16
<char32_t
> C
;
58 std::codecvt_base::result r
= c
.unshift(m
, n
, n
+4, np
);
59 assert(r
== std::codecvt_base::noconv
);