summaryrefslogtreecommitdiffhomepage
path: root/include/stc/cqueue.h
AgeCommit message (Collapse)Author
2023-07-23Internal: Reorganized cqueue and cdeq: spliced out header and impl in ↵tylov
cqueue.h to priv/cqueue_hdr.h and priv/cqueue_imp.h.
2023-07-12Changed docs and examples to use i_key* template parameters instead of ↵tylov
i_val* for all non-maps. Renamed c_ASSERT() to c_assert() and added optional message parameter to c_static_assert().
2023-06-29Usage change: comparison is no longer enabled when specifying i_val for ↵Tyge Lovset
cvec, cdeq and clist (like cstack and cqueue). Comparison functions are still required when specifying i_valclass. For fundamental/native types like integers, floats etc., define i_native_cmp along with i_val instead of i_less/i_cmp/i_eq.
2023-06-20Internal only:Tyge Løvset
Renamed _cx_memb() macro to _cx_MEMB() Renamed _cx_self macro to _cx_Self
2023-06-20Minor internals.Tyge Løvset
2023-06-14Fixed a bug in cco_await_on(), and added _pull() function to random access ↵Tyge Løvset
containers (moves element out of container, ie no drop).
2023-06-11Added priv/linkage.h and renamed priv/template2.h => priv/template_undef.h.Tyge Løvset
Make all examples c++ compatible, except those using cspan.h Removed: crange_obj() Renamed: crange_make() => crange_init() Renamed: cspan_make() => cspan_init() Renamed: cstr_NULL => cstr_null Renamed: csview_NULL => csview_null
2023-06-09Fixed issues with linking params i_implement, i_extern.Tyge Løvset
2023-05-19Minor cbits change.Tyge Lovset
2023-05-19Added container equality function to docs _eq(c1, c2).Tyge Lovset
2023-05-19Fixed an iter return bug in cdeq_insert_uninit().Tyge Lovset
2023-05-18Fixing find_in() in cdeq, and add support c_eraseremove_if() for cqueue and ↵Tyge Løvset
cdeq.
2023-05-18Huge update: cqueue and cdeq completely rewritten. cvec and cdeq API ↵Tyge Lovset
harmonized. Docs update/improved.
2023-04-28Removed crandom.h and altnames.h. Housholding.Tyge Løvset
2023-03-30Added crand.h - Alternative API to crandom.h, which will be deprecated.Tyge Løvset
2023-02-08Changed to use lowercase flow-control macros in examples (uppercase will ↵Tyge Løvset
still be supported). Improved many examples to use c_make() to init containers.
2023-01-04Bump to 2023Tyge Løvset
2022-12-31Internally renamed ccommon.h macros to uppercase. Lowercase macros are still ↵Tyge Løvset
supported via include/stc/priv/lowcase.h.
2022-07-06Version 3.7. Make sure to check NEWS/Changes in README.md for a few ↵Tyge Løvset
code-breaking API changes.
2022-06-01Converted all files with DOS line endings to LINUX.Tyge Løvset
2022-04-22Readded push()/emplace() to all containers missing them. Made _hash function ↵Tyge Løvset
required for i_key_bind, _eq is derived from _cmp.
2022-04-21Switched to use i_key as primary template type parameter for all containers. ↵Tyge Løvset
Only maps will actually use i_val. Users can still specify i_val for non-maps, so there are no usability changes, other than the option to use i_key always, which makes the implementation and switching between container types simpler.
2022-04-18crandom.h: Renamed *_init(..) functions to *_new(..). Old names are kept but ↵Tyge Løvset
deprecated.
2022-04-15Updated README.md docs on template args! Reverted to put() as alias for ↵Tyge Løvset
insert_or_assign() for maps. Reverted/added push_back()/emplace_back()/pop_back() to cstack.
2022-04-10Fixed regression bug: cqueue_pop() did pop_back(), fixed to do pop_front().Tyge Løvset
Removed pop() functions in clist and cdeq as they are no standard. push() will push_back() for both.
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-03Bump to 2022.Tyge Løvset
2021-12-02Breaking changes for i_fwd and i_cmp_none:Tyge Løvset
- Removed: i_cmp_none and i_fwd (replaced by c_no_compare and c_is_fwd args to i_opt). - Added compile-time disabling of clonable and comparable container elements, controlled by i_opt (c_no_clone | c_no_compare) - Added i_opt: can define multiple compile-time options: c_no_compare, c_no_clone, c_no_atomic, c_is_fwd: may be combined with | separator. - Except for csptr, when i_del / i_valdel / i_keydel is defined, also i_from / i_keyfrom / i_valfrom must be defined or i_opt c_no_clone. - For struct elements, either i_cmp must be defined (as before), or define i_opt c_no_compare for non-associative containers.
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-12Renamed input macro i_module to i_prefix. Replaced astar.c example.Tyge Løvset
Now supports that user defines i_prefix.
2021-09-10Added support for cqueue.h Added test.Tyge Løvset
2021-09-05New usage style. only cvec is functional. see vec_test_new.cTyge Løvset
2021-08-19Maintenance update. Added stc32_rand() to crandom.h, doc fixes and cqueue.h ↵Tyge Løvset
updated to have its own size counter.
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-20Moved stc folder into include folder.Tyge Løvset