Почему тип результата условного выражения является константной ссылкой?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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