summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-01-12 11:35:14 +0100
committerGitHub <[email protected]>2022-01-12 11:35:14 +0100
commit0cd76f1c754753cc8452cef60e435e4446ad89ee (patch)
tree8ab069f59b698bd8d283dfd2dea8e1103459aa1c
parentd616e7db3a2325646e8647cdc433b12e9438c251 (diff)
downloadSTC-modified-0cd76f1c754753cc8452cef60e435e4446ad89ee.tar.gz
STC-modified-0cd76f1c754753cc8452cef60e435e4446ad89ee.zip
Update README.md
-rw-r--r--README.md18
1 files changed, 8 insertions, 10 deletions
diff --git a/README.md b/README.md
index 783c003e..86b49f48 100644
--- a/README.md
+++ b/README.md
@@ -213,8 +213,6 @@ int main(void) {
}
}
```
-**Note**: Do ***not*** `return` from inside a `c_auto*`-block. Instead, first `continue`, which will
-jump out of the block, then call `return` after the block.
Output
```
@@ -269,25 +267,25 @@ The list of template parameters:
- `i_key` - Element key type for map/set only. **[required]**.
- `i_val` - Element value type. **[required]**. For cmap/csmap, it is the mapped value type.
-- `i_cmp` - Three-way comparison of two `i_keyraw or i_valraw` pointers - **[required]** for non-integral raw types unless `i_opt c_no_cmp` is defined.
-- `i_hash` - Hash function taking `i_keyraw *` and a size - defaults to `!i_cmp`.
+- `i_cmp` - Three-way comparison of two `i_keyraw or i_valraw` pointers - **[required]** for non-integral valraw types unless `i_opt c_no_cmp` is defined.
+- `i_hash` - Hash function taking `i_keyraw *` and a size - defaults to `!i_cmp`. **[required]** for non-POD valraw type.
- `i_eq` - Equality comparison of two `i_keyraw *` - defaults to `!i_cmp`. Companion with `i_hash`.
Properties:
- `i_tag` - Container type name tag. Defaults to same as `i_key`
- `i_type` - Full container type name. Alternative to `i_tag`.
-- `i_opt` - Boolean properties: may combine `c_no_cmp`, `c_no_clone`, `c_no_atomic`, `c_is_fwd` with `|` separator.
+- `i_opt` - Boolean properties: may combine `c_no_cmp`, `c_no_clone`, `c_no_atomic`, `c_is_fwd`, `c_static`, `c_header`, `c_implement` with `|` separator.
Key:
- `i_keydrop` - Destroy map/set key func - defaults to empty destructor.
- `i_keyraw` - Convertion "raw" type - defaults to `i_key` type.
-- `i_keyfrom` - Convertion func `i_key` <= `i_keyraw`. **[required]** if `i_keydrop` is defined. Works as *clone* when `i_keyraw` == `i_key` type.
+- `i_keyfrom` - Convertion func `i_key` <= `i_keyraw`. **[required]** if `i_keydrop` is defined. Works as *clone* when `i_keyraw` not specified.
- `i_keyto` - Convertion func `i_key *` => `i_keyraw`.
Val:
- `i_valdrop` - Destroy mapped or value func - defaults to empty destruct.
- `i_valraw` - Convertion "raw" type - defaults to `i_val` type.
-- `i_valfrom` - Convertion func `i_val` <= `i_valraw`. **[required]** if `i_valdrop` is defined. Works as *clone* when `i_valraw` == `i_val` type.
+- `i_valfrom` - Convertion func `i_val` <= `i_valraw`. **[required]** if `i_valdrop` is defined. Works as *clone* when `i_valraw` not specified.
- `i_valto` - Convertion func `i_val *` => `i_valraw`.
Special:
@@ -298,9 +296,9 @@ Special:
Notes:
- For non-associative containers, `i_drop` and `i_from` may be defined instead of `i_valdrop` and `i_valfrom`.
-- Instead of defining `i_cmp`, you may define `i_opt c_no_cmp` to exclude methods using comparison.
-- Instead of defining `i_*from`, you may define `i_opt c_no_clone` to exclude methods using deep copy.
-- If a destructor `i_*drop` is defined, then either `i_*from` or `i_opt c_no_clone` is required to be defined.
+- Instead of defining `i_cmp`, you may define `i_opt c_no_cmp` to disable methods using comparison.
+- Instead of defining `i_*from`, you may define `i_opt c_no_clone` to disabled emplace and clone-functions.
+- If a destructor `i_*drop` is defined, then either `i_*from` or `i_opt c_no_clone` must be defined.
The *emplace* versus non-emplace container methods
--------------------------------------------------