Например,
#include <iostream>
int main() {
unsigned n{};
std::cin >> n;
std::cout << n << ' ' << (bool)std::cin << std::endl;
}
При вводе -1
, clang 6.0.0 выдает 0 0
а gcc 7.2.0 выходы 4294967295 1
. Мне интересно, кто прав. Или, может быть, оба правильны для стандарта, не указывают это? В противном случае я подразумеваю (bool)std::cin
будет оцениваться как false. clang 6.0.0 также -0
ввода -0
.