diff options
Diffstat (limited to 'libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html')
-rw-r--r-- | libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html b/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html new file mode 100644 index 00000000000..48f12bcfbfd --- /dev/null +++ b/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html @@ -0,0 +1,31 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> + +<html> +<head> + <title>Exception Guarantee Specifics</title> +</head> +<body bgcolor = "white"> +<h1>Exception Guarantee Specifics</h1> +The following represent exception guaratee specifics, subject to the <a href="component_requirements.html#exception_requirements">component exception-requirements</a>. +<ol> + <li> <a name="basic_guarantee">No</a> resources are leaked in the face of exceptions. In particular, this means: + <ol> + <li>By the time a container's destructor completes: + <ol> + <li>It has returned all memory it has allocated to the appropriate deallocation function.</li> + <li>The destructor has been called for all objects constructed by the container.</li> + </ol> + <li>Algorithms destroy all temporary objects and deallocate all temporary memory even if the algorithm does not complete due to an exception.</li> + <li>Algorithms which construct objects either complete successfully or destroy any objects they have constructed at the time of the exception.</li> + <li>Algorithms which destruct objects always succeed.</li> + <li>Containers continue to fulfill all of their requirements, even after an exception occurs during a mutating function. For example, they will never give an inaccurate report of its size, or fail to meet performance requirements because of some thrown exception.</li> + </ol> + </li> + <li> <a name="strong_guarantee">The</a> <i>strong guarantee</i>: If an operation on a container fails due to an exception, then, semantically, the operation is a no-op applied to the container.</li> + <li> <a name="cannot_throw_guarantee">The</a> operation cannot throw an exception.</li> +</ol> +(The phrasing of the above is based on <a href="references.html#abrahams97exception">[abrahams97exception]</a>.) + + +</body> +</html> |