-
- Мне кажется там идет двойное/тройное преобразование
(что-то)-(int)-(bool)-(! bool)-(int). Т.е. должен подойти любой
тип, умеющий превращаться в int - AlexBi(17.09.2020 12:44)
- Типы преобразовываться могут только один раз. A->B->C...
невозможно. Если А непосредственно не конвертируется в C -- не
заработает. - fk0(17.09.2020 14:58, ссылка)
- Это интересно, но здесь даже нет преобразования. Оператор ! -- это сравнение с нулём, и если аргумент целое, плавучка или указатель, всё это работает немного по-разному. У целого -- простое сравнение с нулём, у плавучки -- сравнение с 0.0 (там уже может играть режим округления и т.п.), у указателя -- сравнение с нулевым указателем (который на какой-нибудь экзотической архитектуре может иметь ненулевое двоичное представление). - SciFi(17.09.2020 18:02)
- Да, я поторопился, встроенный во встроенный должны преобразовываться за один шаг. - AlexBi(17.09.2020 15:56)
- !0.1 == 0, !(int)0.1 == 1. - SciFi(17.09.2020 14:31, ссылка)
- Убедил. Мое представление о bool оказалось не правильным - AlexBi(17.09.2020 16:00)
- Типы преобразовываться могут только один раз. A->B->C...
невозможно. Если А непосредственно не конвертируется в C -- не
заработает. - fk0(17.09.2020 14:58, ссылка)
- Мне кажется там идет двойное/тройное преобразование
(что-то)-(int)-(bool)-(! bool)-(int). Т.е. должен подойти любой
тип, умеющий превращаться в int - AlexBi(17.09.2020 12:44)