Форум программистов, компьютерный форум CyberForum.ru

Что в C++ есть выражение? - C++

Восстановить пароль Регистрация
 
Ferrari F1
Заблокирован
296 / 282 / 62
Регистрация: 27.01.2015
Сообщений: 1,906
Записей в блоге: 1
Завершенные тесты: 1
01.07.2016, 18:11     Что в C++ есть выражение? #1
Привет. Недавно задался таким филосовским вопросом. Причиной тому стал следующий случай:
C++
1
2
3
auto x(0);
decltype(x) z; // ok
decltype((x)) y; // ошибка, ссылку нужно инициализировать
Что такое просто x, и что такое (х) ?

Можете пожалуйста кинуть чего-нибудь полезного почитать по этой теме?
Хотел бы для себя разжевать, что в языке является выражением, а что нет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2016, 18:11     Что в C++ есть выражение?
Посмотрите здесь:

Перегрузка определителя. что есть что? C++
Что означает данное выражение y%=16 C++
C++ Подскажите что означает это выражение
Что значит выражение A%=B ? C++
C++ Что означает выражение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
meJevin
 Аватар для meJevin
153 / 145 / 56
Регистрация: 18.11.2015
Сообщений: 600
Завершенные тесты: 1
01.07.2016, 18:27     Что в C++ есть выражение? #2
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Что такое просто x, и что такое (х) ?

decltype(x) - тут ты получаешь тип переменной. В твоем случае int.
decltype((x)) - тут ты получаешь тип выражения. В твоем случае это lvalue выражение, поэтому выкидывает ссылку.
Ferrari F1
Заблокирован
296 / 282 / 62
Регистрация: 27.01.2015
Сообщений: 1,906
Записей в блоге: 1
Завершенные тесты: 1
01.07.2016, 18:33  [ТС]     Что в C++ есть выражение? #3
Цитата Сообщение от meJevin Посмотреть сообщение
decltype(x) - тут ты получаешь тип переменной. В твоем случае int.
decltype((x)) - тут ты получаешь тип выражения. В твоем случае это lvalue выражение, поэтому выкидывает ссылку.
да я это все понимаю, как работает decltype, и что l value возвращается (в книге написано)
Но мне бы просто хотелось послушать мнения бывалых
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
01.07.2016, 18:39     Что в C++ есть выражение? #4
Определения типа через decltype
Yandex
Объявления
01.07.2016, 18:39     Что в C++ есть выражение?
Ответ Создать тему
Опции темы

Текущее время: 21:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru