summaryrefslogtreecommitdiffhomepage
path: root/include/stc/cbox.h
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2023-08-10 21:17:48 +0200
committerTyge Løvset <[email protected]>2023-08-10 21:17:48 +0200
commitbe5651c9fc3d3ecd2d9d24e6e4763260ef86de41 (patch)
treec9e9f5bc6814716b4faac75833cc1ecc1371c8c5 /include/stc/cbox.h
parentc27c266b6c4ae0e5e535b18c3790ee97416412b9 (diff)
downloadSTC-modified-be5651c9fc3d3ecd2d9d24e6e4763260ef86de41.tar.gz
STC-modified-be5651c9fc3d3ecd2d9d24e6e4763260ef86de41.zip
Update template.h - also renamed i_cmp_native => i_use_cmp
Diffstat (limited to 'include/stc/cbox.h')
-rw-r--r--include/stc/cbox.h65
1 files changed, 28 insertions, 37 deletions
diff --git a/include/stc/cbox.h b/include/stc/cbox.h
index 25d41b92..b799c24c 100644
--- a/include/stc/cbox.h
+++ b/include/stc/cbox.h
@@ -159,50 +159,41 @@ STC_INLINE void _cx_MEMB(_assign)(_cx_Self* self, _cx_Self* moved) {
moved->get = NULL;
}
-#if defined _i_has_cmp
+#if defined i_use_cmp
STC_INLINE int _cx_MEMB(_raw_cmp)(const _cx_raw* rx, const _cx_raw* ry)
{ return i_cmp(rx, ry); }
- STC_INLINE int _cx_MEMB(_cmp)(const _cx_Self* self, const _cx_Self* other) {
- _cx_raw rx = i_keyto(self->get), ry = i_keyto(other->get);
- return i_cmp((&rx), (&ry));
- }
-#else
- STC_INLINE int _cx_MEMB(_raw_cmp)(const _cx_raw* rx, const _cx_raw* ry)
- { return c_default_cmp(&rx, &ry); }
-
- STC_INLINE int _cx_MEMB(_cmp)(const _cx_Self* self, const _cx_Self* other) {
- return c_default_cmp(&self->get, &other->get);
- }
-#endif
-#if defined _i_has_eq || defined _i_has_cmp
STC_INLINE bool _cx_MEMB(_raw_eq)(const _cx_raw* rx, const _cx_raw* ry)
{ return i_eq(rx, ry); }
-
- STC_INLINE bool _cx_MEMB(_eq)(const _cx_Self* self, const _cx_Self* other) {
- _cx_raw rx = i_keyto(self->get), ry = i_keyto(other->get);
- return i_eq((&rx), (&ry));
- }
-#else
- STC_INLINE bool _cx_MEMB(_raw_eq)(const _cx_raw* rx, const _cx_raw* ry)
- { return rx == ry; }
-
- STC_INLINE bool _cx_MEMB(_eq)(const _cx_Self* self, const _cx_Self* other) {
- return self->get == other->get;
- }
-#endif
-#if defined i_hash
+ #ifndef i_no_hash
STC_INLINE uint64_t _cx_MEMB(_raw_hash)(const _cx_raw* rx)
{ return i_hash(rx); }
-
- STC_INLINE uint64_t _cx_MEMB(_hash)(const _cx_Self* self)
- { _cx_raw rx = i_keyto(self->get); return i_hash(&rx); }
-#else
- STC_INLINE uint64_t _cx_MEMB(_raw_hash)(const _cx_raw* rx)
- { return c_default_hash(&rx); }
-
- STC_INLINE uint64_t _cx_MEMB(_hash)(const _cx_Self* self)
- { return c_default_hash(&self->get); }
+ #endif // i_no_hash
+
+ #if defined i_ptr_cmp
+ STC_INLINE int _cx_MEMB(_cmp)(const _cx_Self* self, const _cx_Self* other) {
+ return c_default_cmp(&self->get, &other->get);
+ }
+ STC_INLINE bool _cx_MEMB(_eq)(const _cx_Self* self, const _cx_Self* other) {
+ return self->get == other->get;
+ }
+ STC_INLINE uint64_t _cx_MEMB(_hash)(const _cx_Self* self)
+ { return c_default_hash(&self->get); }
+ #else
+ STC_INLINE int _cx_MEMB(_cmp)(const _cx_Self* self, const _cx_Self* other) {
+ _cx_raw rx = i_keyto(self->get), ry = i_keyto(other->get);
+ return i_cmp((&rx), (&ry));
+ }
+ STC_INLINE bool _cx_MEMB(_eq)(const _cx_Self* self, const _cx_Self* other) {
+ _cx_raw rx = i_keyto(self->get), ry = i_keyto(other->get);
+ return i_eq((&rx), (&ry));
+ }
+ #ifndef i_no_hash
+ STC_INLINE uint64_t _cx_MEMB(_hash)(const _cx_Self* self)
+ { _cx_raw rx = i_keyto(self->get); return i_hash(&rx); }
+ #endif // i_no_hash
+ #endif // i_ptr_cmp
#endif
+
#include "priv/template2.h"
#undef _i_cbox