From f352471e79cbdad71409ad5a679d03cab9634d43 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Tue, 30 Mar 2021 20:45:26 +0200 Subject: Added c_no clone default parameter to using_* if only del was specified. --- stc/cdeq.h | 8 +++++--- stc/clist.h | 4 +++- stc/cmap.h | 27 ++++++++++++++------------- stc/csmap.h | 24 ++++++++++++------------ stc/cvec.h | 4 +++- 5 files changed, 37 insertions(+), 30 deletions(-) diff --git a/stc/cdeq.h b/stc/cdeq.h index a543ff85..bb77f04c 100644 --- a/stc/cdeq.h +++ b/stc/cdeq.h @@ -31,9 +31,11 @@ #define using_cdeq_2(X, Value) \ using_cdeq_3(X, Value, c_default_compare) #define using_cdeq_3(X, Value, valueCompare) \ - using_cdeq_7(X, Value, valueCompare, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Value) -#define using_cdeq_5(X, Value, valueCompare, valueDel, valueFromRaw) \ - using_cdeq_7(X, Value, valueCompare, valueDel, valueFromRaw, c_trivial_toraw, Value) + using_cdeq_5(X, Value, valueCompare, c_trivial_del, c_trivial_fromraw) +#define using_cdeq_4(X, Value, valueCompare, valueDel) \ + using_cdeq_5(X, Value, valueCompare, valueDel, c_no_clone) +#define using_cdeq_5(X, Value, valueCompare, valueDel, valueClone) \ + using_cdeq_7(X, Value, valueCompare, valueDel, valueClone, c_trivial_toraw, Value) #define using_cdeq_str() \ using_cdeq_7(str, cstr_t, cstr_compare_raw, cstr_del, cstr_from, cstr_c_str, const char*) diff --git a/stc/clist.h b/stc/clist.h index 9b012d4e..ec431370 100644 --- a/stc/clist.h +++ b/stc/clist.h @@ -59,7 +59,9 @@ #define using_clist_2(X, Value) \ using_clist_3(X, Value, c_default_compare) #define using_clist_3(X, Value, valueCompare) \ - using_clist_7(X, Value, valueCompare, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Value) + using_clist_5(X, Value, valueCompare, c_trivial_del, c_trivial_fromraw) +#define using_clist_4(X, Value, valueCompare, valueDel) \ + using_clist_5(X, Value, valueCompare, valueDel, c_no_clone) #define using_clist_5(X, Value, valueCompare, valueDel, valueClone) \ using_clist_7(X, Value, valueCompare, valueDel, valueClone, c_trivial_toraw, Value) #define using_clist_str() \ diff --git a/stc/cmap.h b/stc/cmap.h index 2cc50271..f17ed995 100644 --- a/stc/cmap.h +++ b/stc/cmap.h @@ -62,11 +62,12 @@ typedef struct {size_t idx; uint_fast8_t hx;} chash_bucket_t; #define using_cmap_3(X, Key, Mapped) \ using_cmap_5(X, Key, Mapped, c_default_equals, c_default_hash) - #define using_cmap_5(X, Key, Mapped, keyEquals, keyHash) \ - using_cmap_9(X, Key, Mapped, keyEquals, keyHash, \ - c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Mapped) - + using_cmap_7(X, Key, Mapped, keyEquals, keyHash, \ + c_trivial_del, c_trivial_fromraw) +#define using_cmap_6(X, Key, Mapped, keyEquals, keyHash, mappedDel) \ + using_cmap_7(X, Key, Mapped, keyEquals, keyHash, \ + mappedDel, c_no_clone) #define using_cmap_7(X, Key, Mapped, keyEquals, keyHash, mappedDel, mappedClone) \ using_cmap_9(X, Key, Mapped, keyEquals, keyHash, \ mappedDel, mappedClone, c_trivial_toraw, Mapped) @@ -100,10 +101,10 @@ typedef struct {size_t idx; uint_fast8_t hx;} chash_bucket_t; #define using_cset_2(X, Key) \ using_cset_4(X, Key, c_default_equals, c_default_hash) - #define using_cset_4(X, Key, keyEquals, keyHash) \ - using_cset_8(X, Key, keyEquals, keyHash, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Key) - + using_cset_6(X, Key, keyEquals, keyHash, c_trivial_del, c_trivial_fromraw) +#define using_cset_5(X, Key, keyEquals, keyHash, keyDel) \ + using_cset_6(X, Key, keyEquals, keyHash, keyDel, c_no_clone) #define using_cset_6(X, Key, keyEquals, keyHash, keyDel, keyClone) \ using_cset_8(X, Key, keyEquals, keyHash, keyDel, keyClone, c_trivial_toraw, Key) @@ -124,11 +125,11 @@ typedef struct {size_t idx; uint_fast8_t hx;} chash_bucket_t; c_MACRO_OVERLOAD(using_cmap_strkey, __VA_ARGS__) #define using_cmap_strkey_2(X, Mapped) \ - _using_CHASH_strkey(X, cmap_, Mapped, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Mapped) - + using_cmap_strkey_4(X, Mapped, c_trivial_del, c_trivial_fromraw) +#define using_cmap_strkey_3(X, Mapped, mappedDel) \ + using_cmap_strkey_4(X, Mapped, mappedDel, c_no_clone) #define using_cmap_strkey_4(X, Mapped, mappedDel, mappedClone) \ _using_CHASH_strkey(X, cmap_, Mapped, mappedDel, mappedClone, c_trivial_toraw, Mapped) - #define using_cmap_strkey_6(X, Mapped, mappedDel, mappedFromRaw, mappedToRaw, RawMapped) \ _using_CHASH_strkey(X, cmap_, Mapped, mappedDel, mappedFromRaw, mappedToRaw, RawMapped) @@ -142,10 +143,10 @@ typedef struct {size_t idx; uint_fast8_t hx;} chash_bucket_t; #define using_cmap_strval_2(X, Key) \ using_cmap_strval_4(X, Key, c_default_equals, c_default_hash) - #define using_cmap_strval_4(X, Key, keyEquals, keyHash) \ - using_cmap_strval_8(X, Key, keyEquals, keyHash, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Key) - + using_cmap_strval_6(X, Key, keyEquals, keyHash, c_trivial_del, c_trivial_fromraw) +#define using_cmap_strval_5(X, Key, keyEquals, keyHash, keyDel) \ + using_cmap_strval_6(X, Key, keyEquals, keyHash, keyDel, c_no_clone) #define using_cmap_strval_6(X, Key, keyEquals, keyHash, keyDel, keyClone) \ using_cmap_strval_8(X, Key, keyEquals, keyHash, keyDel, keyClone, c_trivial_toraw, Key) diff --git a/stc/csmap.h b/stc/csmap.h index 81d4d63c..a6185ef7 100644 --- a/stc/csmap.h +++ b/stc/csmap.h @@ -48,10 +48,10 @@ int main(void) { #define using_csmap_3(X, Key, Mapped) \ using_csmap_4(X, Key, Mapped, c_default_compare) - #define using_csmap_4(X, Key, Mapped, keyCompare) \ - using_csmap_8(X, Key, Mapped, keyCompare, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Mapped) - + using_csmap_6(X, Key, Mapped, keyCompare, c_trivial_del, c_trivial_fromraw) +#define using_csmap_5(X, Key, Mapped, keyCompare, mappedDel) \ + using_csmap_6(X, Key, Mapped, keyCompare, mappedDel, c_no_clone) #define using_csmap_6(X, Key, Mapped, keyCompare, mappedDel, mappedClone) \ using_csmap_8(X, Key, Mapped, keyCompare, mappedDel, mappedClone, c_trivial_toraw, Mapped) @@ -83,10 +83,10 @@ int main(void) { #define using_csset_2(X, Key) \ using_csset_3(X, Key, c_default_compare) - #define using_csset_3(X, Key, keyCompare) \ - using_csset_7(X, Key, keyCompare, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Key) - + using_csset_5(X, Key, keyCompare, c_trivial_del, c_trivial_fromraw) +#define using_csset_4(X, Key, keyCompare, keyDel) \ + using_csset_5(X, Key, keyCompare, keyDel, c_no_clone) #define using_csset_5(X, Key, keyCompare, keyDel, keyClone) \ using_csset_7(X, Key, keyCompare, keyDel, keyClone, c_trivial_toraw, Key) @@ -107,11 +107,11 @@ int main(void) { c_MACRO_OVERLOAD(using_csmap_strkey, __VA_ARGS__) #define using_csmap_strkey_2(X, Mapped) \ - _using_AATREE_strkey(X, csmap_, Mapped, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Mapped) - + using_csmap_strkey_4(X, Mapped, c_trivial_del, c_trivial_fromraw) +#define using_csmap_strkey_3(X, Mapped, mappedDel) \ + using_csmap_strkey_4(X, Mapped, mappedDel, c_no_clone) #define using_csmap_strkey_4(X, Mapped, mappedDel, mappedClone) \ _using_AATREE_strkey(X, csmap_, Mapped, mappedDel, mappedClone, c_trivial_toraw, Mapped) - #define using_csmap_strkey_6(X, Mapped, mappedDel, mappedFromRaw, mappedToRaw, RawMapped) \ _using_AATREE_strkey(X, csmap_, Mapped, mappedDel, mappedFromRaw, mappedToRaw, RawMapped) @@ -125,10 +125,10 @@ int main(void) { #define using_csmap_strval_2(X, Key) \ using_csmap_strval_3(X, Key, c_default_compare) - #define using_csmap_strval_3(X, Key, keyCompare) \ - using_csmap_strval_7(X, Key, keyCompare, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Key) - + using_csmap_strval_5(X, Key, keyCompare, c_trivial_del, c_trivial_fromraw) +#define using_csmap_strval_4(X, Key, keyCompare, keyDel) \ + using_csmap_strval_5(X, Key, keyCompare, keyDel, c_no_clone) #define using_csmap_strval_5(X, Key, keyCompare, keyDel, keyClone) \ using_csmap_strval_7(X, Key, keyCompare, keyDel, keyClone, c_trivial_toraw, Key) diff --git a/stc/cvec.h b/stc/cvec.h index fdbf958d..4c1dcb8a 100644 --- a/stc/cvec.h +++ b/stc/cvec.h @@ -31,7 +31,9 @@ #define using_cvec_2(X, Value) \ using_cvec_3(X, Value, c_default_compare) #define using_cvec_3(X, Value, valueCompare) \ - using_cvec_7(X, Value, valueCompare, c_trivial_del, c_trivial_fromraw, c_trivial_toraw, Value) + using_cvec_5(X, Value, valueCompare, c_trivial_del, c_trivial_fromraw) +#define using_cvec_4(X, Value, valueCompare, valueDel) \ + using_cvec_5(X, Value, valueCompare, valueDel, c_no_clone) #define using_cvec_5(X, Value, valueCompare, valueDel, valueClone) \ using_cvec_7(X, Value, valueCompare, valueDel, valueClone, c_trivial_toraw, Value) #define using_cvec_str() \ -- cgit v1.2.3