You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Tupitsyn (Jira)" <ji...@apache.org> on 2025/04/17 07:03:00 UTC
[jira] [Commented] (IGNITE-24990) Fix broken C++ builds for bytes_view and clang-based toolchains with new libc++
[ https://issues.apache.org/jira/browse/IGNITE-24990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17945258#comment-17945258 ]
Pavel Tupitsyn commented on IGNITE-24990:
-----------------------------------------
Merged to main: [31ef8ca0ea3dd4fac9e4a57655d3542ddaac51fa|https://github.com/apache/ignite-3/commit/31ef8ca0ea3dd4fac9e4a57655d3542ddaac51fa]
> Fix broken C++ builds for bytes_view and clang-based toolchains with new libc++
> -------------------------------------------------------------------------------
>
> Key: IGNITE-24990
> URL: https://issues.apache.org/jira/browse/IGNITE-24990
> Project: Ignite
> Issue Type: Bug
> Components: platforms
> Reporter: Manuel Pöter
> Assignee: Dmitrii Zabotlin
> Priority: Major
> Labels: ignite-3
> Time Spent: 20m
> Remaining Estimate: 0h
>
> After a recent XCode update MacOS C++ builds are broken with the following error:
> {code}
> > Task :platforms:cmakeBuildClient
> In file included from /Users/apolo/Work/ignite-3/modules/platforms/cpp/ignite/common/big_decimal.cpp:18:
> In file included from /Users/apolo/Work/ignite-3/modules/platforms/cpp/ignite/common/big_decimal.h:20:
> In file included from /Users/apolo/Work/ignite-3/modules/platforms/cpp/ignite/common/big_integer.h:20:
> In file included from /Users/apolo/Work/ignite-3/modules/platforms/cpp/ignite/common/bytes_view.h:22:
> In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/c++/v1/string:648:
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/c++/v1/string_view:300:42: error: implicit instantiation of undefined template 'std::char_traits<std::byte>'
> 300 | static_assert(is_same<_CharT, typename traits_type::char_type>::value,
> | ^
> /Users/apolo/Work/ignite-3/modules/platforms/cpp/ignite/common/bytes_view.h:29:21: note: in instantiation of template class 'std::basic_string_view<std::byte>' requested here
> 29 | struct bytes_view : std::basic_string_view<std::byte> {
> | ^
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/c++/v1/__string/char_traits.h:45:8: note: template is declared here
> 45 | struct char_traits;
> | ^
> 1 error generated.
> make[2]: *** [ignite/common/CMakeFiles/ignite-common.dir/big_decimal.cpp.o] Error 1
> make[1]: *** [ignite/common/CMakeFiles/ignite-common.dir/all] Error 2
> make: *** [all] Error 2
> {code}
> The reason is the following deprecation (see [release notes|https://developer.apple.com/documentation/xcode-release-notes/xcode-16_3-release-notes]):
> {quote}
> The base template for std::char_traits has been removed. 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. The Standard does not mandate that a base template is provided, and such a base template is bound to be incorrect for some types, which could previously cause unexpected behavior while going undetected.
> {quote}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)