summaryrefslogtreecommitdiff
path: root/src/basicmacros.h
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-10-27 22:27:32 -0400
committerkwolekr <kwolekr@minetest.net>2015-10-27 22:27:32 -0400
commit688556a5d1910ead2cf06a87af6908110fa9d035 (patch)
treefb0fc91212847ca73b9ec83162f5f5c075bcb314 /src/basicmacros.h
parentc56d7fe0eba7905b0a63c4a1cfe909988653c23d (diff)
downloadminetest-688556a5d1910ead2cf06a87af6908110fa9d035.tar.gz
minetest-688556a5d1910ead2cf06a87af6908110fa9d035.tar.bz2
minetest-688556a5d1910ead2cf06a87af6908110fa9d035.zip
Add STATIC_ASSERT() macro and use it
Diffstat (limited to 'src/basicmacros.h')
-rw-r--r--src/basicmacros.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/basicmacros.h b/src/basicmacros.h
index cebf06043..2a30a31d2 100644
--- a/src/basicmacros.h
+++ b/src/basicmacros.h
@@ -38,4 +38,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
C(const C &); \
C &operator=(const C &)
+// Fail compilation if condition expr is not met.
+// Note that 'msg' must follow the format of a valid identifier, e.g.
+// STATIC_ASSERT(sizeof(foobar_t) == 40), foobar_t_is_wrong_size);
+#define STATIC_ASSERT(expr, msg) typedef char msg[!!(expr) * 2 - 1]
+
#endif