Please post your comments and review to the boost mailing list (preferably), the Boost Library Incubator. or privately to the Review Manager (to me ;-). Here are some questions you might want to answer in your review:
- What is your evaluation of the design?
The overall design seems sound. The library identifies a clear need and seems to provide a carefully crafted solution.
- What is your evaluation of the implementation?
I did not look into the implementation in detail.
- What is your evaluation of the documentation?
The documentation seemed amazingly clear, even though I am not a game developer and do not relate daily to warriors and goblins. The common thread in the documentation and the clarity of progression of the tutorial was great. I did not review the reference documentation, though. In part, it seems unnecessary because the basic concepts seemed so well thought out and clearly described. I appreciate that there may be subtleties to bits of the API, but I will leave it to those more familiar with the details of implementation to improve.
- What is your evaluation of the potential usefulness of the library?
I feel this library would be very useful and can see using it in my own code. For example, right now I am working with a hierarchy of objects that must be stored in a container; there are lots of objects but relatively few classes in the hierarchy. This seems perfect for the base_collection container.
- Did you try to use the library? With what compiler? Did you have any problems?
I did use the library. In particular, I compiled all of the examples and built a small program with a class hierarchy of my own to test my understanding of the base_collection container. This was done with Apple LLVM version 8.0.0 (clang-800.0.42.1). The only problem was that the following test cases needed -std=c++14 (rather than c++11) because std::make_unique is not defined for c++11 on that compiler: algorithms, basic_function, and segmented_structure.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
I have read through most of the documentation (basically all of the tutorial) and have been following much of the discussion during the review.
- Are you knowledgeable about the problem domain?
I am not particularly knowledgeable about writing optimized collections such as this, but I am knowledgeable from a user perspective on using them and on some of the optimizations that would be useful.
- Do you think the library should be accepted as a Boost library?
Yes, I feel this would be a very useful addition to Boost and would likely use it in my code. Cheers, Brook