gpt4 book ai didi

c++ - 我如何使用 std::shared_ptr 和 box2d?

转载 作者:行者123 更新时间:2023-11-28 06:43:00 25 4
gpt4 key购买 nike

如何为 box2d 世界使用 shared_ptr?我试过:

struct B2DWorld
{
std::shared_ptr<b2World> world;

void init()
{
b2Vec2 gravity(0.0f, -10.0f);
world(gravity);
}
};

但它给了我错误:不匹配调用 '(std::shared_ptr) (b2Vec2&)' world(gravity);

最佳答案

使用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 控件带来额外的分配惩罚结构。

关于c++ - 我如何使用 std::shared_ptr 和 box2d?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25586587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com