|
Boost : |
Subject: [boost] [Root Pointer] Seeking a Review Manager
From: Phil Bouchard (philippeb8_at_[hidden])
Date: 2016-04-01 01:25:10
Greetings,
- "Root Pointer" is an alternative to the long unsolved problem of
garbage collectors which lasted for more than 70 years!
- Thanks to Paul A. Bristow for his help on the generation of the
documentation which is now available at the following link:
http://philippeb8.github.io/root_ptr/
(I apologize for the misplaced images in the rationale)
- The library itself can be found here:
https://github.com/philippeb8/root_ptr/
All examples and tests compile fine with BJAM with GCC and MSVC.
- Also here is a quick overview on the benchmarks:
Single threaded:
unique_ptr (new): 43.2705
unique_ptr (make_unique): 42.4111
shared_ptr (new): 68.9101
shared_ptr (make_shared): 46.6575
shared_ptr (allocate_shared_noinit): 31.2334
root_ptr (new): 30.3701
Multi threaded:
unique_ptr (new): 42.1397
unique_ptr (make_unique): 43.4631
shared_ptr (new): 76.4543
shared_ptr (make_shared): 76.6611
shared_ptr (allocate_shared_noinit): 81.9926
root_ptr (new): 66.3417
- An example of its usage can be seen here:
https://github.com/philippeb8/root_ptr/blob/master/example/t100_test1.cpp
We can see in the aforementioned link that outputting part of a complex
graph, cyclic or not, can be done in the following simple way:
cout << "Mind dump:" << endl;
cout << * t100 << endl;
cout << "Searching for: \"einstein\"" << endl;
if (node_ptr<neuron_base> p = t100->search("einstein"))
cout << p->sort().unique() << endl;
cout << "Searching for: \"graviton\"" << endl;
if (node_ptr<neuron_base> p = t100->search("graviton"))
cout << p->sort().unique() << endl;
Sincerely yours,
-Phil
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk