diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-05 10:01:51 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-05 10:01:51 -0400 |
| commit | 7257e9bb5ff9391f6b6874d5c3bc01dc2f2abf4b (patch) | |
| tree | 00176c46e0cd0a0e8898175d6f5a99b41638059a | |
| parent | 053b5ab41a7747f83b25906ea46446eba8c6ea9a (diff) | |
pkbktarr: helper function declarations
| -rw-r--r-- | pkbktarr.h | 8 | ||||
| -rw-r--r-- | test/pkbktarr.cpp | 10 |
2 files changed, 8 insertions, 10 deletions
@@ -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>(); |
