私は SFML をいじり、単純な 2D ゲームを構築する方法を考え出しました。この動作に気付いたばかりで、何が起こっているのかわかりませんでした。私を混乱させているサンプルコード:
struct Unique {};
class Shared {
public:
Shared() {
p = make_unique<Unique>();
}
unique_ptr<Unique> p;
};
void SharedCopyTest() {
Shared foo;
//Shared copy = foo; // Error: function "Shared::Shared(const Shared &)"
// (declared implicitly) cannot be referenced
// -- it is a deleted function
shared_ptr<Shared> sharedPtr = make_shared<Shared>();
shared_ptr<Shared> ptrCopy = sharedPtr; // No error
}
この時点で、&sharedPtr->p == &ptrCopy->p
; p
がタイプの場合、どうすれば可能unique_ptr<T>
ですか?