「shared_ptr便利だよ」という話になるたびに
「循環参照あるじゃん!」て話になってる(気がする)のでその手の話は飽きました
いちおう、私が「shared_ptr便利だよ」っていうときは
「(循環参照が起こりえることがわかっているなら)shared_ptr便利だよ」という意味です
shared_ptrはリファレンスや解説サイトでだいたいweak_ptrとセットで説明されているのだから
循環参照やweak_ptrの存在を知らずにshared_ptrを使う、ということは少ないんじゃないかな
shared_ptrを使ったことがないひとに
「shared_ptr使うとメモリ管理がラクになるよ」と勧めてるときに
「循環参照があるんだぜ」みたいに言われると
shared_ptrを使い始めようとしてる人のハードルを上げてしまう気がします
私は循環参照がある種の例外だと思っているので
weak_ptrという解決方法が用意されてるshared_ptrをどんどん使ってみてほしいと思います