summaryrefslogtreecommitdiff
path: root/include/libHX/defs.h
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2020-09-10 18:47:17 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2020-09-10 18:47:17 +0200
commitec66c414866572fcd77a5bf7e4a444e84d8aa804 (patch)
tree50b95bea4fdc18396e581506369bd7d67bcc438b /include/libHX/defs.h
parent41aba5755c9fa6082aec99c4fec6c571f8e5062a (diff)
parent4fbd529e776527e548b343a82e14d1cb7eb30764 (diff)
Merge branch 'release/experimental/3.25-1_exp1' into masterexperimental/3.25-1_exp1
Diffstat (limited to 'include/libHX/defs.h')
-rw-r--r--include/libHX/defs.h29
1 files changed, 7 insertions, 22 deletions
diff --git a/include/libHX/defs.h b/include/libHX/defs.h
index 9ecdd32..1ace518 100644
--- a/include/libHX/defs.h
+++ b/include/libHX/defs.h
@@ -2,23 +2,14 @@
#define _LIBHX_DEFS_H 1
#ifdef __cplusplus
-# define FIELD_SIZEOF(type, member) \
- sizeof(static_cast<type *>(NULL)->member)
-# define HXsizeof_member(type, member) FIELD_SIZEOF(type, member)
-# define HXtypeof_member(type, member) \
- __typeof__(static_cast<type *>(NULL)->member)
-# if defined(__GNUC__) && __GNUC__ >= 4 && !defined(offsetof)
- /*
- * This is here so most programs can skip inclusion
- * of stddef.h just to get offsetof.
- */
-# define offsetof(type, member) __builtin_offsetof(type, member)
-# endif
-# ifndef offsetof
-# define offsetof(type, member) \
- reinterpret_cast<long>(&(static_cast<type *>(NULL)->member))
+# define HXsizeof_member(type, member) sizeof(type::member)
+# if __cplusplus >= 201100L
+# define HXtypeof_member(type, member) decltype(type::member)
+# else
+# define HXtypeof_member(type, member) __typeof__(type::member))
# endif
# ifndef containerof
+# include <cstddef>
# define containerof(var, type, member) reinterpret_cast<type *>( \
reinterpret_cast<char *>(var) - offsetof(type, member))
# endif
@@ -139,14 +130,8 @@ static __inline__ new_type signed_cast(unsigned char *expr)
# ifndef reinterpret_cast
# define reinterpret_cast(type, expr) ((type)(expr))
# endif
-# if defined(__GNUC__) && __GNUC__ >= 4 && !defined(offsetof)
-# define offsetof(type, member) __builtin_offsetof(type, member)
-# endif
-# ifndef offsetof
-# define offsetof(type, member) \
- reinterpret_cast(long, &(static_cast(type *, NULL)->member))
-# endif
# ifndef containerof
+# include <stddef.h>
# define containerof(var, type, member) reinterpret_cast(type *, \
reinterpret_cast(char *, var) - offsetof(type, member))
# endif