Details
-
Task
-
Resolution: Unresolved
-
Major
-
master
-
1
Description
Classes with move constructors which are not marked as noexcept result in STL containers pessimising reallocations of that class - see https://quuxplusone.github.io/blog/2022/08/26/vector-pessimization/ for a good description of the problem.
clang-tidy can flag this - see https://clang.llvm.org/extra/clang-tidy/checks/performance/noexcept-move-constructor.html. We should audit our usage of move constructors to check if there's any which are not marked as noexcept and should be.
(We may also want to review the other "performance-" checks which clang-tidy provides and see if they are worth enabling.)