Auto_ptr hoje em dia
-
Bem pelo que me parece o auto_ptr da STL está depreciado. Quais as alternativas de smartpointers temos hoje em dia no padrão atual?
-
O auto_ptr foi trocado pelo unique_ptr.
Lá no trabalho, tem um projeto em C++ (não Qt), que está repleto de shared_ptr.
-
Minha segunda dúvida é pq ainda hoje encontramos muito código com deleção manual, se existem os SP.
Pq vemos pouco uso deles por ai? -
Sei não.
Eu chutaria 2 fatores. Falta de conhecimento e suporte a diferentes compiladores.
Neste último caso, as vezes o programa precisa ser compilado, por exemplo, num compilador mais antigo. -
Os SP pode ser a saída para os Deletes? É viavel fazer uma aplicação inteira sem nenhum delete, apenas usando SP? Eu teria problema com desempenho?
-
Os SmartPointers são, de certa forma, um garbage collection. É sim uma saída para um delete explícito.
Uma aplicação pode ser inteiramente criada sem delete explícito.
Eu não enxergo um problemão de desempenho. Mas em aplicações críticas (imagens, video, jogos, mundo financeiro...) tem que avaliar. Por exemplo, shared_ptr com threads pode ser um problema (O QSharedPointer é thread-safe. Com isso vai "lockar" automaticamente).