rcp/test/tests.cpp

56 lines
890 B
C++

#include <rcp.h>
#include <cassert>
static int mybase_construct;
static int mybase_destruct;
static int myderived_construct;
static int myderived_destruct;
class MyBase
{
rcp_root(MyBase);
protected:
MyBase(int x, int y)
{
mybase_construct++;
}
virtual ~MyBase()
{
mybase_destruct++;
}
};
class MyDerived : public MyBase
{
rcp_managed(MyDerived);
protected:
MyDerived(double v) : MyBase(1, 2)
{
myderived_construct++;
}
virtual ~MyDerived()
{
myderived_destruct++;
}
};
void t1()
{
rcp<MyBase> mybase = MyBase::create(4, 5);
rcp<MyDerived> myderived = MyDerived::create(42.5);
}
int main(int argc, char * argv[])
{
t1();
assert(mybase_construct == 2);
assert(mybase_destruct == 2);
assert(myderived_construct == 1);
assert(myderived_destruct == 1);
return 0;
}