Re[3]: оператор - 2 восклицательных знака
От: Mr.Delphist  
Дата: 05.08.10 19:04
Оценка: -3
Здравствуйте, Erop, Вы писали:

E>2) Никогда не понимал, зачем так страдать. Нет бы написать понятно ххх != 0


Как я понимаю, это пошло-поехало от умных указателей. Там оператор "!" переопределяется с целью изучить внутреннее содержимое, а не обертку.

p = NULL;
if (p)
{
  // do something
}
if (!!p)
{
  // do something
}


Если p — обычный указатель, то оба if пролетят мимо, а если p — "умный", то в первый if мы таки заскочим. Получается, что написание !! превращает код в легко мигрирующий (или безопасную заготовку для шаблона).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.