Commit e1814101 by Evan Brown Committed by Copybara-Service

Document that swisstable and b-tree containers are not exception-safe.

For performance reasons, these containers are optimized for the case in which allocations/deallocations/comparisons/hashers can't throw exceptions.

PiperOrigin-RevId: 645054627
Change-Id: I99be651b26f5bbb87da6ef246b92b20a375224d7
parent 69195d5b
...@@ -49,6 +49,8 @@ ...@@ -49,6 +49,8 @@
// //
// Another API difference is that btree iterators can be subtracted, and this // Another API difference is that btree iterators can be subtracted, and this
// is faster than using std::distance. // is faster than using std::distance.
//
// B-tree maps are not exception-safe.
#ifndef ABSL_CONTAINER_BTREE_MAP_H_ #ifndef ABSL_CONTAINER_BTREE_MAP_H_
#define ABSL_CONTAINER_BTREE_MAP_H_ #define ABSL_CONTAINER_BTREE_MAP_H_
......
...@@ -48,6 +48,8 @@ ...@@ -48,6 +48,8 @@
// //
// Another API difference is that btree iterators can be subtracted, and this // Another API difference is that btree iterators can be subtracted, and this
// is faster than using std::distance. // is faster than using std::distance.
//
// B-tree sets are not exception-safe.
#ifndef ABSL_CONTAINER_BTREE_SET_H_ #ifndef ABSL_CONTAINER_BTREE_SET_H_
#define ABSL_CONTAINER_BTREE_SET_H_ #define ABSL_CONTAINER_BTREE_SET_H_
......
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
// //
// In most cases, your default choice for a hash map should be a map of type // In most cases, your default choice for a hash map should be a map of type
// `flat_hash_map`. // `flat_hash_map`.
//
// `flat_hash_map` is not exception-safe.
#ifndef ABSL_CONTAINER_FLAT_HASH_MAP_H_ #ifndef ABSL_CONTAINER_FLAT_HASH_MAP_H_
#define ABSL_CONTAINER_FLAT_HASH_MAP_H_ #define ABSL_CONTAINER_FLAT_HASH_MAP_H_
......
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
// //
// In most cases, your default choice for a hash set should be a set of type // In most cases, your default choice for a hash set should be a set of type
// `flat_hash_set`. // `flat_hash_set`.
//
// `flat_hash_set` is not exception-safe.
#ifndef ABSL_CONTAINER_FLAT_HASH_SET_H_ #ifndef ABSL_CONTAINER_FLAT_HASH_SET_H_
#define ABSL_CONTAINER_FLAT_HASH_SET_H_ #define ABSL_CONTAINER_FLAT_HASH_SET_H_
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
// migration, because it guarantees pointer stability. Consider migrating to // migration, because it guarantees pointer stability. Consider migrating to
// `node_hash_map` and perhaps converting to a more efficient `flat_hash_map` // `node_hash_map` and perhaps converting to a more efficient `flat_hash_map`
// upon further review. // upon further review.
//
// `node_hash_map` is not exception-safe.
#ifndef ABSL_CONTAINER_NODE_HASH_MAP_H_ #ifndef ABSL_CONTAINER_NODE_HASH_MAP_H_
#define ABSL_CONTAINER_NODE_HASH_MAP_H_ #define ABSL_CONTAINER_NODE_HASH_MAP_H_
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
// `node_hash_set` should be an easy migration. Consider migrating to // `node_hash_set` should be an easy migration. Consider migrating to
// `node_hash_set` and perhaps converting to a more efficient `flat_hash_set` // `node_hash_set` and perhaps converting to a more efficient `flat_hash_set`
// upon further review. // upon further review.
//
// `node_hash_set` is not exception-safe.
#ifndef ABSL_CONTAINER_NODE_HASH_SET_H_ #ifndef ABSL_CONTAINER_NODE_HASH_SET_H_
#define ABSL_CONTAINER_NODE_HASH_SET_H_ #define ABSL_CONTAINER_NODE_HASH_SET_H_
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment