Информация об изменениях

Сообщение Re[18]: Haters gonna hate but with proofs от 15.01.2019 6:23

Изменено 15.01.2019 7:22 rg45

Re[18]: Haters gonna hate but with proofs
Здравствуйте, netch80, Вы писали:

N>Передёргиваете. Не всё "на автомате", но сильно больше, чем у C++, легче контролируемо и диагностируемо. И переусложнённость последнего это фактор, независимый от его unmanaged характера.


Не передергиваю, а подчеркиваю, что не настолько сильно, как многие хотят это показать. У C++ есть свои преимущества, причем весомые.

N>Если писать, как seen on national TV рекомендовано в книге, то работает без вреда.


Вот именно, расхлябанность, присущая многим C# разработчикам проистекает из базовых рекоммендаций. Подумаешь, беда — Dispose вызвался не один раз, а три — памперс все впитает. Во всем вот это вот "срала-мазала", тьфу, терпеть этого не могу.

N>Вроде ж позволяет? Типа p->~C()

N>Или уже запретили? Не следил за этим моментом.

Да написать-то можно все, что угодно. Только повтрорый вызов деструктора, как и любое обращение к членам объекта после окончания времени его жизни, квалифицируется стандаром языка как UB. Время жизни объекта заканчивается при входе в деструктор. При первом входе, разумеется. И во многих случаях это приводит к реальным проблемам в runtime, пожалуйста, простейшая иллюстрация: https://ideone.com/mJUlON
Re[18]: Haters gonna hate but with proofs
Здравствуйте, netch80, Вы писали:

N>Передёргиваете. Не всё "на автомате", но сильно больше, чем у C++, легче контролируемо и диагностируемо. И переусложнённость последнего это фактор, независимый от его unmanaged характера.


Не передергиваю, а подчеркиваю, что не настолько сильно, как многие хотят это показать. У C++ есть свои преимущества, причем весомые.

N>Если писать, как seen on national TV рекомендовано в книге, то работает без вреда.


Вот именно, расхлябанность, присущая многим C# разработчикам, проистекает из базовых рекоммендаций. Подумаешь, беда — Dispose вызвался не один раз, а три — памперс все впитает. Во всем вот это вот "срала-мазала", тьфу, терпеть этого не могу.

N>Вроде ж позволяет? Типа p->~C()

N>Или уже запретили? Не следил за этим моментом.

Да написать-то можно все, что угодно. Только повтрорый вызов деструктора, как и любое обращение к членам объекта после окончания времени его жизни, квалифицируется стандаром языка как UB. Время жизни объекта заканчивается при входе в деструктор. При первом входе, разумеется. И во многих случаях это приводит к реальным проблемам в runtime, пожалуйста, простейшая иллюстрация: https://ideone.com/mJUlON