summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-06-05 10:01:51 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-06-05 10:01:51 -0400
commit7257e9bb5ff9391f6b6874d5c3bc01dc2f2abf4b (patch)
tree00176c46e0cd0a0e8898175d6f5a99b41638059a
parent053b5ab41a7747f83b25906ea46446eba8c6ea9a (diff)
pkbktarr: helper function declarations
-rw-r--r--pkbktarr.h8
-rw-r--r--test/pkbktarr.cpp10
2 files changed, 8 insertions, 10 deletions
diff --git a/pkbktarr.h b/pkbktarr.h
index 60f05bc..29613ae 100644
--- a/pkbktarr.h
+++ b/pkbktarr.h
@@ -63,19 +63,19 @@ struct pk_bkt_arr_handle pk_bkt_arr_handle_increment(struct pk_bkt_arr *arr, str
struct pk_bkt_arr_handle pk_bkt_arr_handle_decrement(struct pk_bkt_arr *arr, struct pk_bkt_arr_handle h);
#if defined (__cplusplus)
+#include "pktmpln.h" /*deleteme*/
#include <assert.h>
-#include <future>
template<typename T>
struct pk_bkt_arr_t : public pk_bkt_arr {
pk_bkt_arr_t();
pk_bkt_arr_t(struct pk_bkt_arr_handle limits, struct pk_membucket *bkt_buckets = nullptr, struct pk_membucket *bkt_data = nullptr);
~pk_bkt_arr_t();
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() {
- pk_bkt_arr_init(this, sizeof(T), alignof(T), {PK_BKT_ARR_HANDLE_B_MAX, PK_BKT_ARR_HANDLE_I_MAX}, nullptr, nullptr);
-}
+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);
diff --git a/test/pkbktarr.cpp b/test/pkbktarr.cpp
index c4ce85c..23a7132 100644
--- a/test/pkbktarr.cpp
+++ b/test/pkbktarr.cpp
@@ -84,13 +84,12 @@ int main(int argc, char *argv[])
if (bkt_data->alloc_count != 1) exit(1);
if (arr[h] != val) exit(1);
- using CompCbWrapper = pk_tmpln_2<bool, const int*, const int*, const void*, const void*>;
- CompCbWrapper cb_wrapper{};
+ pk_bkt_arr_t<int>::FN_Find cb_wrapper{};
cb_wrapper.func = [](const int *lhs, const int *rhs)
{
return *lhs == *rhs;
};
- pk_bkt_arr_handle found_h = pk_bkt_arr_find_first_handle(&arr, &CompCbWrapper::invoke, &cb_wrapper, &val);
+ pk_bkt_arr_handle found_h = pk_bkt_arr_find_first_handle(&arr, &pk_bkt_arr_t<int>::FN_Find::invoke, &cb_wrapper, &val);
if (pk_bkt_arr_handle_compare(found_h, h) != 0) exit(1);
arr.~pk_bkt_arr_t<int>();
@@ -121,15 +120,14 @@ int main(int argc, char *argv[])
if (arr[h] != val) exit(1);
int some_counter = 0;
- using IterCbWrapper = pk_tmpln_1<void, int*, void*>;
- IterCbWrapper cb_wrapper{};
+ pk_bkt_arr_t<int>::FN_Iter cb_wrapper{};
cb_wrapper.func = [&some_counter](int *lhs)
{
(void)lhs;
some_counter += 1;
return;
};
- pk_bkt_arr_iterate(&arr, &IterCbWrapper::invoke, &cb_wrapper);
+ pk_bkt_arr_iterate(&arr, &pk_bkt_arr_t<int>::FN_Iter::invoke, &cb_wrapper);
if (some_counter != 1) exit(1);
arr.~pk_bkt_arr_t<int>();