3 ms·
performance-noexcept-move-constructor is great but it also complains about move assignment operators, which are completely different beasts and are practically
by rfc3092 9mo ago
performance-noexcept-move-constructor is great but it also complains about move assignment operators, which are completely different beasts and are practically impossible to make noexcept if your destructors throw.
- dataflow 9mo agoIf that's the issue you're facing, consider clang-query, e.g.: https://godbolt.org/z/bfG94qGan https://godbolt.org/z/bfG94qGan match cxxConstructExpr(hasDeclaration(cxxConstructorDecl(isMoveConstructor(), unless(isNoThrow())).bind("throwing-move"))) You can put extra constraints on the caller if you'd like (e.g., isInStdNamespace()), though it's less trivial. Happy to help write something if you have a precise idea of what you want to match.
- beached_whale 9mo agoThrowing destructors will generally end in termination of the program if they are used as class members. Types like scope_exit are fine, but anywhere else will probably have noexcept(true) on it's destructor.
- deleted 9mo ago[deleted]