summaryrefslogtreecommitdiffhomepage
path: root/examples/new_sptr.c
AgeCommit message (Collapse)Author
2022-12-20Restructured folders: examples, benchmarks, tests into misc folder.Tyge Lovset
2022-10-24API CHANGE: Renamed input params for naming consisteny and usage:Tyge Løvset
i_key_class TYPE => i_keyclass TYPE i_val_class TYPE => i_valclass TYPE i_key_arcbox TYPE => i_keyboxed TYPE i_val_arcbox TYPE => i_valboxed TYPE i_key_bind, i_val_bind are removed.
2022-10-20Switch from #define i_val_bind to i_val_class and i_key_class.Tyge Løvset
i_val_bind/i_key_bind is deprecated but available for now.
2022-10-19- Removed deprecated carc_make and cbox_make (replaced by carc_from, cbox_from)Tyge Løvset
- Some improvements to template.h - Many smaller improvements to examples and docs.
2022-09-05Added cstr_append_fmt().Tyge Løvset
2022-09-02Change: carc and cbox defaults to pointer comparison when none of i_cmp, ↵Tyge Løvset
i_less or i_eq is specified. This removes annoying requirement.
2022-06-01Reverted to default static linkage of non-templated symbols (cstr, csview, ↵Tyge Løvset
..), as it gives smaller executables and is convenient for small applications. (no need to define i_implement when functions is used in one translaton unit only).
2022-06-01Converted all files with DOS line endings to LINUX.Tyge Løvset
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-04-28Finalized template.h logic.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-27Updated examples.Tyge Løvset
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-18Converted all example to use cstr_str(&s) instead of s.str to allow SSO ↵Tyge Løvset
string. Fixed misc warnings.
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.
2021-12-29Removed warnings for MS cl -W2 and clang -pedantic -std=c99. No functional ↵Tyge Løvset
changes.
2021-12-23Fix new_sptr.c example.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 csptr to carc. i_key/val_ref renamed to i_key/val_sptr. Change ↵Tyge Løvset
inspired by Rust Arc/Rc. cbox name is taken from Rust Box type.
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-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-12- Added **cbox** type: container of one element: similar to std::unique_ptr ↵Tyge Løvset
/ Rust Box. - Replaced example for **csptr** in docs. - Added [**c_forpair**](docs/ccommon_api.md) macro: for-loop with "structural binding" as in c++. - Deprecated *csptr_X_make()*. Renamed to *csptr_X_new()*. Corresponding **cbox** method is *cbox_X_new()*. - Deprecated *c_default_fromraw(raw)*. Renamed to *c_default_clone(raw)*. - Deprecated `i_key_csptr` / `i_val_csptr`. Use `i_key_ref` / `i_val_ref` when specifying containers with **csptr** or **cbox** elements. - Deprecated `i_cnt`. Use `i_type` instead to define the full container type name. - Bugfixes and docs updates.
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-10-28updated shootouts, fixed some warningsTyge Løvset
2021-10-06Remove side-effects from i_valdel() invocations in case it's a macro func.Tyge Lovset
2021-10-05Changed recommended order of defining template parameters.Tyge Løvset
2021-09-30More cleanup. i_fwd is rarely needed, so removed F_tag. Use i_fwd define ↵Tyge Løvset
flag instead.
2021-09-29Changed forward declaration to support user defined container names with i_cnt.Tyge Løvset
2021-09-29Changed how to specify shared pointers in containers.Tyge Løvset
2021-09-28Added c_apply_n() and c_apply_pair_n() macros. Rewrote cpque.c example.Tyge Løvset
2021-09-23Found bug/leak thanks to sanitizer:Tyge Løvset
#define i_key_csptr int // correct, auto setup cmp, keydel, keyfrom. #define i_key csptr_int // wrong unless cmp, keydel, keyfrom is also defined (correctly).
2021-09-23Moved new examples from tests folder to examplesTyge Løvset