Hack around buggy clang constant warning

clang whines that static_assert(A && B) uses && with a constant operand,
but this is necessary and correct, because static_assert only takes
compile-time constant expressions.  However, !!A && !!B does not warn.
Switch to !!A && !!B to silence the clang whining.

similar/main/collide.cpp:2566:63: warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
 static_assert(collision_result_t<OBJ_WALL, OBJ_ROBOT>::value && collision_result_t<OBJ_ROBOT, OBJ_WALL>::value, "OBJ_WALL" " " "OBJ_ROBOT");
This commit is contained in:
Kp 2015-06-13 22:42:19 +00:00
parent 420c2adee1
commit 7b1e774cb8

View file

@ -2562,7 +2562,7 @@ const collision_outer_array_t CollisionResult = collide_init(make_tree_index_seq
#undef DISABLE_COLLISION
#undef ENABLE_COLLISION
#define ENABLE_COLLISION(T1,T2) static_assert(collision_result_t<T1, T2>::value && collision_result_t<T2, T1>::value, #T1 " " #T2);
#define ENABLE_COLLISION(T1,T2) static_assert(!!collision_result_t<T1, T2>::value && !!collision_result_t<T2, T1>::value, #T1 " " #T2);
#define DISABLE_COLLISION(T1,T2) static_assert(!collision_result_t<T1, T2>::value && !collision_result_t<T2, T1>::value, #T1 " " #T2);
ENABLE_COLLISION( OBJ_WALL, OBJ_ROBOT );