diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/carray_api.md | 2 | ||||
| -rw-r--r-- | docs/cdeq_api.md | 6 | ||||
| -rw-r--r-- | docs/clist_api.md | 6 | ||||
| -rw-r--r-- | docs/cmap_api.md | 32 | ||||
| -rw-r--r-- | docs/cptr_api.md | 37 | ||||
| -rw-r--r-- | docs/cset_api.md | 9 | ||||
| -rw-r--r-- | docs/csmap_api.md | 23 | ||||
| -rw-r--r-- | docs/csset_api.md | 7 | ||||
| -rw-r--r-- | docs/cvec_api.md | 6 |
9 files changed, 59 insertions, 69 deletions
diff --git a/docs/carray_api.md b/docs/carray_api.md index e3d35083..90fc3815 100644 --- a/docs/carray_api.md +++ b/docs/carray_api.md @@ -10,7 +10,7 @@ See the c++ class [boost::multi_array](https://www.boost.org/doc/libs/release/li ```c using_carray(X, Value); -using_carray(X, Value, valueDestroy); +using_carray(X, Value, valueDel, valueClone); ``` The macro `using_carray()` must be instantiated in the global scope. `X` and `N` are type tags and will affect the names of all cset types and methods. E.g. declaring `using_carray(my, int);`, `X` should diff --git a/docs/cdeq_api.md b/docs/cdeq_api.md index fd42d295..10a9cd74 100644 --- a/docs/cdeq_api.md +++ b/docs/cdeq_api.md @@ -9,9 +9,9 @@ See the c++ class [std::deque](https://en.cppreference.com/w/cpp/container/deque ```c using_cdeq(X, Value); -using_cdeq(X, Value, valueCompareRaw); -using_cdeq(X, Value, valueCompareRaw, valueDestroy); -using_cdeq(X, Value, valueCompareRaw, valueDestroy, valueFromRaw, valueToRaw, RawValue); +using_cdeq(X, Value, valueCompare); +using_cdeq(X, Value, valueCompare, valueDel, valueClone); +using_cdeq(X, Value, valueCompareRaw, valueDel, valueFromRaw, valueToRaw, RawValue); using_cdeq_str(); ``` diff --git a/docs/clist_api.md b/docs/clist_api.md index f6772aa0..5a8cea31 100644 --- a/docs/clist_api.md +++ b/docs/clist_api.md @@ -18,9 +18,9 @@ See the c++ class [std::forward_list](https://en.cppreference.com/w/cpp/containe ```c using_clist(X, Value); -using_clist(X, Value, valueCompareRaw); -using_clist(X, Value, valueCompareRaw, valueDestroy); -using_clist(X, Value, valueCompareRaw, valueDestroy, valueFromRaw, valueToRaw, RawValue); +using_clist(X, Value, valueCompare); +using_clist(X, Value, valueCompare, valueDel, valueClone); +using_clist(X, Value, valueCompareRaw, valueDel, valueFromRaw, valueToRaw, RawValue); using_clist_str() ``` diff --git a/docs/cmap_api.md b/docs/cmap_api.md index 614e48c4..11397371 100644 --- a/docs/cmap_api.md +++ b/docs/cmap_api.md @@ -11,21 +11,21 @@ See the c++ class [std::unordered_map](https://en.cppreference.com/w/cpp/contain ```c using_cmap(X, Key, Mapped); using_cmap(X, Key, Mapped, keyEquals, keyHash); -using_cmap(X, Key, Mapped, keyEquals, keyHash, mappedDestroy); -using_cmap(X, Key, Mapped, keyEquals, keyHash, mappedDestroy, mappedFromRaw, mappedToRaw, RawMapped); -using_cmap(X, Key, Mapped, keyEqualsRaw, keyHashRaw, mappedDestroy, mappedFromRaw, mappedToRaw, RawMapped, - keyDestroy, keyFromRaw, keyToRaw, RawKey); -using_cmap_keydef(X, Key, Mapped, keyEquals, keyHash, keyDestroy); -using_cmap_keydef(X, Key, Mapped, keyEqualsRaw, keyHashRaw, keyDestroy, keyFromRaw, keyToRaw, RawKey); +using_cmap(X, Key, Mapped, keyEquals, keyHash, mappedDel, mappedClone); +using_cmap(X, Key, Mapped, keyEquals, keyHash, mappedDel, mappedFromRaw, mappedToRaw, RawMapped); +using_cmap(X, Key, Mapped, keyEqualsRaw, keyHashRaw, mappedDel, mappedFromRaw, mappedToRaw, RawMapped, + keyDel, keyFromRaw, keyToRaw, RawKey); +using_cmap_keydef(X, Key, Mapped, keyEquals, keyHash, keyDel, keyClone); +using_cmap_keydef(X, Key, Mapped, keyEqualsRaw, keyHashRaw, keyDel, keyFromRaw, keyToRaw, RawKey); using_cmap_strkey(X, Mapped); // using_cmap(X, cstr, Mapped, ...) -using_cmap_strkey(X, Mapped, mappedDestroy); -using_cmap_strkey(X, Mapped, mappedDestroy, mappedFromRaw, mappedToRaw, RawMapped); +using_cmap_strkey(X, Mapped, mappedDel, mappedClone); +using_cmap_strkey(X, Mapped, mappedDel, mappedFromRaw, mappedToRaw, RawMapped); using_cmap_strval(X, Key); // using_cmap(X, Key, cstr, ...) using_cmap_strval(X, Key, keyEquals, keyHash); -using_cmap_strval(X, Key, keyEquals, keyHash, keyDestroy); -using_cmap_strval(X, Key, keyEqualsRaw, keyHashRaw, keyDestroy, keyFromRaw, keyToRaw, RawKey); +using_cmap_strval(X, Key, keyEquals, keyHash, keyDel, keyClone); +using_cmap_strval(X, Key, keyEqualsRaw, keyHashRaw, keyDel, keyFromRaw, keyToRaw, RawKey); using_cmap_str() // using_cmap(str, cstr, cstr, ...) ``` @@ -77,18 +77,16 @@ cmap_X_iter_t cmap_X_begin(cmap_X* self); cmap_X_iter_t cmap_X_end(cmap_X* self); void cmap_X_next(cmap_X_iter_t* it); cmap_X_mapped_t* cmap_X_itval(cmap_X_iter_t it); - -cmap_X_value_t cmap_X_value_clone(cmap_X_value_t val); -void cmap_X_value_del(cmap_X_value_t* val); ``` ``` uint64_t c_default_hash(const void *data, size_t len); uint64_t c_default_hash32(const void* data, size_t len=4); uint64_t c_default_hash64(const void* data, size_t len=8); int c_default_equals(const RawKey* a, const RawKey* b); -void c_default_destruct(Value* val); -Value c_default_fromraw(RawValue raw); -RawValue c_default_toraw(Value* val); +void c_plain_del(Type* val); +Value c_no_clone(Type val); +Value c_plain_fromraw(RawType raw); +RawType c_plain_toraw(Type* val); ``` ## Types @@ -200,7 +198,7 @@ Demonstrate cmap with plain-old-data key type Vec3i and int as mapped type: cmap typedef struct { int x, y, z; } Vec3i; -using_cmap(v3, Vec3i, int, c_memcmp_equals, // compare Vec3i bitwise +using_cmap(v3, Vec3i, int, c_plain_equals, // compare Vec3i bitwise c_default_hash); // hash Vec3i bitwise. int main() diff --git a/docs/cptr_api.md b/docs/cptr_api.md index b924b55c..23cb4d41 100644 --- a/docs/cptr_api.md +++ b/docs/cptr_api.md @@ -11,11 +11,11 @@ The pointed-to elements are automatically destructed and deleted when the contai ```c using_cptr(X, Value); using_cptr(X, Value, valueCompare); -using_cptr(X, Value, valueCompare, valueDestroy); +using_cptr(X, Value, valueCompare, valueDel); using_csptr(X, Value); using_csptr(X, Value, valueCompare); -using_csptr(X, Value, valueCompare, valueDestroy); +using_csptr(X, Value, valueCompare, valueDel); ``` The macro `using_cptr()` must be instantiated in the global scope. `X` is a type tag name and will affect the names of all cptr types and methods. E.g. declaring `using_cptr(my, cvec_my);`, @@ -166,16 +166,15 @@ void Person_del(Person* p) { } // 1. cvec of Person struct; emplace and cloning disabled. -using_cvec(pe, Person, Person_compare, Person_del); +using_cvec(pe, Person, Person_compare, Person_del, c_no_clone); // 2. cvec of raw/owned pointers to Person; emplace and cloning disabled. using_cptr(pe, Person, Person_compare, Person_del); -using_cvec(pp, Person*, cptr_pe_compare, cptr_pe_del); +using_cvec(pp, Person*, cptr_pe_compare, cptr_pe_del, c_no_clone); -// 3. cvec of shared-ptr to Person. +// 3. cvec of shared-ptr to Person - with emplace_back() and cloning cvec ENABLED. using_csptr(pe, Person, Person_compare, Person_del); -// To enable emplace_back() and cloning cvec, add 3 more args: -using_cvec(ps, csptr_pe, csptr_pe_compare, csptr_pe_del, csptr_pe_clone, c_default_toraw, csptr_pe); +using_cvec(ps, csptr_pe, csptr_pe_compare, csptr_pe_del, csptr_pe_clone); const char* names[] = { "Joe", "Jordan", @@ -206,6 +205,7 @@ int main() { // Append a shared copy of vec3.data[0]. Will only be destructed once! cvec_ps_emplace_back(&vec3, vec3.data[0]); + //cvec_ps_push_back(&vec3, csptr_pe_clone(vec3.data[0])); // alternativ puts("\n3. Sorted vec3 of shared-pointer to Person:"); cvec_ps_sort(&vec3); c_foreach (i, cvec_ps, vec3) @@ -214,12 +214,12 @@ int main() { // Share vec3.data[1] with elem1 variable. csptr_pe elem1 = csptr_pe_clone(vec3.data[1]); - puts("\nDestroy vec3:"); - cvec_ps_del(&vec3); // destroy the unique/unshared elements (two) - puts("\nDestroy vec2:"); - cvec_pp_del(&vec2); puts("\nDestroy vec1:"); cvec_pe_del(&vec1); + puts("\nDestroy vec2:"); + cvec_pp_del(&vec2); + puts("\nDestroy vec3:"); + cvec_ps_del(&vec3); puts("\nDestroy elem1:"); csptr_pe_del(&elem1); @@ -227,23 +227,25 @@ int main() { ``` Output: ``` -1. sorted cvec of Person : +1. Sorted vec1 of Person: Annie Aniston Jane Jacobs Joe Jordan -2. sorted cvec of pointer to Person : +2. Sorted vec2 of pointer to Person: Annie Aniston Jane Jacobs Joe Jordan -3. sorted cvec of shared-pointer to Person : +3. Sorted vec3 of shared-pointer to Person: Annie Aniston Jane Jacobs Joe Jordan + Joe Jordan -Destroy vec3: +Destroy vec1: del: Annie +del: Jane del: Joe Destroy vec2: @@ -251,11 +253,10 @@ del: Annie del: Jane del: Joe -Destroy vec1: +Destroy vec3: del: Annie -del: Jane del: Joe -Destroy elem: +Destroy elem1: del: Jane ``` diff --git a/docs/cset_api.md b/docs/cset_api.md index 526a93d7..45df2afb 100644 --- a/docs/cset_api.md +++ b/docs/cset_api.md @@ -8,9 +8,9 @@ A **cset** is an associative container that contains a set of unique objects of ```c
using_cset(X, Key);
-using_cset(X, Key, keyEqualsRaw, keyHashRaw);
-using_cset(X, Key, keyEqualsRaw, keyHashRaw, keyDestroy);
-using_cset(X, Key, keyEqualsRaw, keyHashRaw, keyDestroy, keyFromRaw, keyToRaw, RawKey);
+using_cset(X, Key, keyEquals, keyHash);
+using_cset(X, Key, keyEquals, keyHash, keyDel, keyClone);
+using_cset(X, Key, keyEqualsRaw, keyHashRaw, keyDel, keyFromRaw, keyToRaw, RawKey);
using_cset_str();
```
The macro `using_cset()` must be instantiated in the global scope. `X` is a type tag name and
@@ -59,9 +59,6 @@ cset_X_iter_t cset_X_begin(cset_X* self); cset_X_iter_t cset_X_end(cset_X* self);
void cset_X_next(cset_X_iter_t* it);
cset_X_value_t* cset_X_itval(cset_X_iter_t it);
-
-cset_X_value_t cset_X_value_clone(cset_X_value_t val);
-void cset_X_value_del(cset_X_value_t* val);
```
## Types
diff --git a/docs/csmap_api.md b/docs/csmap_api.md index d404aa79..96087706 100644 --- a/docs/csmap_api.md +++ b/docs/csmap_api.md @@ -10,21 +10,21 @@ See the c++ class [std::map](https://en.cppreference.com/w/cpp/container/map) fo ```c using_csmap(X, Key, Mapped); using_csmap(X, Key, Mapped, keyCompare); -using_csmap(X, Key, Mapped, keyCompare, mappedDestroy); -using_csmap(X, Key, Mapped, keyCompare, mappedDestroy, mappedFromRaw, mappedToRaw, RawMapped); -using_csmap(X, Key, Mapped, keyCompareRaw, mappedDestroy, mappedFromRaw, mappedToRaw, RawMapped, - keyDestroy, keyFromRaw, keyToRaw, RawKey); -using_csmap_keydef(X, Key, Mapped, keyCompare, keyDestroy); -using_csmap_keydef(X, Key, Mapped, keyCompareRaw, keyDestroy, keyFromRaw, keyToRaw, RawKey); +using_csmap(X, Key, Mapped, keyCompare, mappedDel, mappedClone); +using_csmap(X, Key, Mapped, keyCompare, mappedDel, mappedFromRaw, mappedToRaw, RawMapped); +using_csmap(X, Key, Mapped, keyCompareRaw, mappedDel, mappedFromRaw, mappedToRaw, RawMapped, + keyDel, keyFromRaw, keyToRaw, RawKey); +using_csmap_keydef(X, Key, Mapped, keyCompare, keyDel, keyClone); +using_csmap_keydef(X, Key, Mapped, keyCompareRaw, keyDel, keyFromRaw, keyToRaw, RawKey); using_csmap_strkey(X, Mapped); // using_csmap(X, cstr, Mapped, ...) -using_csmap_strkey(X, Mapped, mappedDestroy); -using_csmap_strkey(X, Mapped, mappedDestroy, mappedFromRaw, mappedToRaw, RawMapped); +using_csmap_strkey(X, Mapped, mappedDel, mappedClone); +using_csmap_strkey(X, Mapped, mappedDel, mappedFromRaw, mappedToRaw, RawMapped); using_csmap_strval(X, Key); // using_csmap(X, Key, cstr, ...) using_csmap_strval(X, Key, keyCompare); -using_csmap_strval(X, Key, keyCompare, keyDestroy); -using_csmap_strval(X, Key, keyCompareRaw, keyDestroy, keyFromRaw, keyToRaw, RawKey); +using_csmap_strval(X, Key, keyCompare, keyDel, keyClone); +using_csmap_strval(X, Key, keyCompareRaw, keyDel, keyFromRaw, keyToRaw, RawKey); using_csmap_str(); // using_csmap(str, cstr, cstr, ...) ``` @@ -70,9 +70,6 @@ csmap_X_iter_t csmap_X_begin(csmap_X* self); csmap_X_iter_t csmap_X_end(csmap_X* self); void csmap_X_next(csmap_X_iter_t* it); csmap_X_mapped_t* csmap_X_itval(csmap_X_iter_t it); - -csmap_X_value_t csmap_X_value_clone(csmap_X_value_t val); -void csmap_X_value_del(csmap_X_value_t* val); ``` ## Types diff --git a/docs/csset_api.md b/docs/csset_api.md index 7a0085f5..96f7357a 100644 --- a/docs/csset_api.md +++ b/docs/csset_api.md @@ -10,8 +10,8 @@ See the c++ class [std::set](https://en.cppreference.com/w/cpp/container/set) fo ```c
using_csset(X, Key);
using_csset(X, Key, keyCompare);
-using_csset(X, Key, keyCompare, keyDestroy);
-using_csset(X, Key, keyCompare, keyDestroy, keyFromRaw, keyToRaw, RawKey);
+using_csset(X, Key, keyCompare, keyDel, keyClone);
+using_csset(X, Key, keyCompareRaw, keyDel, keyFromRaw, keyToRaw, RawKey);
using_csset_str();
```
The macro `using_csset()` must be instantiated in the global scope. `X` is a type tag name and
@@ -54,9 +54,6 @@ csset_X_iter_t csset_X_begin(csset_X* self); csset_X_iter_t csset_X_end(csset_X* self);
void csset_X_next(csset_X_iter_t* it);
csset_X_value_t* csset_X_itval(csset_X_iter_t it);
-
-csset_X_value_t csset_X_value_clone(csset_X_value_t val);
-void csset_X_value_del(csset_X_value_t* val);
```
## Types
diff --git a/docs/cvec_api.md b/docs/cvec_api.md index b6aa841f..d3ac1e10 100644 --- a/docs/cvec_api.md +++ b/docs/cvec_api.md @@ -13,9 +13,9 @@ See the c++ class [std::vector](https://en.cppreference.com/w/cpp/container/vect ```c using_cvec(X, Value); -using_cvec(X, Value, valueCompareRaw); -using_cvec(X, Value, valueCompareRaw, valueDestroy); -using_cvec(X, Value, valueCompareRaw, valueDestroy, valueFromRaw, valueToRaw, RawValue); +using_cvec(X, Value, valueCompare); +using_cvec(X, Value, valueCompare, valueDel, valueClone); +using_cvec(X, Value, valueCompareRaw, valueDel, valueFromRaw, valueToRaw, RawValue); using_cvec_str() ``` |
