Nesne sahipliğini gereksiz shared_ptr kullanımına dönüştürmeden modern C++ akıllı pointer stratejisi nasıl kurulmalı?

Bağlam

Bu soruda özellikle üretim ortamında uygulanabilir, gerekçesi açıklanmış yaklaşımlar arıyoruz. Yalnızca kısa bir teknoloji adı vermek yerine hangi koşulda neden o yaklaşımı seçtiğinizi belirtmeniz diğer kullanıcılar için daha faydalı olacaktır.

Değerlendirmek istediğimiz noktalar

  • Tek sahiplik varsayılan olmalı mı?
  • Cycle riskini hangi noktada weak_ptr ile kırmak gerekir?
  • API sınırında raw pointer/reference ne zaman anlamlıdır?

Örnek kod, mimari şema, ölçüm sonucu veya hata ayıklama adımı paylaşabiliyorsanız cevabınızı daha somut hâle getirebilirsiniz.