A few words on C++ smart pointers.

Apr 09, 2016 16:55

Я досить часто зустрічаю думку що для написання безпечного з точки зору memory management коду на C++ треба його „обмазати“ std::shared_ptr. Мене ця точка зору дико бісить, бо насправді std::shared_ptr означає що у програміста просто не залишилось іншого виходу. std::shared_ptr дуже складна і доволі небезпечна штука, тому я вважаю що для ( Read more... )

cpp, робота, програмування

Leave a comment

Comments 8

wizzard0 April 9 2016, 14:46:41 UTC
чорт, як добре, що я не пишу на С++ :)

Reply

madf April 9 2016, 18:59:48 UTC
На 11/14-му стандарті більше-менш зручно можна писати. На жаль, у 17-му зарубали майже всі плюшки.

А заморочки ті самі що і у більшості мов - якщо не допускати shared state і писати іммутабельно все буде добре.

Reply

wizzard0 April 10 2016, 10:17:24 UTC
я про те, що надто багато сутностей які здаються artificial та мають якісь subtle відмінності, за якими треба слідкувати.

до речі, Rust десь туди ж, але там хоча б typechecker нормальний...

Reply

madf April 10 2016, 18:58:12 UTC
Я б сказав що artificial сутності і subtle відмінності є у кожній мові програмування. Саме через їх - мов - штучність.

Reply


dmytrish April 9 2016, 15:00:47 UTC
Насправді, у 80% випадків достатньо value/reference/std::unique_ptr. - гм, Rust починає здаватись ще більш виправданим.

Reply

madf April 9 2016, 19:00:35 UTC
У Rust, на скільки я дивився, немає аналога move-семантики.

Reply

dmytrish April 10 2016, 06:49:43 UTC
Присвоєння в Расті якраз і є move by default: https://doc.rust-lang.org/book/ownership.html#move-semantics .

Reply

madf April 10 2016, 19:06:18 UTC
Почитав трохи про Rust. Виглядає годно, але наче більш багатослівний ніж ті ж плюси. Але тайпчеккер реально крутий.

Reply


Leave a comment

Up