@SGaist Hi,
I remember I saw that LLVM issue but I didn't know how to interpret it and I thought it was fixed. However, I just put the static asserts below in the code and compilation failed in the CI using clang and libc++, while it succeeded in the rest using GCC and libstdc++.
#include <compare>
// Check if the types support three-way comparison
static_assert(std::three_way_comparable<QString>, " ** QString - three-way comparison NOT supported");
static_assert(std::three_way_comparable<QDate>, " ** QDate - three-way comparison NOT supported");
static_assert(std::three_way_comparable<QTime>, " ** QTime - three-way comparison NOT supported");
// Check if the C++20 three-way comparison is available
static_assert(__cpp_lib_three_way_comparison >= 201907L, " ** Three-way comparison library NOT available");
I don't know if you refer to qcompare.h and qcomparehelpers.h. I just looked at them and I found usage of __cpp_lib_three_way_comparison . So, most likely my problem is due to the libc++ issue in the link you mentioned.