Hi Thiago, > On Thursday, 27 January 2022 13:35:54 PST Thiago Macieira wrote: > > I think it's fine to make the check per OS. But we can't use the __cpp_lib > > variables. > > Alternative: we use the __cpp_lib macros, but we assert they are set in a .cpp > file for the platforms where binary compatibility and ABI matter.
That would break projects that build their Qt themselves (embedded), and with C++17 (because, you know, compile times increase with every std version 🙂). Basically, we need a way to provide C++20 ABIs when Qt was compiled in C++20 mode, and if not, then not. We had that already in Qt 5.x, x < 7, when C++11 was optional, but we used C++11 in exported inline API, so AFAIU, CMIIW, the move special member functions were part of the ABI if you compiled your Qt in C++11 on Windows and they were missing from the ABI when Qt was built in C++98 mode. And there we even had the BiC between std::string/98 and std::string/11 while exporting inline QString::toStdString() (granted, that was on GCC, but doesn't that mean we had the problem on MingW, then?). Thanks, Marc
_______________________________________________ Development mailing list [email protected] https://lists.qt-project.org/listinfo/development
