diff --git a/include/rcp.h b/include/rcp.h index a7e195b..f46b27b 100644 --- a/include/rcp.h +++ b/include/rcp.h @@ -275,7 +275,8 @@ rcp rcp_dynamic_cast(rcp && other) } #define rcp_managed_root(classname) \ - public: \ + private: \ + mutable std::atomic ref_count{0}; \ void rcp_inc() const \ { \ ref_count.fetch_add(1, std::memory_order_relaxed); \ @@ -291,8 +292,7 @@ rcp rcp_dynamic_cast(rcp && other) { \ return ref_count.load(std::memory_order_relaxed); \ } \ - private: \ - mutable std::atomic ref_count{0}; \ + template friend class rcp; \ rcp_managed(classname) #define rcp_managed(classname) \