Changes for other compilers
This commit is contained in:
parent
3a25d4bf26
commit
fedfa861b6
12
main.cpp
12
main.cpp
@ -38,6 +38,8 @@ public:
|
|||||||
// TODO: If Swap is implemented with std::swap instead of deleting the current object, this should not be done!
|
// TODO: If Swap is implemented with std::swap instead of deleting the current object, this should not be done!
|
||||||
// However, that would mean that the old object can stay in memory unnecessarily long (until 'other' goes out of scope)
|
// However, that would mean that the old object can stay in memory unnecessarily long (until 'other' goes out of scope)
|
||||||
other.object = nullptr;
|
other.object = nullptr;
|
||||||
|
|
||||||
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Destructor
|
/// Destructor
|
||||||
@ -136,7 +138,7 @@ void customTestObjectDeleter(TestObject *object) {
|
|||||||
int main() {
|
int main() {
|
||||||
{
|
{
|
||||||
std::cout << "Constructing first pointer" << std::endl;
|
std::cout << "Constructing first pointer" << std::endl;
|
||||||
UniquePtr pointer = UniquePtr<TestObject>(new TestObject());
|
UniquePtr<TestObject> pointer = UniquePtr<TestObject>(new TestObject());
|
||||||
|
|
||||||
std::cout << "Calling test print via pointer if it bools to true" << std::endl;
|
std::cout << "Calling test print via pointer if it bools to true" << std::endl;
|
||||||
if (pointer) {
|
if (pointer) {
|
||||||
@ -147,10 +149,10 @@ int main() {
|
|||||||
pointer.Swap(new TestObject());
|
pointer.Swap(new TestObject());
|
||||||
|
|
||||||
std::cout << "Move assigning new pointer" << std::endl;
|
std::cout << "Move assigning new pointer" << std::endl;
|
||||||
UniquePtr pointer2 = UniquePtr<TestObject>(std::move(pointer));
|
UniquePtr<TestObject> pointer2 = UniquePtr<TestObject>(std::move(pointer));
|
||||||
|
|
||||||
std::cout << "Constructing pointer with custom deleter" << std::endl;
|
std::cout << "Constructing pointer with custom deleter" << std::endl;
|
||||||
UniquePtr pointer3 = UniquePtr<TestObject>(new TestObject(), customTestObjectDeleter);
|
UniquePtr<TestObject> pointer3 = UniquePtr<TestObject>(new TestObject(), customTestObjectDeleter);
|
||||||
|
|
||||||
std::cout << "Resetting that pointer" << std::endl;
|
std::cout << "Resetting that pointer" << std::endl;
|
||||||
pointer3.Reset();
|
pointer3.Reset();
|
||||||
@ -160,8 +162,8 @@ int main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "Moving into a pointer which already has an object" << std::endl;
|
std::cout << "Moving into a pointer which already has an object" << std::endl;
|
||||||
UniquePtr pointer4 = UniquePtr(new TestObject());
|
UniquePtr<TestObject> pointer4 = UniquePtr<TestObject>(new TestObject());
|
||||||
UniquePtr pointer5 = UniquePtr(new TestObject());
|
UniquePtr<TestObject> pointer5 = UniquePtr<TestObject>(new TestObject());
|
||||||
pointer4 = std::move(pointer5);
|
pointer4 = std::move(pointer5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user