summaryrefslogtreecommitdiffhomepage
path: root/include/stc/cdeq.h
AgeCommit message (Collapse)Author
2022-08-15Two more iter bugs fix.Tyge Lovset
2022-08-15Improved docs/ex. Fix range bug when container is empty cvec/cdeq.Tyge Lovset
2022-08-12Renamed cdeq/cvec *_range() functions again (revert). Call alloc macros in ↵Tyge Løvset
cregex.
2022-08-12More misc changes carc/cbox, cdeq/cvec.Tyge Lovset
2022-08-11cvec/cdeq insert/erase ranges fixes.Tyge Løvset
2022-08-11Minor formatting.Tyge Lovset
2022-08-11Renamed all iter members ._end to .end, to make them "public".Tyge Lovset
2022-08-11API Change cvec/cdeq: Return iter from all range operations instead of pointers.Tyge Lovset
2022-08-11Code formatting only.Tyge Lovset
2022-08-10Fixed cdeq_begin(). Optimized c_foreach: only use one iter.Tyge Løvset
2022-08-10Fixed cdeq, cvec, cmap and cstack: iterators .ref is now NULL when it is ↵Tyge Løvset
end(). clist and csmap/cset already has this property.
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-21Renamed expand_uninit() functions to insert_uninit() / append_uninit().Tyge Løvset
2022-06-01Converted all files with DOS line endings to LINUX.Tyge Løvset
2022-05-29Internal: Changed using i_keyraw to using _cx_raw or _cx_rawkey typedefs: ↵Tyge Lovset
avoids problem when i_keyraw is pointer.
2022-05-13constness and code formatting.Tyge Lovset
2022-05-12Fixed issues with i_keyfrom/i_valfromTyge 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-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-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-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-20Support for cloning containers with carc and cbox.Tyge Lovset
Disabled emplace methods for containers with carc and cbox.
2022-04-18Removed i_drop and i_from template specifiers to reduce redundancies and add ↵Tyge Lovset
clarity (error given if used): use i_valdrop/i_valfrom and i_keydrop/i_keyfrom instead. Added missing at_mut() function to cdeq.
2022-04-15Adding comment to #endif's.Tyge Løvset
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-10Parenthesized args in calls to i_keyfrom(c), i_keyto(p) i_valfrom(c), ↵Tyge Løvset
i_valto(p), and i_keydrop(p) - can be defined as macro without parenthesized args.
2022-04-10Parenthesized args in calls to i_cmp(x, y), i_eq(x, y) and i_hash(x, len) - ↵Tyge Løvset
can be defined as macro without parenthesized args.
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-04-09Optimizing push_back() cvec/cdeq and some minor stuff.Tyge Lovset
2022-04-09Universally added a put() function to all containers.Tyge Løvset
2022-04-07Partly reverted (auto defined _i_no_emplace): emplace functions only ↵Tyge Løvset
available when either i_valraw or i_keyraw was defined. Avoids potensial bugs.
2022-04-02Internal refactoring/macro rename.Tyge Lovset
2022-04-01Simplified internal logic on enabling default cloningTyge Løvset
2022-03-16Bugfix: carc and cbox cmp functions had bug.Tyge Løvset
Renamed: i_key_sptr / i_val_sptr to i_key_arcbox / i_val_arcbox. Other smaller updates.
2022-01-16Made private functions (not called by header inlines) always static. Added ↵Tyge Løvset
required param tp examples/regex1.c.
2022-01-04Removed two more false positive gcc -O2 warnings. Improved c_forpair macro. ↵Tyge Løvset
Updated checkauto.ll.
2022-01-03Bump to 2022.Tyge Løvset
2022-01-02Simplified and improved linkage configuration. Reorganized crandom.h a bit.Tyge Løvset
May define "i_opt c_shared", or "i_opt c_static" to specify individual container linkage, based on if STC_HEADER is defined, i.e static linkage is default, STC_HEADER defined makes shared symbols default.
2022-01-01Corrected linking macro settings.Tyge Løvset
2021-12-23Removed emplace functions if not i_valraw or i_keyraw is defined. ↵Tyge Løvset
Safety/optimize measure.
2021-12-22Renamed '_rawvalue\b' to '_raw'Tyge Løvset
2021-12-19First commit for Version 3 of STC. Main changes are consistent rename of ↵Tyge Løvset
'_del' to '_drop' and '_compare' to '_cmp'. Also i_key_ref (earlier i_key_sptr) and i_val_ref replaced by more general i_key_bind/i_val_bind.
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-11-25Updated int params constness. Updated random.c example.Tyge Løvset
2021-11-24Deprecated c_no_compare(). Define i_cmp_none instead when you have/want no ↵Tyge Løvset
element comparison for cvec, cdeq, clist, csptr. Will give compile time error if functions depending on comparisons are used.
2021-11-21Made none mutable integers into const variables. Improved cmap_X_reserve() impl.Tyge Løvset
2021-11-21Changed reverse() and resize() to return false if mem alloc failed.Tyge Løvset
2021-11-03Renamed cnt_X_getmut() to cnt_X_get_mut().Tyge Lovset