#ifndef STATIC_ASSERT_H
#define STATIC_ASSERT_H

#ifdef __cplusplus
extern "C" {
#endif

#ifndef STATIC_ASSERT
//Alexandrescu assert
#define STATIC_ASSERT_(X, L)     typedef char static_assertion_at_line ## L [(X)?1:-1]
#define STATIC_ASSERT__(X, L)    STATIC_ASSERT_(X, L)
#define STATIC_ASSERT(COND, MSG) STATIC_ASSERT__(COND, __LINE__)
#endif

#ifdef __cplusplus
}
#endif

#endif
