!!
- идиоматический способ преобразования в 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]
> <b>cl foo.cpp</b>
foo.cpp
foo.cpp(6) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
[d:\dev\test]
> _
И, по крайней мере, один человек думает, что если начинающий новичок не осознает его значение, то это плохо. Ну, это глупо. Многие новички не узнают и не понимают. Написание своего кода, чтобы его мог понять любой начинающий, не является чем-то для профессионалов. Даже для студентов. Начиная с пути исключения операторов и комбинаций операторов, которые не распознают новички ... Ну, у меня нет слов, чтобы дать этому подходу подходящее описание, извините.
Приветствия & hth.,