Boost C++ Libraries: Ticket #10239: advance_begin, pop_front etc missing https://svn.boost.org/trac10/ticket/10239 <p> It seems iterator_range dropped functions like advance_begin, pop_front etc. This BREAKS existing code and isn't mentioned in the documentation. Did I miss something? </p> <p> It'd be nice if existing functionality was properly deprecated instead of being dropped on the floor. </p> <p> <a href="http://www.boost.org/users/history/version_1_56_0.html">http://www.boost.org/users/history/version_1_56_0.html</a> <a href="http://www.boost.org/doc/libs/1_56_0_b1/libs/range/doc/html/range/upgrade/upgrade_from_1_55.html">http://www.boost.org/doc/libs/1_56_0_b1/libs/range/doc/html/range/upgrade/upgrade_from_1_55.html</a> </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10239 Trac 1.4.3 Neil Groves Mon, 04 Aug 2014 15:24:03 GMT <link>https://svn.boost.org/trac10/ticket/10239#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10239#comment:1</guid> <description> <p> The procedure for deprecation is applied for public documented parts of Boost APIs. The functions to which you refer where not part of the public documented interface. We discussed this here: <a class="ext-link" href="http://lists.boost.org/Archives/boost/2013/01/199947.php"><span class="icon">​</span>http://lists.boost.org/Archives/boost/2013/01/199947.php</a> </p> <p> I received strong feedback that the pop_front and pop_back names were highly confusing. David Abrahams proposed changing the names to drop_front / drop_back. As I mentioned in my previous discussions I was actively working on refining good Concepts that would incorporate some of the valuable work by Alexandrescu. </p> <p> You will find that the function pop_front simply needs to be renamed to drop_front and that pop_back needs to be renamed to drop_back. No functionality has been removed. No public documented features have been broken to the best of my knowledge and belief. The synopsis for iterator_range <a href="http://www.boost.org/doc/libs/master/libs/range/doc/html/range/reference/utilities/iterator_range.html">http://www.boost.org/doc/libs/master/libs/range/doc/html/range/reference/utilities/iterator_range.html</a> contains the drop_front, and drop_back member functions. The drop_back and drop_front member functions are therefore new public and official functions to replace the undocumented pop_front, pop_back, advance_begin. I added a new unit test and brought the functionality up to the standard of the other public functions. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Neil Groves</dc:creator> <pubDate>Mon, 04 Aug 2014 16:58:41 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10239#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10239#comment:2</guid> <description> <p> Eric has corrected me, it was not correct that advance_begin / advance_end were not documented and public. This is therefore a serious matter indeed. I have made an immediate fix and pushed to the develop branch. </p> <p> I have restored the pop_front() and pop_back() functions as deprecated functions. The advance_begin(difference_type) and advance_end(difference_type) have been put back into the code and will not be removed at a future point. Very rudimentary unit tests have been added for these. </p> <p> I shall merge to master in cooperation with the release team and do my best to ensure this gets into 1.56. </p> <p> I'm sorry for my errors. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Eric Niebler</dc:creator> <pubDate>Tue, 05 Aug 2014 16:37:00 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/10239#comment:3 https://svn.boost.org/trac10/ticket/10239#comment:3 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> The fix for this bug will (hopefully!) have the distinction of being the last change to make it into 1.56.0. Thanks Olaf for raising the issue. </p> Ticket