What do venerable developers think about usage C++20/23?
The move to C++20 is not yet possible because we still have to support older systems that don’t have full-featured C++20 compilers. For more information see also https://devtalk.freecad.org/t/minimum-library-versions-for-02110-dev-cycle/64111/1
usage of std::format instead of boost::format
Using std::format and friends was also on my wish list but that’s one of the C++20 features that is not supported on older systems. So the alternative is to use the fmtlib that provides the needed functionality.
std::regex instead of boost::regex
Nope. This is one of the things we must not change because it’s known that std::regex is up to 60x slower than boost::regex.
https://github.com/FreeCAD/FreeCAD/pull/1713
std::bind instead of boost::bind (though, I use lambda functions, because I found them to be much faster)
Yes, replacing boost::bind is fine.
std::isnan instead of boost::math::isnan
I didn’t even know that this exists. Since it has been added with C++11 it’s fine to change it.
std::filesystem instead of boost::filesystem
This library has actually been added with C++17 but we postponed the change because it was not fully supported on older systems with a C++17 compiler. So, this should be discussed again.
usage of [[maybe_unused]] or Q_UNUSED, since, it’s Qt (also, [[likely]], [[unlikely]] etc.)
We partially use this already. Further options are std::ignore (but there are different opinions whether it should be used in this context) or boost::ignore_unused
and many more, like std::span
Is also a C++20 feature.
creation of portable version of FreeCAD. I know that there is “portable” version, but it’s only called like that.
What would be the difference from a technical point of view?