| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | // enable_shared_from_this example
#include <iostream>
#include <memory>
struct C : std::enable_shared_from_this<C> { };
int main () {
  std::shared_ptr<C> foo, bar;
  foo = std::make_shared<C>();
  bar = foo->shared_from_this();
  if (!foo.owner_before(bar) && !bar.owner_before(foo))
    std::cout << "foo and bar share ownership";
  return 0;
}
 |