2009-05-08から1日間の記事一覧

intrusive_ptr を楽に定義する

C++

template<class Derived> class intrusive_ptr_facade { friend Derived; std::size_t ref_; friend inline void intrusive_ptr_add_ref(Derived* p) { ++static_cast<intrusive_ptr_facade<Derived>*>(p)->ref_; } friend inline void intrusive_ptr_release(Derived* p) { if (--static_cast</intrusive_ptr_facade<derived></class>