diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 1510e3484..26c6a9e7f 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -16129,17 +16129,17 @@ The standard library assumes that destructors, deallocation functions (e.g., `op ##### Note -- Deallocation functions, including `operator delete`, must be `noexcept`. -- `swap` functions must be `noexcept`. -- Most destructors are implicitly `noexcept` by default. -- Also, [make move operations `noexcept`](#Rc-move-noexcept). -- If writing a type intended to be used as an exception type, ensure its copy constructor is not `noexcept`. In general we cannot mechanically enforce this, because we do not know whether a type is intended to be used as an exception type. -- Try not to `throw` a type whose copy constructor is not `noexcept`. In general we cannot mechanically enforce this, because even `throw std::string(...)` could throw but does not in practice. +* Deallocation functions, including `operator delete`, must be `noexcept`. +* `swap` functions must be `noexcept`. +* Most destructors are implicitly `noexcept` by default. +* Also, [make move operations `noexcept`](#Rc-move-noexcept). +* If writing a type intended to be used as an exception type, ensure its copy constructor is not `noexcept`. In general we cannot mechanically enforce this, because we do not know whether a type is intended to be used as an exception type. +* Try not to `throw` a type whose copy constructor is not `noexcept`. In general we cannot mechanically enforce this, because even `throw std::string(...)` could throw but does not in practice. ##### Enforcement -- Catch destructors, deallocation operations, and `swap`s that `throw`. -- Catch such operations that are not `noexcept`. +* Catch destructors, deallocation operations, and `swap`s that `throw`. +* Catch such operations that are not `noexcept`. **See also**: [discussion](#Sd-never-fail)