X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2Fintrusive_refcount.hh;h=d3b980f35ffdbe8ac60f8b9a0e31270900fdac45;hb=412024ed31a4ab4eaea7a4165a434f8efebee325;hp=8ce578571c7ac6d1f1df12c0fff55150536cde4f;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Utils/intrusive_refcount.hh b/Utils/intrusive_refcount.hh index 8ce5785..d3b980f 100644 --- a/Utils/intrusive_refcount.hh +++ b/Utils/intrusive_refcount.hh @@ -23,8 +23,8 @@ /** \file \brief intrusive_refcount public header */ -#ifndef HH_intrusive_refcount_ -#define HH_intrusive_refcount_ 1 +#ifndef HH_SENF_Utils_intrusive_refcount_ +#define HH_SENF_Utils_intrusive_refcount_ 1 // Custom includes #include @@ -61,6 +61,13 @@ namespace senf { private: refcount_t refcount_; + template void intrusive_ptr_add_ref(); + template void intrusive_ptr_release(); + + template + friend void senf::intrusive_ptr_add_ref(intrusive_refcount_t const * p); + template + friend void senf::intrusive_ptr_release(intrusive_refcount_t const * p); }; /** \brief Customizable reference count mixin for intrusive_ptr @@ -115,15 +122,6 @@ namespace senf { { protected: intrusive_refcount_t(); - - private: - void intrusive_ptr_add_ref(); - void intrusive_ptr_release(); - - template - friend void senf::intrusive_ptr_add_ref(intrusive_refcount_t * p); - template - friend void senf::intrusive_ptr_release(intrusive_refcount_t * p); }; /** \brief Reference count mixin for intrusive_ptr @@ -160,9 +158,9 @@ namespace senf { }; template - void intrusive_ptr_add_ref(intrusive_refcount_t * p); + void intrusive_ptr_add_ref(intrusive_refcount_t const * p); template - void intrusive_ptr_release(intrusive_refcount_t * p); + void intrusive_ptr_release(intrusive_refcount_t const * p); }