3. What happens when root_ptr is deleted and node_ptr exists? Does use of node_ptr lead to undefined behavior? If so it should be marked as big warning.
You can't construct a node_ptr without a root_ptr so node_ptrs are always instantiated after a root_ptr.
I mean stuff like (pseudo-code): node_ptr<int> get_int() { root_ptr<int> r=make_root()... node_ptr<int> p = make_node(r,...) ... return p; } main() { node_ptr<int> p = get_int()... }
(b) If it is your own design/research of concept say it explicitly, otherwise provide references to books, research papers that discuss root pointer algorithms
It is my own research so I have 0 reference to include.
Than you need to really describe the algorithm very well and probably prove the correctness, also it isn't strictly needed.
(c) Describe the algorithm in much wider manner including better examples, values of reference counters etc. (d) Provide much wider beginner tutorial with samples
It sounds like I am going to have write a book on the subject. Any expert is welcome to help me out because if that is the case that will take me some time to write down.
See... you are submitting a library for a review that provides entirely new memory management model (at least you describe it like that) Considering there lots of research done regarding reference counting, GC and cycle detection and other things in computer science literature, and considering that you come with a new concept (even if it is simple/trivial one) than you are expected to provide something very solid. If you are doing it as a part of academic research than it would be good to refer to relevant publications. It is just a part of the game you try to play :-) Good Luck, Artyom Beilis