Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
Должна ли тут быть ошибка компиляции при вызовы foo1 из-за того, что в качестве ссылки передаётся не l-значение? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 07:31 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
конечно давай представим что проиходит Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 12:35 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
ой, int create_l(); разумеется, а не int& create_l(); зы: у меня у одного не вываливается список цветов, когда нажимаешь на COLOR? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 12:41 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
.NET, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 21:09 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Не компилирует у вас. Да, по идее и не должно, но Visual Studio 2013 Express почему-то компилирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 23:30 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
По моему терминология value в последнем стандарте расширена, это точно именно r-value ? Странно что компилирует, вопросы такого характера разве не должны решаться на уровне компилятора ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 03:44 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
.NETMasterZiv, Не компилирует у вас. Да, по идее и не должно, но Visual Studio 2013 Express почему-то компилирует. Это как бы классический случай, за который ругают MSVC. Ну не могут они, много кода старого... Возможно, Если включить какой то режим нового стандарта, то тоже не будет компиляться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 09:43 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПо моему терминология value в последнем стандарте расширена, это точно именно r-value ? Странно что компилирует, вопросы такого характера разве не должны решаться на уровне компилятора ? Ничего странного, VC не лучший в мире компилятор в плане совместимости со стандартом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 09:44 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
MasterZiv.NETMasterZiv, Не компилирует у вас. Да, по идее и не должно, но Visual Studio 2013 Express почему-то компилирует. Это как бы классический случай, за который ругают MSVC. Ну не могут они, много кода старого... Возможно, Если включить какой то режим нового стандарта, то тоже не будет компиляться. Покопался в настройках не нашёл где такой режим включается. Если поставить Уровень предупреждений 4, то выдаётся вот такое предупреждение авторПредупреждение 1 warning C4239: нестандартное расширение: аргумент: преобразование "std::vector<int,std::allocator<_Ty>>" в "std::vector<int,std::allocator<_Ty>> &" main.cpp 23 1 L_valueTest ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 10:45 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
Если установить настройку "C\C++ -> Язык -> Отключить расширения языка" в "Да", то компилятор выдаёт ошибку авторОшибка 1 error C2664: "void foo1(std::vector<int,std::allocator<_Ty>> &)": невозможно преобразовать аргумент 1 из "std::vector<int,std::allocator<_Ty>>" в "std::vector<int,std::allocator<_Ty>> &" main.cpp 23 1 L_valueTest Но это всё равно немного не то. Он ругается на преобразование типов, а не на то что передаётся r-значение в качестве ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 10:55 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
.NET, MSVC2003 main.cpp|19|warning C4239: nonstandard extension used : 'argument' : conversion from 'rvalue' to 'rvalue &'| Хотя лично я не понимаю сути проблемы - объект вполне себе существует на стеке Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 12:11 |
|
||
|
Передача по ссылке не l-значения.
|
|||
|---|---|---|---|
|
#18+
.NETЕсли установить настройку "C\C++ -> Язык -> Отключить расширения языка" в "Да", то компилятор выдаёт ошибку авторОшибка 1 error C2664: "void foo1(std::vector<int,std::allocator<_Ty>> &)": невозможно преобразовать аргумент 1 из "std::vector<int,std::allocator<_Ty>>" в "std::vector<int,std::allocator<_Ty>> &" main.cpp 23 1 L_valueTest Но это всё равно немного не то. Он ругается на преобразование типов, а не на то что передаётся r-значение в качестве ссылки. не, это именно оно и есть, самое то. просто сообщение неудачное . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:58 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39191276&tid=2018579]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 159ms |

| 0 / 0 |
