Например,
#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.