Я просматриваю стороннюю кодовую базу и вижу это определение assert макроса:
assert
#define assert( x ) \ if( !( x ) ) { \ ThrowException( __FILE__, __LINE__ ); \ } else \ ((void)1)
Какой смысл в (void)1? Чем он лучше идиоматического (void)0?
(void)1
(void)0
Я думаю, что это не имеет большого значения (и будет оптимизировано компилятором).И <cassert> - это стандартный заголовок C ++ (использующий стандартный заголовок <assert.h> C), который определяет стандартный макрос assert, поэтому приложение не должно переопределять его.
<cassert>
<assert.h>
Нет разницы между (void)1 и (void)0.