Я решал задачу о слоне на шахматной доске. В одном месте моего кода я включил следующую строку:
std::cout << (abs(c2-c1) == abs(r2-r1)) ? 1 : 2 << std::endl;
Это приводит к следующей ошибке:
error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'
Однако я мгновенно исправил эту ошибку, добавив в свой код дополнительную переменную:
int steps = (abs(c2-c1) == abs(r2-r1)) ? 1 : 2;
std::cout << steps << std::endl;
Как работает троичный оператор и как определяется его тип возвращаемого значения (как его назвал компилятор <unresolved overloaded function type>
)?