-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Fails to build on recent libc++ (20 tested) #1812
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
Since this isn't a regression in libc++ (behavior now is actually more onpar with the standard) I have not filed a ticket with LLVM. Can either provide own implementation of char_traits<uint8_t> or remove usage altogether as from a superficial look, only testcases are using it. so just let the user provide supporting typedefs if so needed |
+1 I also have this issue |
I'm hitting this after upgrading my mac and getting apple-clang 17. |
aminya
added a commit
to aminya/vcpkg
that referenced
this issue
May 5, 2025
Cpprestsdk fails to compile on newer MacOS due to missing char_traits. This provides the fix from microsoft/cpprestsdk#1820 Related to microsoft/cpprestsdk#1812
aminya
added a commit
to aminya/vcpkg
that referenced
this issue
May 5, 2025
Cpprestsdk fails to compile on newer MacOS due to missing char_traits. This provides the fix from microsoft/cpprestsdk#1820 Related to microsoft/cpprestsdk#1812
7 tasks
aminya
added a commit
to aminya/vcpkg
that referenced
this issue
May 5, 2025
Cpprestsdk fails to compile on newer MacOS due to missing char_traits. This provides the fix from microsoft/cpprestsdk#1820 Related to microsoft/cpprestsdk#1812
aminya
added a commit
to aminya/vcpkg
that referenced
this issue
May 5, 2025
Cpprestsdk fails to compile on newer MacOS due to missing char_traits. This provides the fix from microsoft/cpprestsdk#1820 Related to microsoft/cpprestsdk#1812
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
I tracked down this source file Release/include/cpprest/streams.h
Here it assumes that the standard lib will accomodate instantiating a std::basic_string<uint8_t> or any other T for that matter, but that isn't the case as only the 'regular' char types are specialized for char_traits in the standard.
Current libstdc++ and older libc++ (up to at least libc++18) will accept this code, but not in recent libc++ where only the stipulated types are supported.
This can be isolated further with the following snippet:
Snippet:
msvc: OK
gcc: OK
clang+libstdc++: OK
clang+old-libc++: OK
clang+libc++-20: FAIL
The text was updated successfully, but these errors were encountered: