Re[11]: Правомерно ли такое
От: T4r4sB Россия  
Дата: 18.08.20 18:39
Оценка:
Здравствуйте, rg45, Вы писали:

R>Ну, я могу только порассуждать на эту тему. По расходу памяти — это ведь смотря как писать код. Размеры блоков не лимитированы и число временных объектов, создаваемых в подвыражениях, могло бы зашкаливать за разумные рамки.


На практике я на некотором другом языке (тоже с RAII) писал, там по сути любое выражение вида
f(g())

означало что-то типа
tmp=g();
f(tmp);

И этот tmp жил до конца текущего блока, и что-то стек с кучей от этого не переполнялись.

R>А с другой стороны, наверное, не смогли придумать сценариев, когда бы это создавало какие-то непреодолимые трудности.


Даже на чистом асме нет непреодолимых трудностей.
В данном примере трудность была создана — удалось получить ссылку на объект, у которого уже вызвался деструктор.
Да, она преодолима. Но это трудность, на решение которой будут тратиться лишние человекочасы.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.