aboutsummaryrefslogtreecommitdiff
path: root/include/_qmacros.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/_qmacros.h')
-rw-r--r--include/_qmacros.h26
1 files changed, 0 insertions, 26 deletions
diff --git a/include/_qmacros.h b/include/_qmacros.h
deleted file mode 100644
index d496581..0000000
--- a/include/_qmacros.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef MLIB__QMACROS_H
-#define MLIB__QMACROS_H
-
-/* Macros for qualifier-preserving functions. These are used to create wrappers
- around some functions which will return a const-qualified pointer if the
- input pointer is const-qualified, and a non-const-qualified pointer
- otherwise.
-
- The macros are taken from the N3020 proposal for C23. */
-
-/* clang-format off */
-#define _MLIB_PTR_IS_CONST(P) \
- _Generic(1 ? (P) : (void *)(P), \
- const void *: 1, \
- default: 0)
-#define _MLIB_STATIC_IF(P, T, E) \
- _Generic(&(char[!!(P) + 1]){0}, \
- char(*)[2]: T, \
- char(*)[1]: E)
-#define _MLIB_Q_PTR(T, F, S, ...) \
- _MLIB_STATIC_IF(_MLIB_PTR_IS_CONST((S)), \
- (const T *)(F)(__VA_ARGS__), \
- (T *)(F)(__VA_ARGS__))
-/* clang-format on */
-
-#endif /* !MLIB__QMACROS_H */