#include "../pkmem-types.h" #include "../pkmacros.h" #include int main(int argc, char *argv[]) { (void)argc; (void)argv; (void)stdout; // pk_handle operator== { struct pk_handle h, bh; bool res; constexpr struct pk_handle ch1 { .bucketIndex = 0xAAAAAAAA, .itemIndex = 0x55555555 }; constexpr struct pk_handle cbh1 { .bucketIndex = 0xAAAAAAAA, .itemIndex = 0x55555555 }; constexpr bool ret1 = (ch1 == cbh1); PK_LOGV_INF("pk_handle constexpr operator== 000: %s\n", ret1 ? "true" : "false"); constexpr struct pk_handle ch2 { .bucketIndex = 0x00000000, .itemIndex = 0x00000000 }; constexpr struct pk_handle cbh2 { .bucketIndex = 0xFFFFFFFF, .itemIndex = 0xFFFFFFFF }; constexpr bool ret2 = (ch2 == cbh2); PK_LOGV_INF("pk_handle constexpr operator== 001: %s\n", ret2 ? "true" : "false"); h.bucketIndex = 0xCAFE; h.itemIndex = 0xBABE; bh.bucketIndex = 0xCAFE; bh.itemIndex = 0xBABE; res = h == bh; PK_LOGV_INF("pk_handle operator== 000: %s\n", res ? "true" : "false"); h.bucketIndex = 0x00000000; h.itemIndex = 0x00000000; bh.bucketIndex = 0xFFFFFFFF; bh.itemIndex = 0xFFFFFFFF; res = h == bh; PK_LOGV_INF("pk_handle operator== 001: %s\n", res ? "true" : "false"); } // pk_handle_validate_constexpr { constexpr struct pk_handle cbh { .bucketIndex = 2, .itemIndex = 2 }; constexpr struct pk_handle ch1 { .bucketIndex = 0, .itemIndex = 0 }; constexpr enum PK_HANDLE_VALIDATION ret1 = pk_handle_validate_constexpr(); PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret1); constexpr struct pk_handle ch2 { .bucketIndex = 3, .itemIndex = 0 }; constexpr enum PK_HANDLE_VALIDATION ret2 = pk_handle_validate_constexpr(); PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret2); constexpr struct pk_handle ch3 { .bucketIndex = 2, .itemIndex = 3 }; constexpr enum PK_HANDLE_VALIDATION ret3 = pk_handle_validate_constexpr(); PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret3); constexpr struct pk_handle ch4 = pk_handle_MAX_constexpr; constexpr enum PK_HANDLE_VALIDATION ret4 = pk_handle_validate_constexpr(); PK_LOGV_INF("pk_handle_validate_constexpr: 000: %i\n", ret4); } // custom pk_handle_validate { struct custom_handle : public pk_handle{}; struct custom_handle h, bh; bool res; struct custom_handle ch1; ch1.bucketIndex = 0xAAAAAAAA; ch1.itemIndex = 0x55555555; struct custom_handle cbh1; cbh1.bucketIndex = 0xAAAAAAAA; cbh1.itemIndex = 0x55555555; bool ret1 = (ch1 == cbh1); PK_LOGV_INF("custom_handle constexpr operator== 000: %s\n", ret1 ? "true" : "false"); struct custom_handle ch2; ch2.bucketIndex = 0x00000000; ch2.itemIndex = 0x00000000; struct custom_handle cbh2; cbh2.bucketIndex = 0xFFFFFFFF; cbh2.itemIndex = 0xFFFFFFFF; bool ret2 = (ch2 == cbh2); PK_LOGV_INF("custom_handle constexpr operator== 001: %s\n", ret2 ? "true" : "false"); h.bucketIndex = 0xCAFE; h.itemIndex = 0xBABE; bh.bucketIndex = 0xCAFE; bh.itemIndex = 0xBABE; res = h == bh; PK_LOGV_INF("custom_handle operator== 000: %s\n", res ? "true" : "false"); h.bucketIndex = 0x00000000; h.itemIndex = 0x00000000; bh.bucketIndex = 0xFFFFFFFF; bh.itemIndex = 0xFFFFFFFF; res = h == bh; PK_LOGV_INF("custom_handle operator== 001: %s\n", res ? "true" : "false"); } return 0; }