#include using std::shared_ptr; class A { public: shared_ptr next; shared_ptr prev; }; int main(int argc, char **argv) { shared_ptr head(new A()); head->next = shared_ptr(new A()); head->next->prev = head; return 0; }