summaryrefslogtreecommitdiff
path: root/shared/staticAssert.h
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:00:17 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:00:17 +0200
commitfd0853d2623dd278b08288331ed42e3be59252fb (patch)
treea7645daeaef8bdbed064faf4eb88e72cee58726c /shared/staticAssert.h
parent2.1 (diff)
downloadFreeFileSync-fd0853d2623dd278b08288331ed42e3be59252fb.tar.gz
FreeFileSync-fd0853d2623dd278b08288331ed42e3be59252fb.tar.bz2
FreeFileSync-fd0853d2623dd278b08288331ed42e3be59252fb.zip
2.2
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