brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · f1b01ee Raw
64 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9// <codecvt>10 11// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT12 13// template <class Elem, unsigned long Maxcode = 0x10ffff,14//           codecvt_mode Mode = (codecvt_mode)0>15// class codecvt_utf8_utf1616//     : public codecvt<Elem, char, mbstate_t>17// {18//     // unspecified19// };20 21// result22//     unshift(stateT& state,23//             externT* to, externT* to_end, externT*& to_next) const;24 25#include <codecvt>26#include <cassert>27 28#include "test_macros.h"29 30int main(int, char**)31{32#ifndef TEST_HAS_NO_WIDE_CHARACTERS33    {34        typedef std::codecvt_utf8_utf16<wchar_t> C;35        C c;36        char n[4] = {0};37        std::mbstate_t m;38        char* np = nullptr;39        std::codecvt_base::result r = c.unshift(m, n, n+4, np);40        assert(r == std::codecvt_base::noconv);41    }42#endif43    {44        typedef std::codecvt_utf8_utf16<char16_t> C;45        C c;46        char n[4] = {0};47        std::mbstate_t m;48        char* np = nullptr;49        std::codecvt_base::result r = c.unshift(m, n, n+4, np);50        assert(r == std::codecvt_base::noconv);51    }52    {53        typedef std::codecvt_utf8_utf16<char32_t> C;54        C c;55        char n[4] = {0};56        std::mbstate_t m;57        char* np = nullptr;58        std::codecvt_base::result r = c.unshift(m, n, n+4, np);59        assert(r == std::codecvt_base::noconv);60    }61 62  return 0;63}64