1. C++ / Говнокод #1609

    +14.1

    1. 1
    2. 2
    3. 3
    4. 4
    bool IsTranslucent() const
    {
    	return !!Translucent;
    }

    Зачем двойное отрицание?
    Наверное потому, что Translucent имеет тип BOOL из windows.h и приведение ее к bool даст нежелательный warning.

    Запостил: schizoid2, 17 Августа 2009

    Комментарии (5) RSS

    • Не говнокод
      Ответить
    • согласен,
      двойное отрицание затем, что если Translucent не bool, а, допустим, int, то он станет булом:
      Translucent = 0 => false
      Translucent !=0 => true
      Ответить
    • ...в дополнение: Тип BOOL в виндах это int и есть, оттого и варнинг при преобразовании
      Ответить
    • ЗАчёт ))
      Ответить
    • vanished
      Ответить

    Добавить комментарий