!!
це ідіоматичний спосіб перетворення bool
, і він працює, щоб закрити безглузде попередження компілятора Visual C ++ про нібито неефективність такого перетворення.
За іншими відповідями та коментарями я бачу, що багато людей не знайомі з корисністю цієї ідіоми у програмуванні Windows. А це означає, що вони не займалися серйозним програмуванням Windows. І припустити наосліп, що те, з чим вони зіткнулись, є репрезентативним (ні).
#include <iostream>
using namespace std;
int main( int argc, char* argv[] )
{
bool const b = static_cast< bool >( argc );
(void) argv;
(void) b;
}
> [d: \ dev \ test]
> cl foo.cpp
foo.cpp
foo.cpp (6): попередження C4800: 'int': примусове значення до bool 'true' або 'false' (попередження про продуктивність)
[d: \ dev \ test]
> _
І принаймні одна людина вважає, що якщо зовсім новачок не визнає його значення, то це недобре. Ну це дурне. Існує багато такого, що зовсім не розуміють і не розуміють зовсім нові новачки. Написання власного коду для того, щоб його зрозумів будь-який початківець - це не те, що стосується професіоналів. Навіть для студентів. Починаючи з шляху виключення операторів та комбінацій операторів, які початківець не розпізнає ... Ну, у мене немає слів, щоб дати цьому підходу відповідний опис, вибачте.