acl icon indicating copy to clipboard operation
acl copied to clipboard

Declaration of type alias acl::acl_impl::is_trivially_default_constructible fails to compile in configurations using Clang but not libcpp using c++20 standard libraries

Open davidra opened this issue 1 year ago • 2 comments

std::has_trivial_default_constructor has been long deprecated and is now removed from C++20 libraries, which means that when the check #if !defined(__GNUG__) || defined(_LIBCPP_VERSION) || defined(_GLIBCXX_USE_CXX11_ABI) fails the code fails to compile when compiled for a standard library compliant with C++20 that is not libcxx (e.g., when building code with a PlayStation SDK).

davidra avatar Jul 30 '24 14:07 davidra

Hello and apologies for the late reply. That is unfortunate :(

Perhaps it would be suitable to only use has_trivial_default_constructor if we compile C++11 since we can't guarantee standard compliance for compilers that partially implement it but anything using C++14 and up would require full C++11 coverage, avoiding your issue. Maybe something along the lines of #if RTM_CPP_VERSION < RTM_CPP_VERSION_14 && everything else. How does that sound?

nfrechette avatar Aug 02 '24 01:08 nfrechette

Sorry for the delay on the reply.

That sounds good to me!

davidra avatar Aug 05 '24 08:08 davidra