diff --git a/include/rcp.h b/include/rcp.h index 2280b8e..e0d9bf5 100644 --- a/include/rcp.h +++ b/include/rcp.h @@ -99,6 +99,11 @@ public: { return !ptr; } + + operator bool() const + { + return ptr != nullptr; + } }; #define rcp_managed_root(classname) \ diff --git a/test/tests.cpp b/test/tests.cpp index 7e9186a..f0e348f 100644 --- a/test/tests.cpp +++ b/test/tests.cpp @@ -69,9 +69,18 @@ void test_dereference() assert((*mybase).y == 3); } +void test_booleans() +{ + rcp mybase = MyBase::create(2, 3); + assert(mybase); + rcp myderived; + assert(!myderived); +} + int main(int argc, char * argv[]) { test_destructors_called(); test_dereference(); + test_booleans(); return 0; }