Skip to content

Instantly share code, notes, and snippets.

@sharth
Created July 6, 2014 16:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sharth/843f894237393f9f5273 to your computer and use it in GitHub Desktop.
Save sharth/843f894237393f9f5273 to your computer and use it in GitHub Desktop.
class Collider {
};
class SpecificCollider : public Collider {
};
struct ColliderDetails {
std::unique_ptr<Collider> collider;
ColliderDetails(ColliderDetails&& o) noexcept
{
collider = std::move(o.collider);
}
};
int main() {
SpecificCollider collider;
ColliderDetails colliderDetail;
colliderDetail.collider.reset(new Collider(collider));
std::vector<ColliderDetails> colliderVector;
colliderVector.push_back(std::move(colliderDetail));
colliderVector.back()->callVirtualMethod() // <-- calls base class.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment