In my research department we plan a small seminar on the new c++20 language standard. There are exhaustive lists online presenting the new features of the language standard, some of which will be of interest to this community, some will be inconsequential.
I think I understand the advantages of:
- concepts (wiki) - clearer definition of (template-) interfaces within codebases and less cryptic errors in template resolution. We may explicitly state what a templated type should bring, reducing the need for duck-typing.
- keywords: [[likely]] and [[unlikely]] - tell the compiler how to do branch prediction!
- modules - collect headers in a module (fortran-style), (hopefully) helping in better include management and improved compilation times
- ...?
From the perspective of numerical computation, what are other c++20 features that are particularly useful?