summaryrefslogtreecommitdiffhomepage
path: root/include/stc
AgeCommit message (Collapse)Author
2022-05-25Final reorg of cbits.h. This was really an experiment to make it dual ↵Tyge Løvset
fixed-sized and dynamic.
2022-05-24API change: cbits now uses container pointers args in all member functions, ↵Tyge Løvset
except clone() ... for now. All containers may get same treatment! which will be a rather big API change. This was needed after testing fixed size cbits performance with pass-by-value: was very slow for large bitsets: now faster than std::bitset<>. Also reverted previous cbits_set_value(): much faster because it is branchless.
2022-05-24Changed c_forpair(k, v, Map, map) so that k and v are pointers instead of ↵Tyge Løvset
values. This to make it consistent with c_foreach, c_apply, c_apply_arr.
2022-05-24Reverted back to some older codeTyge Løvset
2022-05-23Bugfix: cstr_find_s() returned bool. Fix return size_t.Tyge Løvset
2022-05-23Renamed cstr_find_n(self, search, pos, nmax) => cstr_find_from(self, pos, ↵Tyge Løvset
search), and cstr_replace_first(self, search, repl) => cstr_replace_first(self, pos, search, repl). // returns pos after replaced str.
2022-05-23Small simplify in cbits.hTyge Løvset
2022-05-23Finished cbits.h ; only inlined funcs are templated.Tyge Løvset
2022-05-22Changed c_apply(v, ..) macro to make it more consistent with c_apply_arr(v, ↵Tyge Løvset
..) and c_foreach (i, ..): v changed to a pointer - not value. Note: also c_pair(v) is changed correspondingly, so usage with c_apply(v) is unchanged.
2022-05-22Rewrote cbits to make it dual: fixed-sized or dynamically sized by adding ↵Tyge Løvset
optional i_len template parameter. Renamed cbits_set_values() to cbits_set_pattern(). Added example bits2.c
2022-05-20Removed cstr_from_replace_all_sv(), Added cstr_replace_first(). Renamed ↵Tyge Løvset
argument names.
2022-05-19Some extra test on template params. Update shape.c example.Tyge Løvset
2022-05-19Added _toval() in carc and cbox. Added dynamic polymorphism example, shape.c.Tyge Løvset
2022-05-18Formatted carc.h cbox.h: also simplified; removed _get() -> was same as ↵Tyge Løvset
_toraw(), see template.h diff.
2022-05-16Changed contructor names in carr2/carr3 to be more consistent with other ↵Tyge Løvset
containers.
2022-05-13Changed csview c_PRIsv macro. Now must be prefixed with "%", to match with ↵Tyge Løvset
PRIxYYY macros from inttypes.h. E.g. printf("%40" c_PRIsv "\n", c_ARGsv(sv)); to specify 40 character right aligned output of sv. Check your usage.
2022-05-13Added cstr_assign_s(), and changed return type to char* for cstr_assign*() ↵Tyge Løvset
and cstr_append*(), i.e. the pointer to the (possible new) string buffer.
2022-05-13Fixed bug in cstr_assign_n(). Thanks to murtazahakim for reporting.Tyge Løvset
2022-05-13constness and code formatting.Tyge Lovset
2022-05-12i_keyfrom/i_valfrom no longer used with i_key_bind/i_val_bind. Is considered ↵Tyge Løvset
optional for enabling emplace.
2022-05-12Fixed issues with i_keyfrom/i_valfromTyge Løvset
2022-05-12Reverted some back, and made c_less_cmp() safer.Tyge Løvset
2022-05-11Added robustness (hopefully).Tyge Løvset
2022-05-11Added i_less template param as alternative to i_cmp.Tyge Løvset
2022-05-11minor cleanup cmapTyge Løvset
2022-05-10Renamed (newish) functions expand_uninitialized to expand_uninit. + some ↵Tyge Lovset
minor changes.
2022-05-09Formatting only.Tyge Løvset
2022-05-09Small improvement in c_default_hash()Tyge Løvset
2022-05-07Updated alt/csmap.h to be synced with current csmap.h; alt-version allocates ↵Tyge Løvset
each node separately on the heap, regular uses an array. Now alt-version of csmap and cstr can be used by defining -DSTC_CSMAP_V1 and -DSTC_CSTR_V1 when compiling. Improved code readability by making line breaks after if and while (also cmap.h). Note, the alt-versions may be removed in the future, but the alt csmap.h may be made into an intrusive sorted map, where the creation and destruction of nodes must be done by the user.
2022-05-06Changed find_if() again. Now 3 iterator variants only.Tyge Løvset
2022-05-06Internal: made c_sv(lit) available after include ccommon.h and forward.hTyge Lovset
2022-05-06Made cstr_buffer() func. public, and docs for cstr_sv() - convert to csview.Tyge Lovset
2022-05-05Swapped two arguments in c_find_if/c_find_it. Changed c_container_of().Tyge Løvset
2022-05-05Added type-checked c_container_of() macro using typeof (C23, gcc, clang, ↵Tyge Løvset
tcc). c_unchecked_container_of() must be used by lib.
2022-05-04Small change in find_if/it macro + doc of index variable.Tyge Løvset
2022-05-04Added c_find_if, c_find_it macros: linear search in containers. Removed ↵Tyge Løvset
c_apply_cnt macro.
2022-05-03Minor adjustments to previous commit.Tyge Løvset
2022-05-03Added push front/back of existing nodes.Tyge Løvset
2022-05-02Merge branch 'master' of github.com:tylov/STCTyge Løvset
2022-05-02Fix linkage issue with clist_X_count().Tyge Løvset
2022-05-02Fixed undefined behaviour (but working) code in carc.Tyge Løvset
2022-05-01- Array expansions (insert, reserve, clone) are now checked for malloc ↵Tyge Lovset
nomem, and result can be checked by user in cvec, cdeq, cmap, csmap (cvec/cdeq insert functions now returns pointer, not iter). - Refactoring.
2022-04-29cmap/csmap cleanup incl. docs.Tyge Løvset
2022-04-28_i_implement moved to user-level template parameter as i_implement. Removed ↵Tyge Løvset
i_opt flag c_implement. Removed OLD include/alt/clist.h
2022-04-28Finalized template.h logic.Tyge Løvset
2022-04-27Docs only update for carc/cbox.Tyge Løvset
2022-04-27Final fixes to carc and cbox; Reverted constructor name to make; (similarity ↵Tyge Løvset
to make_shared/make_unique in c++).
2022-04-27Removed cbox_X_make() and carc_X_make() when i_rawval was not defined, i.e. ↵Tyge Løvset
like emplace is removed in other containers.
2022-04-27Bugfix: cbox didn't use i_keyclone, and therefore did not deep clone properly.Tyge Løvset
2022-04-27Added cstr_expand_uninitialized().Tyge Løvset