Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>·>Под умными указателями понимается всё что угодно. Unique да, просто языковая конструкция, но он и не потокобезопасный.
Кстати, в java unique практически сам выводится — в тех тривиальных случаях когда ты бы стал использовать unique, java обыно делает escape analysis, да и Young Generation собирается очень быстро.
EP>·>Если нужна передача данных между тредами — нужен shared pointer,
EP>Он нужен только в случаях когда потоки владеют какими-то общими данными и точный момент удаления заранее не определён.
EP>Если просто нужно передать данные и владение в другой поток, то достаточно и unique, и то не факт — может быть хватит обычного перемещения.
Не владеют, а шарят... Будешь передавать weak_ptr, а значит опять локи.
Для перемещения — YG опять же.
Последствия обращения к неверным указателям — серьёзнее. Не простой краш, а хз что.
А ещё аллокация из кучи — глобальный лок. В общем, тормоза повсюду.
Короче, может и можно писать low latency на C++, но сложнее на порядок.
EP>·>который использует lock (mutex?) -
EP>Обычно в реализациях атомарные inc/dec.
Это где?
Вот тут вроде mutex.