diff options
| -rw-r--r-- | docs/algorithm_api.md | 11 | ||||
| -rw-r--r-- | include/stc/ccommon.h | 12 | ||||
| -rw-r--r-- | include/stc/priv/template.h | 2 |
3 files changed, 13 insertions, 12 deletions
diff --git a/docs/algorithm_api.md b/docs/algorithm_api.md index 40ff32d6..127aa120 100644 --- a/docs/algorithm_api.md +++ b/docs/algorithm_api.md @@ -275,12 +275,13 @@ int* ip = c_const_cast(int*, cs); // issues a warning! ### Predefined template parameter functions -**crawstr** - Non-owned `const char*` "class" element type: `#define i_keyclass crawstr` +**ccharptr** - Non-owning `const char*` "class" element type: `#define i_keyclass ccharptr` ```c -typedef const char* crawstr; -int crawstr_cmp(const crawstr* x, const crawstr* y); -bool crawstr_eq(const crawstr* x, const crawstr* y); -uint64_t crawstr_hash(const crawstr* x); +typedef const char* ccharptr; +int ccharptr_cmp(const ccharptr* x, const ccharptr* y); +uint64_t ccharptr_hash(const ccharptr* x); +ccharptr ccharptr_clone(ccharptr sp); +void ccharptr_drop(ccharptr* x); ``` Default implementations ```c diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h index 77f754fa..2528b94f 100644 --- a/include/stc/ccommon.h +++ b/include/stc/ccommon.h @@ -124,12 +124,12 @@ typedef long long _llong; #define c_litstrlen(literal) (c_sizeof("" literal) - 1) #define c_arraylen(a) (intptr_t)(sizeof(a)/sizeof 0[a]) -// Non-owning c-string -typedef const char* crawstr; -#define crawstr_clone(s) (s) -#define crawstr_drop(p) ((void)p) -#define crawstr_cmp(xp, yp) strcmp(*(xp), *(yp)) -#define crawstr_hash(p) cstrhash(*(p)) +// Non-owning c-string "class" +typedef const char* ccharptr; +#define ccharptr_cmp(xp, yp) strcmp(*(xp), *(yp)) +#define ccharptr_hash(p) cstrhash(*(p)) +#define ccharptr_clone(s) (s) +#define ccharptr_drop(p) ((void)p) #define c_sv(...) c_MACRO_OVERLOAD(c_sv, __VA_ARGS__) #define c_sv_1(lit) c_sv_2(lit, c_litstrlen(lit)) diff --git a/include/stc/priv/template.h b/include/stc/priv/template.h index 0f4ac893..49b4d8da 100644 --- a/include/stc/priv/template.h +++ b/include/stc/priv/template.h @@ -111,7 +111,7 @@ #if defined i_key_str #define i_keyclass cstr - #define i_rawclass crawstr + #define i_rawclass ccharptr #ifndef i_tag #define i_tag str #endif |
