From 754fd941ee0c30c347eaaf77706c8a797b8fdf18 Mon Sep 17 00:00:00 2001
From: Peter Dimov
-class Y: public enable_shared_from_this<Y> +#include <boost/enable_shared_from_this.hpp> +#include <boost/shared_ptr.hpp> +#include <cassert> + +class Y: public boost::enable_shared_from_this<Y> { public: - shared_ptr<Y> f() + boost::shared_ptr<Y> f() { return shared_from_this(); } -} +}; int main() { - shared_ptr<Y> p(new Y); - shared_ptr<Y> q = p->f(); + boost::shared_ptr<Y> p(new Y); + boost::shared_ptr<Y> q = p->f(); assert(p == q); assert(!(p < q || q < p)); // p and q must share ownership }