use c11 static assert where available