From c2ed81e1d1de503b9264e7c03bcc7087a270df94 Mon Sep 17 00:00:00 2001 From: Tyge Lovset Date: Mon, 18 Apr 2022 15:54:14 +0200 Subject: Renamed newly added map function put_r() to put_raw() - alias for emplace_or_assign() for symetri with insert_or_assign()/put(). Experimental, may be removed. --- README.md | 14 +++++++------- docs/cmap_api.md | 2 +- docs/csmap_api.md | 2 +- examples/mapmap.c | 7 ++++++- include/stc/cmap.h | 4 ++-- include/stc/csmap.h | 4 ++-- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 0ba24dcb..754f58f4 100644 --- a/README.md +++ b/README.md @@ -316,13 +316,13 @@ container. `i_valfrom/i_valfrom` are defined, the **emplace** functions are *not* available (or needed), as it can easier lead to mistakes. -| non-emplace: Move | emplace: Embedded copy | Container | -|:---------------------------|:-----------------------------|:--------------------------------------------| -| insert() | emplace() | cmap, csmap, cset, csset | -| insert_or_assign(), put() | emplace_or_assign(), put_r() | cmap, csmap | -| push() | emplace() | cqueue, cpque, cstack | -| push_back(), push() | emplace_back() | cdeq, clist, cvec | -| push_front() | emplace_front() | cdeq, clist | +| non-emplace: Move | emplace: Embedded copy | Container | +|:---------------------------|:-------------------------------|:--------------------------------------------| +| insert() | emplace() | cmap, csmap, cset, csset | +| insert_or_assign(), put() | emplace_or_assign(), put_raw() | cmap, csmap | +| push() | emplace() | cqueue, cpque, cstack | +| push_back(), push() | emplace_back() | cdeq, clist, cvec | +| push_front() | emplace_front() | cdeq, clist | Strings are the most commonly used non-trivial data type. STC containers have proper pre-defined definitions for cstr container elements, so they are fail-safe to use both with the **emplace** diff --git a/docs/cmap_api.md b/docs/cmap_api.md index 77577bd7..69257779 100644 --- a/docs/cmap_api.md +++ b/docs/cmap_api.md @@ -71,7 +71,7 @@ cmap_X_result cmap_X_put(cmap_X* self, i_key key, i_val mapped); cmap_X_result cmap_X_emplace(cmap_X* self, i_keyraw rkey, i_valraw rmapped); // no change if rkey in map cmap_X_result cmap_X_emplace_or_assign(cmap_X* self, i_keyraw rkey, i_valraw rmapped); // always update rmapped -cmap_X_result cmap_X_put_r(cmap_X* self, i_keyraw rkey, i_valraw rmapped); // alias for emplace_or_assign +cmap_X_result cmap_X_put_raw(cmap_X* self, i_keyraw rkey, i_valraw rmapped); // alias for emplace_or_assign size_t cmap_X_erase(cmap_X* self, i_keyraw rkey); // return 0 or 1 cmap_X_iter cmap_X_erase_at(cmap_X* self, cmap_X_iter it); // return iter after it diff --git a/docs/csmap_api.md b/docs/csmap_api.md index 4bdcb42b..012a7d58 100644 --- a/docs/csmap_api.md +++ b/docs/csmap_api.md @@ -67,7 +67,7 @@ csmap_X_result csmap_X_put(csmap_X* self, i_key key, i_val mapped); csmap_X_result csmap_X_emplace(csmap_X* self, i_keyraw rkey, i_valraw rmapped); // no change if rkey in map csmap_X_result csmap_X_emplace_or_assign(csmap_X* self, i_keyraw rkey, i_valraw rmapped); // always update rmapped -csmap_X_result csmap_X_put_r(csmap_X* self, i_keyraw rkey, i_valraw rmapped); // alias for emplace_or_assign +csmap_X_result csmap_X_put_raw(csmap_X* self, i_keyraw rkey, i_valraw rmapped); // alias for emplace_or_assign size_t csmap_X_erase(csmap_X* self, i_keyraw rkey); csmap_X_iter csmap_X_erase_at(csmap_X* self, csmap_X_iter it); // returns iter after it diff --git a/examples/mapmap.c b/examples/mapmap.c index 94b92a81..a8f0069c 100644 --- a/examples/mapmap.c +++ b/examples/mapmap.c @@ -3,12 +3,17 @@ #define i_type People #define i_key_str #define i_val_str -#define i_keydrop(p) (printf("kdrop: %s\n", cstr_str(p)), cstr_drop(p)) +#define i_keydrop(p) (printf("kdrop: %s\n", cstr_str(p)), cstr_drop(p)) // override #include #define i_type Departments #define i_key_str #define i_val_bind People +// Shorthand for: +//#define i_val People +//#define i_cmp People_cmp +//#define i_valfrom People_clone +//#define i_valdrop People_drop #include #define i_type Stack diff --git a/include/stc/cmap.h b/include/stc/cmap.h index 1a3e7944..7834c9b0 100644 --- a/include/stc/cmap.h +++ b/include/stc/cmap.h @@ -113,8 +113,8 @@ STC_INLINE bool _cx_memb(_contains)(const _cx_self* self, i_keyraw rkey) STC_API _cx_result _cx_memb(_insert_or_assign)(_cx_self* self, i_key _key, i_val _mapped); #if !defined _i_no_clone && !defined _i_no_emplace STC_API _cx_result _cx_memb(_emplace_or_assign)(_cx_self* self, i_keyraw rkey, i_valraw rmapped); - STC_INLINE _cx_result _cx_memb(_put_r)(_cx_self* self, i_keyraw rkey, i_valraw rmapped) - { return _cx_memb(_emplace_or_assign)(self, rkey, rmapped); } + STC_INLINE _cx_result _cx_memb(_put_raw)(_cx_self* self, i_keyraw rkey, i_valraw rmapped) + { return _cx_memb(_emplace_or_assign)(self, rkey, rmapped); } // alias #endif STC_INLINE _cx_result diff --git a/include/stc/csmap.h b/include/stc/csmap.h index a043d896..21b8f6e1 100644 --- a/include/stc/csmap.h +++ b/include/stc/csmap.h @@ -159,8 +159,8 @@ _cx_memb(_value_drop)(_cx_value* val) { #if !defined _i_no_clone && !defined _i_no_emplace STC_API _cx_result _cx_memb(_emplace_or_assign)(_cx_self* self, i_keyraw rkey, i_valraw rmapped); STC_INLINE _cx_result - _cx_memb(_put_r)(_cx_self* self, i_keyraw rkey, i_valraw rmapped) - { return _cx_memb(_emplace_or_assign)(self, rkey, rmapped); } + _cx_memb(_put_raw)(_cx_self* self, i_keyraw rkey, i_valraw rmapped) + { return _cx_memb(_emplace_or_assign)(self, rkey, rmapped); } // alias #endif STC_API _cx_result _cx_memb(_insert_or_assign)(_cx_self* self, i_key key, i_val mapped); -- cgit v1.2.3