From 9d4e5a630d24f93540259a1ea484e1f0aa245095 Mon Sep 17 00:00:00 2001 From: Tyge Løvset <60263450+tylov@users.noreply.github.com> Date: Wed, 9 Jun 2021 09:41:55 +0200 Subject: Updated header example. --- include/stc/csptr.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/include/stc/csptr.h b/include/stc/csptr.h index 4b35e98c..02518869 100644 --- a/include/stc/csptr.h +++ b/include/stc/csptr.h @@ -25,30 +25,29 @@ #include "ccommon.h" -/* csptr: std::shared_ptr -like type: +/* csptr: shared_ptr type #include #include typedef struct { cstr name, last; } Person; -Person* Person_make(Person* p, const char* name, const char* last) { - p->name = cstr_from(name), p->last = cstr_from(last); - return p; +Person Person_init(const char* name, const char* last) { + return (Person){.name = cstr_from(name), .last = cstr_from(last)}; } void Person_del(Person* p) { - printf("del: %s\n", p->name.str); + printf("del: %s %s\n", p->name.str, p->last.str); c_del(cstr, &p->name, &p->last); } -using_csptr(pe, Person, c_no_compare, Person_del); +using_csptr(person, Person, c_no_compare, Person_del); int main() { - csptr_pe p = csptr_pe_from(Person_make(c_new(Person), "John", "Smiths")); - csptr_pe q = csptr_pe_clone(p); // share the pointer + csptr_person p = csptr_person_make(Person_init("John", "Smiths")); + csptr_person q = csptr_person_clone(p); // share the pointer printf("%s %s. uses: %zu\n", q.get->name.str, q.get->last.str, *q.use_count); - c_del(csptr_pe, &p, &q); + c_del(csptr_person, &p, &q); } */ typedef long atomic_count_t; -- cgit v1.2.3