Здравствуйте, ·, Вы писали:
·>Тут в топике мне предлагают использовать голые указатели. Это правильное использование? А cyclic references тоже правильное?
Если ты знаешь хозяина (unique_ptr) и его время жизни — то да.
TB>>·>Меняешь чуток код и вдруг вылазишь за время жизни объекта. Упс, битый указатель. TB>>Как можно грохнуть объект, пока он ещё кем-то используется? По-моему, это косяк программиста куда более серьёзный, чем просто какой-то битый указатель. ·>В С++ — запросто. В java — никак.
Как страшно жить!
TB>>·>Можно, конечно. Но деструктор запретить-то нельзя. TB>>...но ГЦ и финализатор запретить нельзя... TB>>(я хз, к чему это, просто разговор поддержать) ·>Конечно нельзя. Но обратиться к объекту, попавшему ГЦ на растерзание — тоже нельзя.
И обратиться к объекту, который уничтожается — тоже нельзя, если программист понимает, что он делает. Если не понимает — то и жаба не поможет. В целом в С++ напортачить проще, из-за чего он и не стал популярнее жабы.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте