如何将std::shared_ptr与box2d结合使用
How do I us std::shared_ptr with box2d?
如何将shared_ptr用于box2d世界?我试过了:
struct B2DWorld
{
std::shared_ptr<b2World> world;
void init()
{
b2Vec2 gravity(0.0f, -10.0f);
world(gravity);
}
};
但它给了我一个错误:无法匹配对"(std::shared_ptr)(b2Vec2&)"世界(重力)的调用;
使用make_shared
:
void init()
{
b2Vec2 gravity(0.0f, -10.0f);
world = std::make_shared<b2World>(gravity);
}
或者更紧凑:
world = std::make_shared<b2World>(b2Vec2(0.0f, -10.0f));
您可以使用new b2Vec2(...)
而不是make_shared
,但这会对shared_ptr
控制结构产生额外的分配惩罚。
相关文章:
- 多态性和功能结合
- 将 Vulkan 与 SFML 结合使用?
- 将 c++ 生成器应用程序与外部 dll 结合使用
- 如何将增强MSM与增强信号结合使用?
- MS Visual Studio 解决方案结合了非托管C++项目和 C# 项目
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- Box2D World.GetBodyList() 返回 NULL,但 World 显然正在更新对象
- 将预编译的 C 共享库与 JNI/NDK 结合使用
- C++ 将函数指针与最佳性能相结合
- 使用 vcpkg 安装 box2d
- 将 Lua 与 C++ DLL 结合使用
- 为什么push_back和emplace_back结合在一起时,会有不同的行为
- 将 aws-iot-device-sdk-cpp-v2 与 CMake 结合使用
- 如何在Cmake中正确查找头路径,以便在我的项目中构建Box2D
- Box2D Contact Listener碰撞仅间歇性工作
- 将2个欧拉角与GLM相结合的问题
- 结合std::execution和OpenMP是否可取
- 抽象和派生与std::list相结合
- 想要将 CGAL 与四元数相结合是否合乎逻辑
- 如何将std::shared_ptr与box2d结合使用