struct md5_ctx md5;
char buf[128];
+ static_assert(sizeof(int) >= 4, "unsupported int size");
+
aatree_init(&aatree, NULL, NULL);
cbtree = cbtree_create(NULL, NULL, NULL, USUAL_ALLOC);
cbtree_destroy(cbtree);
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
+#include <assert.h>
#ifdef WIN32
#include <usual/base_win32.h>
/* @} */
+
+/**
+ * Compile-time assert.
+ *
+ * Expression must be evaluatable at compile time.
+ * If false, stop compilation with message.
+ *
+ * It can be used in either global or function scope.
+ */
+#ifndef static_assert
+#if _COMPILER_GNUC(4,6) || _COMPILER_CLANG(3,0) || _COMPILER_MSC(1600)
+/* Version for new compilers */
+#define static_assert(expr, msg) _Static_assert(expr, msg)
+#else
+/* Version for old compilers */
+#define static_assert(expr, msg) enum { CONCAT4(static_assert_failure_, __LINE__, _, __COUNTER__) = 1/(1 != (1 + (expr))) }
+#endif
+#endif /* !static_assert */
+
+
/** assert() that uses <usual/logging> module */
#ifndef Assert
#ifdef CASSERT