<div dir="ltr">Many thanks are owed to all who participated in the formal review of Zach Laine&#39;s STLInterfaces library, especially during this busy holiday season:<br><br>* Hadriel Kaplan - ACCEPT<br>* Andreas Wass - ACCEPT<br>* Rainer Deyke - ACCEPT<br>* Arthur Gruzauskas - ACCEPT<br>* Krystian Stasiowski - ACCEPT<br>* Daniela Engert - CONDITIONALLY ACCEPT<br>* Gavin Lambert - Technical comments<br><br>First, a summary of the reviews:<br><br>1. Design<br>Reviewers were unanimous in their appreciation for the design. Krystian had the only asterisk about the design, noting that derived class members should ideally be SFINAE-detected, where the library feature would SFINAE where the corresponding required derived feature detection fails. I have a different opinion about this, but we can discuss that elsewhere.<br><br>2. Implementation<br>The container_interface destructor and the optional dependency on cmcstl2 were snags for multiple reviewers. Several compile errors were discovered that need to be addressed.<br><br>3. Documentation<br>Reviewers found the documentation to be &quot;ok&quot;. A common request was for better organization of derived-class requirements, particularly with the container_interface template. Reviewers also lamented the lack of training wheels for the subject matter.<br><br>4. Tests<br>Hadriel noted the lack of non-copyable value_type tests, while Daniela noted the lack of Boost.Build support. Hadriel was the only one who commented on the quality of tests (&quot;good&quot;), and the only one who ran them. Arthur did his own testing, to satisfaction. I appreciate the presence of SFINAE-friendliness tests and the continuous integration.<br><br>5. Usefulness<br>Reviewers appreciated the usefulness of the library. Arthur is &quot;using it happily&quot;, while others found it &quot;very useful&quot;, &quot;fairly useful&quot;, or of &quot;high&quot; usefulness. However, Krystian&#39;s response implied that this library may not be as useful for containers needing extreme performance.<br><br>The reviews clearly demonstrate a consensus. Accordingly, I&#39;m pleased to announce that STLInterfaces is CONDITIONALLY ACCEPTED as a Boost library.<br><br>Conditions for acceptance:<br>1. Remove optional dependency on cmcstl2 (issue #27)<br>2. Add Boost license comments to all files, including appveyor.yml, .travis.yml, README.md, */CMakeLists.txt (issue #26)<br>3. Support Boost.Build (issue #25)<br>4. Replace googletest with Boost equivalent (issue #24)<br>5. Remove usage of non-existent v2_dtl members in container_interface.hpp (issue #22)<br>6. Include &lt;tuple&gt; for std::tie usage in C++14 mode (issue #21)<br>7. Fix dangling parens in container_inteface.hpp:731 (issue #20)<br>8. Make Concepts usage C++20-conformant (issue #13)<br>9. Remove the destructor in container_interface (issue #12)<br>10. Add tests for non-copyable value types (issue #30)<br><br>Suggestions:<br>1. Explicitly document the signatures and return types of functions provided by base class templates (issue #23)<br>2. Mention the C++20 generator pattern in documentation (issue #19)<br>3. Document the library&#39;s interactions with Ranges (issue #18)<br>4. Remove unnecessary comments (issue #17)<br>5. Investigate compile error in VS2015 (msvc 19.0.3) due to issues with noexcept() operator in function overloading (issue #16)<br>6. Rename container_interface to sequence_container_interface (issue #15)<br>7. Change the &#39;contiguous&#39; bool to an enum (issue #14)<br>8. Document the relationship between value_type operator== and containter_interface-defined operator== (issue #11)<br>9. Improve table/section names for better navigation of container_interface tutorial (issue #10)<br>10. Clean up BOOST_STL_INTERFACES_DOXYGEN usage (issue #28)<br>11. Split up fwd.hpp into multiple headers (issue #29)<br>12. Document optimization trade-offs of proxy_iterator_interface (issue #30)<br><br>Rationale:<br>1. Condition #1 is, I feel, the appropriate default as review manager. If Zach feels strongly about keeping the optional dependency on cmcstl2, we should discuss.<br>2. Unless the library requirements webpage has fallen out of date, new libraries must still support Boost.Build.<br>3. A not-so-quick grep of current Boost libraries yields no `gtest` results. I assume that we do not allow googletest as the sole test framework in a library.<br>4. The other conditions should be self-explanatory.<br><br>Thank you Zach for your contributions, and I look forward to working with you to add this library into Boost.<br><br>Regards,<br>Barrett Adair</div>

