shared_ptr - это интеллектуальный указатель подсчета ссылок в библиотеке Boost.
Проблема с подсчетом ссылок заключается в том, что он не может избавиться от циклов. Мне интересно, как можно решить это на С++.
Пожалуйста, никаких предложений вроде: "не делать циклы" или "использовать слабые_ptr".
Edit
Мне не нравятся предложения, которые говорят, что просто используйте weak_ptr, потому что, очевидно, если вы знаете, что создадите цикл, тогда у вас не будет проблемы. Вы также не можете знать, что во время компиляции у вас будет цикл, если вы создадите shared_ptrs во время выполнения.
Так что, пожалуйста, удалите ответы, в которых используется weak_ptr, потому что я специально попросил не иметь таких ответов...