Почему тип результата условного выражения является константной ссылкой?C++

Программы на C++. Форум разработчиков
Anonymous
Почему тип результата условного выражения является константной ссылкой?

Сообщение Anonymous »

Фрагмент кода:

Код: Выделить всё

int x = 0;
const int y = 0;
decltype(auto) z = true ? x : y;
static_assert(std::is_same_v);
Согласно [expr.cond], второй операнд x неявно преобразуется в const int&, а третий операнд y имеет тип const int, который отличается от const int&, поэтому программа должна быть неправильной.
Очевидно, я ошибаюсь, но я не знаю в чем дело? Или какой конкретный процесс определяет тип выражения как const int&?

Подробнее здесь: https://stackoverflow.com/questions/783 ... -reference

Вернуться в «C++»