将其转换为标准::shared_ptr



我在当前的代码库中遇到了一个小问题。我正在尝试实例化ShockRenderSystem类的新std::shared_ptr。ShockRenderSystem 的构造函数采用类 ShockGame 的 std::shared_ptr,以及在这种情况下无关的 sf::VideoMode。这是我正在尝试执行的代码(m_render_system是一个 std::shared_ptr):

m_render_system = std::shared_ptr<ShockRenderSystem>(new ShockRenderSystem((static_cast<std::shared_ptr<ShockGame> >(this)), mode));

我正在尝试将this转换为可以传递给构造函数的 std::shared_ptr。请注意,此代码位于 ShockGame 的构造函数中。

我收到错误:no matching function for call to 'SE::ShockRenderSystem::ShockRenderSystem(std::shared_ptr<SE::ShockGame>*, sf::VideoMode&)' candidate is: SE::ShockRenderSystem::ShockRenderSystem(std::shared_ptr<ShockGame>, sf::VideoMode)

感谢您的任何帮助!

std::enable_shared_from_this派生ShockGame

对于任何来到这个线程的人,请记住将你的this指针替换为 shared_from_this() .

相关内容

  • 没有找到相关文章

最新更新