You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
util: Replace std::basic_string<unsigned> with std::basic_string<char32_t>
Fixes build with libc++19 that fails with the error:
> implicit instantiation of undefined template 'std::char_traits<unsigned int>'
Motivation for the change: std::basic_string<T> requires that
T implements std::char_traits and standard library provides specializations only
for the following types: char, char16_t, char32_t, wchar_t as per [1].
Note that this has been pointed out during a review previously [2], but made its
way back into the code in other places.
libc++19 has dropped implementations of std::char_traits for types not required
by the standard [3].
> The base template for std::char_traits has been removed in LLVM 19.
> If you are using std::char_traits with types other than char, wchar_t, char8_t, char16_t, char32_t
> or a custom character type for which you specialized std::char_traits, your code will stop working.
[1] N4713, 24.2.1 Character traits [char.traits] (C++17)
[2] https://www.github.com/diffblue/cbmc/pull/5277#discussion_r396609205
[3] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals
0 commit comments