summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-10-29 16:01:47 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-10-29 16:01:47 -0400
commite387f12f34777bbcdce211024ef871c3e9243989 (patch)
treee6fb930469efaebcc0b172f2e1f3964c058ba09c
parentcb3e77586ac835c156cb4700b324dafbbb110adf (diff)
pkbktarr: cpp dtor no-op, call teardown manually
-rw-r--r--pk.h.in2
-rw-r--r--pkbktarr.h10
2 files changed, 3 insertions, 9 deletions
diff --git a/pk.h.in b/pk.h.in
index fcbbe32..3a0a404 100644
--- a/pk.h.in
+++ b/pk.h.in
@@ -268,7 +268,7 @@
* struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr);
* arr[h] = 128;
* pk_bkt_arr_free_handle(&arr, h);
-* arr.~pk_bkt_arr<int>(); // manually call dtor for globals
+* pk_bkt_arr_teardown(&arr);
* ```
*
********************************************************************************
diff --git a/pkbktarr.h b/pkbktarr.h
index a437e79..fc6e90a 100644
--- a/pkbktarr.h
+++ b/pkbktarr.h
@@ -73,24 +73,18 @@ bool pk_bkt_arr_iter_decrement(struct pk_bkt_arr *arr, struct pk_iter *it);
#include <assert.h>
template<typename T>
struct pk_bkt_arr_t : public pk_bkt_arr {
- pk_bkt_arr_t();
+ pk_bkt_arr_t() = default;
pk_bkt_arr_t(struct pk_bkt_arr_handle limits, struct pk_membucket *bkt_buckets, struct pk_membucket *bkt_data);
- ~pk_bkt_arr_t();
+ ~pk_bkt_arr_t() = default;
T &operator[](struct pk_bkt_arr_handle);
using FN_Iter = pk_tmpln_1<void, T*, void*>;
using FN_Find = pk_tmpln_2<bool, const T*, const T*, const void*, const void*>;
};
template<typename T>
-pk_bkt_arr_t<T>::pk_bkt_arr_t() { }
-template<typename T>
pk_bkt_arr_t<T>::pk_bkt_arr_t(struct pk_bkt_arr_handle limits, struct pk_membucket *bkt_buckets, struct pk_membucket *bkt_data) {
pk_bkt_arr_init(this, sizeof(T), alignof(T), limits, bkt_buckets, bkt_data);
}
template<typename T>
-pk_bkt_arr_t<T>::~pk_bkt_arr_t() {
- pk_bkt_arr_teardown(this);
-}
-template<typename T>
T &pk_bkt_arr_t<T>::operator[](struct pk_bkt_arr_handle handle) {
assert(this->idx_unused != nullptr);
assert(this->bucketed_data != nullptr);