Если вы собираетесь сохранить указатель в shared_ptr
, то у вас есть , чтобы принять его как shared_ptr
, а не необработанный указатель (если вы не пишете умный указатель) ваш собственный класс, который использует shared_ptr
внизу. Но вы не).
Причина в том, что пользователь может уже иметь свой ресурс в shared_ptr
, например, если он умело разместил его там, как только он был создан. Если вы создадите еще один shared_ptr
для того же ресурса, то есть две вещи, которые в конечном итоге удалят его, и это ошибка.
Потенциально вы могли бы обойти это, используя enable_shared_from_this
с вашим классом Compositor, но если нет веской причины, по которой вы не можете взять shared_ptr
во-первых, нет никакого смысла.