summaryrefslogtreecommitdiff
path: root/shared/staticAssert.h
diff options
context:
space:
mode:
Diffstat (limited to 'shared/staticAssert.h')
-rw-r--r--shared/staticAssert.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/shared/staticAssert.h b/shared/staticAssert.h
new file mode 100644
index 00000000..2be4cd58
--- /dev/null
+++ b/shared/staticAssert.h
@@ -0,0 +1,18 @@
+#ifndef STATICASSERT_H_INCLUDED
+#define STATICASSERT_H_INCLUDED
+
+//Reference: Compile-Time Assertions, C/C++ Users Journal November, 2004 (http://pera-software.com/articles/compile-time-assertions.pdf)
+
+#ifdef NDEBUG
+//If not debugging, assert does nothing.
+#define assert_static(x) ((void)0)
+
+#else /* debugging enabled */
+
+#define assert_static(e) \
+do { \
+enum { assert_static__ = 1/(e) }; \
+} while (0)
+#endif
+
+#endif // STATICASSERT_H_INCLUDED
bgstack15