Re[4]: Правомерно ли такое
От: B0FEE664  
Дата: 18.08.20 08:35
Оценка:
Здравствуйте, ollv, Вы писали:

BFE>>Сигфолта не будет, т.к. не скомпилируется.

O>Да на gcc compile rvalue не ляжет в ссылку. просто майкрософт ведет себя вероломно. Т/к/ он мало того, что компилирует, так еще и без ворнингов (с настройками по умолчанию). Его конечно можно нагнуть, чтобы такое не компилировалось но это опасности не отменяет.

В чём опасность? Такой код компилируется и работает у Майкрософта более 15-ти лет, ещё до принятия стандарта 2011-ого года, до move семантики. То, что это не по стандарту — это проблемы стандарта, а не кода.

O>+ к тому есть продление жизни для ссылок — тоже опасное поведение, с такими трюками можно легко запутаться особенно присутствуют сложные вычисления типов

Здесь нет продления жизни для ссылок.

O>В общем, я могу сказать одно, я такие практики оч не поддерживаю.

Никакой особой практики я тут не вижу. Это довольно редкий случай, как правило порождаемый при переиспользовании кода в ситуациях не предвиденных изначально.

O>такое скомпилируется и может даже имеет какой-то смысл. Но изначально — r& fun(type& v) { return v; }

O>я пытаюсь избегать, именно по причине того, что майкрософт ведет себя вероломно.

Веру в что ломает майкрософт?
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.