summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-06-09 09:41:55 +0200
committerGitHub <[email protected]>2021-06-09 09:41:55 +0200
commit9d4e5a630d24f93540259a1ea484e1f0aa245095 (patch)
treeabf408a2c00f9f8f37fb825552b945c5c99e9fa9
parente9bb6c5f86f7129d2695e43ef5842e3d9c06c372 (diff)
downloadSTC-modified-9d4e5a630d24f93540259a1ea484e1f0aa245095.tar.gz
STC-modified-9d4e5a630d24f93540259a1ea484e1f0aa245095.zip
Updated header example.
-rw-r--r--include/stc/csptr.h17
1 files 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 <stc/csptr.h>
#include <stc/cstr.h>
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;