如果我绑定这样的函数,在绑定时使用占位符
std::bind(memberFunctionPointer, objectPointer, _1, _2);
Run Code Online (Sandbox Code Playgroud)
那么以后可以"重新绑定"它来替换部分/全部占位符,但是不调用函数吗?我希望能够传入一些参数然后存储它,以便稍后调用.(延迟回拨)
我有各种类型的碰撞器类(SphereCollider、AABBCollider 等),它们都继承自基类 Collider。我使用指向基类的指针将它们存储在 std::vector 中。
std::vector<std::shared_ptr<Collider>> colliders;
Run Code Online (Sandbox Code Playgroud)
然后我有各种函数来确定对撞机是否彼此相交。
bool Colliding(const SphereCollider& colliderOne, const SphereCollider& colliderTwo);
bool Colliding(const AABBCollider& colliderOne, const AABBCollider& colliderTwo);
bool Colliding(const AABBCollider& colliderOne, const SphereCollider& colliderTwo);
bool Colliding(const SphereCollider& colliderOne, const AABBCollider& colliderTwo);
Run Code Online (Sandbox Code Playgroud)
我的想法是简单地遍历碰撞器向量,然后将每个碰撞器与列表中的所有其他碰撞器进行比较。
for (unsigned int a = 0; a < colliders.size(); ++a)
{
for (unsigned int b = a + 1; b < colliders.size(); ++b)
{
// Store the two colliders we're current comparing
std::shared_ptr<Collider> colliderOne = colliders[a];
std::shared_ptr<Collider> colliderTwo = colliders[b];
// Somehow cast …Run Code Online (Sandbox Code Playgroud)