Re[15]: Haters gonna hate but with proofs
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.01.19 17:08
Оценка:
Здравствуйте, rg45, Вы писали:

scf>>Так выше приводили же пример на шарпе с using? Можно ограничить ресурс скоупом точно так же, как и в С++.

R>Здесь два момента:
R>1. Конструкция using полезна только в тех случаях, когда объект создается и уничтожается в рамках одного блока, что значительно беднее возможностей, предоставляемых плюсовым RAII;

Не совсем. Ничто не мешает создать "страж"-объект, который хранит ссылку на целевой. Что-то вроде unique_ptr в C++ с его возможностями reset() на новое значение и move владения. И это просто, хотя и нужно об этом позаботиться.

R>2. Криворукий юзер может тупо забыть написать "using", или наоборот, сделать это не там, где нужно, или не так, как нужно, не в той последовательности. Или напишет код так, что Dispose будет зваться в двух разных местах для одного и того же объекта. В общем, все те же "радости", что и для ручного управления памятью в C.


Лишний Dispose обычно не вредит. Пропустить с помощью стража и using — сложно.

А вот обеспечить для объекта, сидящего где-то глубоко в недрах иерархии, немедленное освобождение — вот тут, да, mission impossible.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.