enh(build): C++20 support
Description
C++20 is now mature enough to be used in production. It brings many appealing improvements to the language that we would to benefit from.
Proposal
Update the code base to build with C++20. Fix the build because of language deprecations and maybe new warnings.
Functional specifications
No functional change.
Technical specifications
Everything should work as before.
Test plan
Existing unit and GUI testing on all platforms should be sufficient.