A better STATIC_ASSERT macro