Compare commits

...
3 Commits
Author SHA1 Message Date
josh 9dfb6e4740 Rename rcp_root() to rcp_managed_root() 2026-02-23 22:37:06 -05:00
josh 53b2247432 Avoid need for rcp_managed() call in rcp root class 2026-02-23 22:35:57 -05:00
josh 83ca3d8893 Add visibility attributes to rcp_managed() 2026-02-23 22:35:19 -05:00
2 changed files with 9 additions and 10 deletions

No files matched your search

+6 -3
View File
@@ -96,7 +96,7 @@ public:
}
};
#define rcp_root() \
#define rcp_managed_root(classname) \
public: \
void rcp_inc() const \
{ \
@@ -110,9 +110,11 @@ public:
} \
} \
private: \
mutable std::atomic<int> ref_count{0}
mutable std::atomic<int> ref_count{0}; \
rcp_managed(classname)
#define rcp_managed(classname) \
public: \
rcp<classname> get_rcp() \
{ \
return rcp<classname>(this); \
@@ -121,4 +123,5 @@ public:
static rcp<classname> create(Args&&... args) \
{ \
return (new classname(std::forward<Args>(args)...))->get_rcp(); \
}
} \
private:
+3 -7
View File
@@ -8,7 +8,7 @@ static int myderived_destruct;
class MyBase
{
rcp_root();
rcp_managed_root(MyBase);
protected:
MyBase(int x, int y)
@@ -20,13 +20,12 @@ protected:
{
mybase_destruct++;
}
public:
rcp_managed(MyBase);
};
class MyDerived : public MyBase
{
rcp_managed(MyDerived);
protected:
MyDerived(double v) : MyBase(1, 2)
{
@@ -37,9 +36,6 @@ protected:
{
myderived_destruct++;
}
public:
rcp_managed(MyDerived)
};
void t1()