jyknight wrote: While libstdc++ could presumably be modified to work around the issues here, I'd just note again that IMO this is a wide-scale blocker for being able to use C++23 mode in Clang -- not just with libstdc++.
Sure, libc++ itself works. But, in some preliminary testing on our internal codebase, I found so much real-world code that is broken by `unique_ptr::~unique_ptr` and defaulted destructors becoming constexpr in C++23 (which then triggers Clang's eager instantiation, which then requires type completeness "too early"), that I don't really contemplate being able to use Clang C++23, with libc++ until a change doing something like this (and the follow-up mentioned earlier) is landed. While Clang's current choice of instantiation point for constexpr functions certainly is conforming with the standard -- Clang is the _only_ compiler for which adding more "constexpr" in a new version of the standard breaks vast amounts of existing user code by moving the _actual_ instantiation point earlier. Neither GCC nor MSVC have this problem. https://github.com/llvm/llvm-project/pull/173537 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
