From 9b3f20eb42fd64e6a06cb300acadefc8e7feceea Mon Sep 17 00:00:00 2001 From: bgloyer <36457894+bgloyer@users.noreply.github.com> Date: Tue, 15 Apr 2025 10:28:10 -0700 Subject: [PATCH] F.6 noexcept Issue #2220 (#2264) * F.6 noexcept * add overriders to isocpp.dic --- CppCoreGuidelines.md | 6 +++++- scripts/hunspell/isocpp.dic | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 2819f9e..e7aa632 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -2740,9 +2740,13 @@ low-level functions. Destructors, `swap` functions, move operations, and default constructors should never throw. See also [C.44](#Rc-default00). +##### Note + +Care must be taken on base virtual functions and functions part of a public interface because declaring a function `noexcept` is establishing a guarantee that all current and future implementations must abide by. For virtual function, all overriders must also be `noexcept` and removing `noexcept` from a function could break calling functions. + ##### Enforcement -* Flag functions that are not `noexcept`, yet cannot throw. +* (hard) Flag low-level functions that are not `noexcept`, yet cannot throw. * Flag throwing `swap`, `move`, destructors, and default constructors. ### F.7: For general use, take `T*` or `T&` arguments rather than smart pointers diff --git a/scripts/hunspell/isocpp.dic b/scripts/hunspell/isocpp.dic index efe8fae..3830447 100644 --- a/scripts/hunspell/isocpp.dic +++ b/scripts/hunspell/isocpp.dic @@ -400,6 +400,7 @@ overabstract overconstrain overconstrained overridable +overriders p1 p2 p3