Возможный дубликат:
Непреднамеренное использование = вместо ==
Компиляторы С++ сообщают вам о предупреждениях, которые вы написали
if( a = b ) { //...
и что это может быть ошибкой, что вы, конечно же, хотели написать
if( a == b ) { //...
Но есть ли случай, когда предупреждение следует игнорировать, потому что это хороший способ использовать эту "функцию"? Я не вижу никакой причины ясности кода, так есть ли случай, когда он полезен?