Skip to content

Fix compilation of iconv tests with libcxx 19 - #182

Open
al3xtjames wants to merge 1 commit into
arch1t3cht:featurefrom
al3xtjames:iconv-test-libcxx-19
Open

Fix compilation of iconv tests with libcxx 19#182
al3xtjames wants to merge 1 commit into
arch1t3cht:featurefrom
al3xtjames:iconv-test-libcxx-19

Conversation

@al3xtjames

Copy link
Copy Markdown

libcxx 18 deprecated the std::basic_string template specializations for int16_t and int32_t, which are currently used by the iconv tests. The template specializations were removed altogether in libcxx 19, which breaks compilation of the iconv tests. Replace int16_t and int32_t with char16_t and char32_t to fix compilation with libcxx 19.

I added the static_assert for checking the sizes of char16_t and char32_t as the standard allows them to contain padding bytes.

Fixes #181.

[libcxx 18 deprecated the `std::basic_string` template specializations
for `int16_t` and `int32_t`][1], which are currently used by the iconv
tests. [The template specializations were removed altogether in libcxx
19][2], which breaks compilation of the iconv tests. Replace `int16_t`
and `int32_t` with `char16_t` and `char32_t` to fix compilation with
libcxx 19.

I added the `static_assert` for checking the sizes of `char16_t` and
`char32_t` as [the standard allows them to contain padding bytes][3].

[1]: https://reviews.llvm.org/D138307
[2]: https://reviews.llvm.org/D157058
[3]: https://en.cppreference.com/w/cpp/language/types#char16_t
mojie126 added a commit to mojie126/Aegisub that referenced this pull request Feb 28, 2026
- 适配上游提交 0b40de8:C++20标准、Boost移除、std::filesystem替换
- 修复编译错误:agi::make_unique→std::make_unique、fs_fwd.h→filesystem
- 修复链接错误:统一函数签名为string_view
- 修复thesaurus透明比较器、dispatch DoInvoke签名、mkv_wrap string_view适配
- 保留自定义功能:压缩字幕支持(mkv_wrap)、DirectWrite字体(font_file_lister_gdi)
- .gitignore:排除docs/*.md和docs/*.txt临时文件
mojie126 added a commit to mojie126/Aegisub that referenced this pull request Mar 19, 2026
- 适配上游提交 10843b9:C++20标准、Boost移除、std::filesystem替换
- 修复编译错误:agi::make_unique→std::make_unique、fs_fwd.h→filesystem
- 修复链接错误:统一函数签名为string_view
- 修复thesaurus透明比较器、dispatch DoInvoke签名、mkv_wrap string_view适配
- 保留自定义功能:压缩字幕支持(mkv_wrap)、DirectWrite字体(font_file_lister_gdi)
- .gitignore:排除docs/*.md和docs/*.txt临时文件
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tests/tests/iconv.cpp no longer compiles with libcxx 19

1 participant