summaryrefslogtreecommitdiffhomepage
path: root/examples/list.c
AgeCommit message (Collapse)Author
2022-12-20Restructured folders: examples, benchmarks, tests into misc folder.Tyge Lovset
2022-11-02Change to c_forwhile: takes start iter, not container.Tyge Løvset
Other minor updates.
2022-10-19Reverted back to c_forrrange from c_forloop. Still available but deprecated.Tyge Løvset
2022-09-26DEPRECATED: c_forrange(): replaced with c_forloop(). This uses 'long long' ↵Tyge Løvset
as iter type, i.e. "%lld" printf format. crange_from() renamed to crange_make(). More docs.
2022-09-23Reverted c_forrange() macro with 3 or more args: swapped 1st and 2nd arg again.Tyge Løvset
2022-09-23Renamed c_forloop* macros to more descriptive c_forwhile*.Tyge Løvset
2022-09-23Deprecated c_forarray, c_forarray_p macros - both replaced by c_forlist, and ↵Tyge Løvset
is consistent with other c_for* macros.
2022-09-22Renamed .idx => .index in c_forfilter() macroTyge Løvset
2022-09-21Added cstr_push(), cstr_pop() - push/pop one utf8 char.Tyge Løvset
Renamed c_forpred() to c_forloop() - used by c_forfiltered().
2022-08-06c_apply() deprecated: replaced with c_forarray() macro. Updated and improved ↵Tyge Løvset
README.md docs.
2022-07-31VERSION 3.9: API change in c_forrange() with >= 3 args. csview updates.Tyge Løvset
2022-06-01Converted all files with DOS line endings to LINUX.Tyge Løvset
2022-06-01Added src/libstc.c which implements all non-templated functions (e.g. from ↵Tyge Løvset
cstr, csview, cbits, crandom), but also clist.h mergesort. - Linking with this object file eliminates the need to define i_implement in one file for these types (or i_extern for non-templated functions in templated container, currently only clist.h)
2022-05-30Done refactoring:Tyge Løvset
- Non-templated types (cstr, csview, cbits, crandom) have no longer default static linking. Now i_header is defined, i.e. files are as headers only. ==> Define `i_implement` before file inclusion. Still possible to do static linkage by defining `i_static` before inclusion or global STC_STATIC. - Templated containers still have static linkage by default. - Renamed csview_substr(), csview_slice() to csview_substr_ex(), csview_slice_ex(). Added simpler inlined csview_substr(), csview_slice().
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-04-18crandom.h: Renamed *_init(..) functions to *_new(..). Old names are kept but ↵Tyge Løvset
deprecated.
2022-04-11Fixed an potential issue with c_eq in template.h and missing usage in clist.hTyge Lovset
2022-04-09- Switched from .._put() to .._push() as the "generic" method to add ↵Tyge Løvset
element to any container. - Changed clist_X_insert()/emplace() to clist_X_insert_at()/emplace_at() to make it consistent with cvec/cdeq. - Updated documentation.
2022-01-03"gcc/clang -O2 -Wall -std=c99 -pedantic" compiles examples with no warnings. ↵Tyge Løvset
More cleanups.
2021-12-29Removed warnings for MS cl -W2 and clang -pedantic -std=c99. No functional ↵Tyge Løvset
changes.
2021-12-22Changed the c_apply() and c_apply_pair() to one new c_apply() API. Added ↵Tyge Løvset
c_pair(v) for convenience.
2021-10-29Renamed ..._value_t -> ..._value, etc. Deprecated, still works for cvec, ↵Tyge Løvset
cdeq, cmap, csmap, cslist
2021-10-05Changed recommended order of defining template parameters.Tyge Løvset
2021-09-23Cleanup: Replaced c_emplace() macro with more general ↵Tyge Løvset
c_apply()/c_apply_pair() macros, and removed c_var() macro. Removed CX_emplace_items() member functions in containers used by c_emplace().
2021-09-20Renamed macros: breaking changes for Version 2.0!Tyge Lovset
c_forvar => c_autovar c_forscope => c_autoscope c_forauto => c_auto Removed: c_fordefer(x); use c_forscope(0, x) instead. Added: c_exitauto; // continue
2021-09-08Updated most examples to newstyle. Some changes in cpque/cstack.Tyge Løvset
2021-05-24Split c_fordefer() into c_forvar() and c_fordefer() macros.Tyge Løvset
2021-05-24Renamed c_with => c_fordefer, and removed c_withvar. Macros were too ↵Tyge Løvset
deceiving and hid the fact that it was for-loops. Now it is more explicit.
2021-05-18Added the new c_defer(), c_with(), c_withvar() macros into the examples.Tyge Løvset
2021-04-17Changed c_emplace_items(&cont, ctype, {...}) macro with c_emplace(ctype, ↵Tyge Løvset
cont, {...}): consistent with c_init(ctype, cont, {...}).
2021-04-02Rewrote clist API: Now in line with std::list API instead of ↵Tyge Løvset
std::forward_list, but still same single linked list rep. Weaker iterator validity, see updated docs.
2021-02-21Renamed emplace_put() to emplace_or_assign(). May add put() as alias to ↵Tyge Løvset
insert_or_assign().
2021-02-20Renamed push_items to emplace_nTyge Løvset
2021-01-24Improved cvec cdeq. Must be initied with cvec_X_init() and cdeq_X_init(). ↵Tyge Løvset
Not cvec_inits. Improved docs.
2021-01-21Reverted namings: crand to crandom, and copt to coption.Tyge Løvset
2020-12-28Reverted crand.h API back to rename crand_* to stc64_*, and crand_next() -> ↵Tyge Løvset
stc64_rand().
2020-12-17API change: Reverted back to original name used for .val in iterators to .refTyge Løvset
2020-12-16Renamed crandom to crand, including renaming of relevant files.Tyge Løvset
2020-12-16Reverted back API to easier naming scheme of crandom.h types and methods.Tyge Løvset
Highly optimized generation of unbiased uniform bounded random numbers. Only 33% overhead.
2020-12-14Reworked the crandom.h module. Changed API (sorry!), made uniform distr. ↵Tyge Løvset
unbiased. Removed 32-bit pcg32 PRNG.
2020-11-26Removed stc/cfmt.h, as _Generic requires C11. I have made it a gist: ↵Tyge Løvset
https://gist.github.com/tylov/bcc956a4779f1d14204e66a14f17beb9 All examples are reverted to use printf() instead of c_print().
2020-11-03renamed __init to _initsTyge Løvset
2020-11-02Changed (half)-internal *_INIT to *__init macros. Minor reformatting.Tyge Løvset
2020-10-26Updates examples using cfmt.h c_print().Tyge Løvset
2020-09-24Changed iter.get to iter.val member. Internal, but used external. Will not ↵Tyge Løvset
change again.
2020-09-20converted to c_forrange().Tyge Løvset
2020-09-18Changed <container>_ini macro constant to <container>_INIT, and ↵Tyge Løvset
<container>_destroy() to <container>_del.
2020-09-17Fixed range methods in cvec, and renamed typename_<container>(..) to ↵Tyge Løvset
using_<container>(..).
2020-09-16Minor.Tyge Løvset
2020-09-16Changed iterator API in cset and clist. From i.get->value to *i.getTyge Løvset