diff --git a/libcxx/docs/DesignDocs/NoexceptPolicy.rst b/libcxx/docs/DesignDocs/NoexceptPolicy.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/DesignDocs/NoexceptPolicy.rst @@ -0,0 +1,13 @@ +==================== +``noexcept`` Policy +==================== + +Extended applications of ``noexcept`` +------------------------------------------ + +As of version 13 libc++ may mark functions that do not throw (i.e., +"Throws: Nothing") as ``noexcept``. This has two primary consequences: +first, functions might not report precondition violations by throwing. +Second, user-provided functions, such as custom predicates or custom +traits, which throw might not be propagated up to the caller (unless +specified otherwise by the Standard). diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -173,6 +173,7 @@ DesignDocs/FeatureTestMacros DesignDocs/ExtendedCXX03Support DesignDocs/UniquePtrTrivialAbi + DesignDocs/NoexceptPolicy * ` design `_ * ` design `_