Add operator==() and operator!=()
This commit is contained in:
parent
47273edf6e
commit
4a1a0c8855
@ -105,6 +105,26 @@ public:
|
|||||||
return ptr != nullptr;
|
return ptr != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool operator==(const rcp<T> & other) const
|
||||||
|
{
|
||||||
|
return ptr == other.ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator!=(const rcp<T> & other) const
|
||||||
|
{
|
||||||
|
return ptr != other.ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(std::nullptr_t) const
|
||||||
|
{
|
||||||
|
return ptr == nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator!=(std::nullptr_t) const
|
||||||
|
{
|
||||||
|
return ptr != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
static rcp<T> create(Args&&... args)
|
static rcp<T> create(Args&&... args)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -68,14 +68,19 @@ void test_dereference()
|
|||||||
assert(mybase->y == 3);
|
assert(mybase->y == 3);
|
||||||
assert((*mybase).x == 2);
|
assert((*mybase).x == 2);
|
||||||
assert((*mybase).y == 3);
|
assert((*mybase).y == 3);
|
||||||
|
rcp<MyBase> mybase2 = mybase;
|
||||||
|
assert(mybase == mybase2);
|
||||||
|
assert(!(mybase != mybase2));
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_booleans()
|
void test_booleans()
|
||||||
{
|
{
|
||||||
rcp<MyBase> mybase = MyBase::create(2, 3);
|
rcp<MyBase> mybase = MyBase::create(2, 3);
|
||||||
assert(mybase);
|
assert(mybase);
|
||||||
|
assert(mybase != nullptr);
|
||||||
rcp<MyDerived> myderived;
|
rcp<MyDerived> myderived;
|
||||||
assert(!myderived);
|
assert(!myderived);
|
||||||
|
assert(myderived == nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_create()
|
void test_create()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user