summaryrefslogtreecommitdiffhomepage
path: root/include/stc/cpque.h
AgeCommit message (Collapse)Author
2023-08-01Added some checks that a proper i_cmp/(i_hash) is defined when i_keyraw ↵Tyge Løvset
conversion type is specified for maps. Advanced usage.
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-20Internal only:Tyge Løvset
Renamed _cx_memb() macro to _cx_MEMB() Renamed _cx_self macro to _cx_Self
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-09reverted cco_await_done => cco_await_at.Tyge Lovset
2023-04-28Removed crandom.h and altnames.h. Housholding.Tyge Løvset
2023-04-05Internal: renamed untemplate.h to template2.hTyge Løvset
2023-04-03Split priv/template.h in two files to make mksingle.sh work.Tyge Løvset
2023-03-31Added stc/extend.h: A generalized way to type-safely extend a container with ↵Tyge Lovset
new members which can be accessed from the template parameters. See examples/functor.c
2023-03-29Removed i_less_functor, i_cmp_functor, i_eq_functor and i_hash_functor: not ↵Tyge Lovset
needed. Simplified cvec_X_eq() and cdeq_X_eq()
2023-02-07Added custom allocator per container type.Tyge Løvset
2023-02-01Massive update from unsigned sizes and indices to signed.Tyge Lovset
2023-01-31Converted all containers but the maps and examples to signed sizes and indices.Tyge Løvset
2023-01-31Reverted c_MALLOC, c_CALLOC, c_REALLOC and c_FREE to lowercase.Tyge Løvset
2023-01-27(Reverted) c_COMPOUND() to c_LITERAL().Tyge Løvset
2023-01-19Finish last commit. Most safe function macros are now preferred lowercase, ↵Tyge Løvset
whereas flow control macros (c_FOREACH, ..) are preferred uppercase.
2023-01-19Add a from_n() method to containers (and put_n() to maps), to support new ↵Tyge Løvset
initialization.
2023-01-14Merged cmspan into cspan. cspan is now multi-dimensional array view (also ↵Tyge Løvset
1-dimensional).
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-12-20Restructured folders: examples, benchmarks, tests into misc folder.Tyge Lovset
2022-12-19Renames:Tyge Løvset
cstr_null => cstr_NULL csview_null => csview_NULL cstr_npos => c_NPOS csview_npos => c_NPOS c_ARGsv(sv) => c_ARGSV(sv) c_init(x) => c_INIT(x)
2022-11-14Internal update.Tyge Løvset
2022-11-13Reverted forward declaration from c_declare_X back to c_forward_X, and the ↵Tyge Løvset
flag "i_opt c_declared" to "i_opt c_is_forward". Sorry about this, but hopefully not a widely used feature for most yet.
2022-11-05Added possibility to have per container-instance customizable compare/lookup ↵Tyge Løvset
functions (cmp, less, eq, hash) for priority queue and associative containers. Is achived by embedding the container in a struct along with function pointer(s) which can be accessed through the c_container_of() macro. See the updated cpque.c example in the examples folder.
2022-11-03Renamed forward_CONTAINER(...) => declare_CONTAINER(...),Tyge Løvset
and c_is_fwd => c_declared, for the i_opt option define.
2022-10-28Renamed semi-internal macro (used for c++ compability) c_make => c_init.Tyge Løvset
2022-09-23Added assert() checks in pop-functions.Tyge Løvset
2022-09-10Internal renamings to discourage use of private struct fields.Tyge Løvset
2022-08-18Some API updates cstr, csview with utf8. Added front()/back() to cstack.Tyge Lovset
2022-08-11Completed support for i_less().Tyge Løvset
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-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-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-15Adding comment to #endif's.Tyge Løvset
2022-04-11Added important parenthesizes around macro expressions.Tyge Løvset
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-10Parenthesized calls to i_drop(x) - can be defined as macro without ↵Tyge Løvset
parenthesis around arg.
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-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-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