Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
#include <iostream>
int main() {
std::cout << (-1 < 0) << ' ' << (-1 < 0u) << '\n';
}1 0
- Ждать
1 1: в-1 < 0uзначениеintсначала преобразуется вunsigned, и-1становится наибольшим значениемunsigned, а оно не меньше0. - Ждать неопределённого поведения: преобразование отрицательного
intвunsignedопределено, и-1всегда даёт наибольшее значениеunsigned.
- С каким флагом предупреждений GCC и Clang сообщают о сравнении
intсunsigned? - Как функция C++20
std::cmp_less(-1, 0u)сравнивает два значения и что она возвращает?