El 21/04/2026 a las 17:13, Matt Borland via Boost escribió:
Hello All,
Below is my review of boost::container::hub: Hi Matt, thanks for your review. [...]
- What is your evaluation of the implementation?
Generally the implementation is pretty clean and straightforward. I don't have any specific recommendations to offer on this front.
No warnings are set in the testing by default. At a minimum I recommend checking -Wall and -Werror, with -Wextra plus a handful of additional being ideal. The one that's most obviously needing a fix after reading the code is -Wold-style-cast. Noted, will do. I appreciate that the library ships with pretty printers and information on how to use them.
I find it odd that GCC 4.8 and Clang 3.5 are supported but the minimum MSVC version is 14.3. Surely 14.0 can be supported if such ancient versions of other compilers are? Chances are MSVC 14.0 is supported, but Boost.CI, which I rely on, doesn't seem to exercise that compiler? - What is your evaluation of the documentation? (Note that, if accepted, final documentation will be included in Boost.Container docs, so please review the content, not the format)
In general I think the docs answers the questions as to why use this container, and why he engineered it as such. My biggest complaint is with the performance comparisons; there must be a better way to display the information than densely packed ASCII tables. I think a good starting point is likely to talk to Peter Turcan on a better way to display this information. I expect Peter has some good opinions on the matter. Ideas here most welcome. The main problem I have wrapping my head around this is that the info displayed runs across 5 different dimensions :-) (compiler, sizeof(element), test case, container size, erase rate). - What is your evaluation of its potential usefulness?
Hub has articulated use cases, and std::hive has been accepted into C++26. There's clearly demand and applications for such a container.
- Did you try to use the container? With which compiler(s)? Did you have any problems?
I ran the tests an ARM Mac using Clang version 22.1.3 and GCC 15.2.0. 4 of the 5 tests failed which have been reported upstream along with PRs. The fix is a one-liner so I am not deeply concerned. I did not try running with enhanced warnings like I have recommended above.
Thanks for that, PRs noted, I'm keeping them on hold till the review ends so that the develop branch is not a moving target for reviewers. GCC 15.2 and Clang 22 are not being used by Boost.CI yet, in case Alexander Grund / Sam Darwin are reading this.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
A few hours to go through the implementation and doc page.
- Are you knowledgeable about the problem domain?
I do not claim to be an expert in the design of containers.
In conclusion, I vote to ACCEPT. I think this is a useful, and well engineered container. Joaquín has an extensive history in the Boost ecosystem so I have high degree of confidence that hub will continue to be improved and maintained. I think the quality of the author is nearly as important as the quality of the library.
Thanks again for your time and excellent feedback, Joaquín M López Muñoz