Boost C++ Libraries: Ticket #7888: circular_buffer should support move semantics https://svn.boost.org/trac10/ticket/7888 <p> I would like to use circular buffer to store unique_ptr's or other moveable objects. I hope this feature will be added. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7888 Trac 1.4.3 anonymous Mon, 14 Jan 2013 12:15:06 GMT <link>https://svn.boost.org/trac10/ticket/7888#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:1</guid> <description> <p> Elaborate please. What it is move semantics? Why you cannot store unique_ptrs in the current version? </p> </description> <category>Ticket</category> </item> <item> <author>holmes@…</author> <pubDate>Mon, 14 Jan 2013 12:59:03 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:2</guid> <description> <p> a description of the term move semantics can be found here <a class="ext-link" href="http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html"><span class="icon">​</span>http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html</a> </p> <p> Here is an example of what I would like to do which works with a std::deque : </p> <p> </p> <pre class="wiki">std::deque&lt;std::unique_ptr&lt;int&gt;&gt; myQueue; std::unique_ptr&lt;int&gt; myP(new int(4)); myQueue.push_back(std::move(myP)); //transfer ownership to the queue auto otherP = std::move(myQueue.front()); //transfer ownership back from the queue to a new unique_ptr myQueue.pop_front(); </pre><p> This doesn't work with boost::circular_buffer because there is only one overload of push_back and it takes a const T&amp;. I need another overload that takes T&amp;&amp;. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Tue, 19 Mar 2013 22:11:18 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:3</guid> <description> <p> I would also like to see this feature implemented in circular_buffer. At this moment it is actually possible to use std::shared_ptr. But, in order to maintain the same semantics as other containers in C++11 STL, circular_buffer should implement move semantics as well. Once that happens, using std::unique_ptr will be straightforward, bringing a potential performance improvement compared to std::shared_ptr. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Wed, 24 Apr 2013 13:51:15 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:4</guid> <description> <p> One more request for this. If you store more complex elements inside the circular buffer, you don't want to have overhead code to care for the destruction of the elements when they are pushed out of the ring. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Mon, 01 Jul 2013 15:06:49 GMT</pubDate> <title>owner, status changed https://svn.boost.org/trac10/ticket/7888#comment:5 https://svn.boost.org/trac10/ticket/7888#comment:5 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Jan Gaspar</span> to <span class="trac-author">Antony Polukhin</span> </li> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> Ticket Antony Polukhin Tue, 02 Jul 2013 13:51:57 GMT <link>https://svn.boost.org/trac10/ticket/7888#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:6</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/84941" title="Basic commit of C++11 move constructor and move assignment for ...">[84941]</a>) Basic commit of C++11 move constructor and move assignment for circular_buffer (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>). some of the functions marked with BOOST_NOEXCEPT </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Mon, 08 Jul 2013 13:41:59 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:7</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/84984" title="Add basic rvalues move support for elements of circular_buffer (refs ...">[84984]</a>) Add basic rvalues move support for elements of circular_buffer (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>). Patch uses Boost.Move to emulate rvalues in C++03 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 09 Jul 2013 09:32:46 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:8</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/84988" title="Improved rvalues move support for elements of circular_buffer (refs ...">[84988]</a>) Improved rvalues move support for elements of circular_buffer (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>): </p> <ul><li>move_if_noexcept uses is_copy_constructible trait </li><li>more tests, tests are now more strict </li><li>linearize() now works with move-only types </li></ul> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 09 Jul 2013 15:06:17 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:9</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/84991" title="Improved rvalues move support for elements of circular_buffer (refs ...">[84991]</a>) Improved rvalues move support for elements of circular_buffer (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>): </p> <ul><li>set_capacity and rset_capacity now work with move-only types if move constructor of type marked with <code>noexcept</code> </li><li>force placement ::new usage </li><li>minor optimizations (move values in more cases) </li><li>more tests </li></ul> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Thu, 11 Jul 2013 14:55:25 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:10 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:10</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85003" title="Improved rvalues move support for elements of circular_buffer (refs ...">[85003]</a>) Improved rvalues move support for elements of circular_buffer (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>): </p> <ul><li>all <code>erase</code> methods now use move construction to to move elements </li><li>space optimized circullar buffer now has move constructor, move assignment and functions that work with rvalues </li><li>more methods marked as BOOST_NOEXCEPT </li><li>much more tests </li></ul> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Wed, 17 Jul 2013 14:09:33 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:11 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:11</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85059" title="Fix errors in circular_buffer tests(refs #7888).">[85059]</a>) Fix errors in circular_buffer tests(refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Fri, 19 Jul 2013 14:41:42 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:12 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:12</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85082" title="Fixed my own typo (refs #7888)">[85082]</a>) Fixed my own typo (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Mon, 22 Jul 2013 11:44:12 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:13 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:13</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85101" title="Fixed MSVC related bug for rvalues move support of circular_buffer ...">[85101]</a>) Fixed MSVC related bug for rvalues move support of circular_buffer (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 23 Jul 2013 16:06:39 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:14 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:14</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85133" title="Fix errors in circular_buffer tests(refs #7888).">[85133]</a>) Fix errors in circular_buffer tests(refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Thu, 08 Aug 2013 15:32:12 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:15 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:15</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85240" title="Updated documentaion of the circular_buffer to reflect the rvalue ...">[85240]</a>) Updated documentaion of the circular_buffer to reflect the rvalue references support (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>) + replaced some tabs with whitespaces and added the boost.root parameter to jamfile.v2 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Sun, 25 Aug 2013 12:36:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:16 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:16</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85458" title="Make move_if_noexcept more strict and move values only if they have ...">[85458]</a>) Make move_if_noexcept more strict and move values only if they have noexcept move constructor *and* noexcept move assignment operator (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Thu, 29 Aug 2013 08:39:12 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7888#comment:17 https://svn.boost.org/trac10/ticket/7888#comment:17 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85510" title="Big merge of Boost.CircularBuffer : * Full merge of QuickBoock ...">[85510]</a>) Big merge of Boost.<a class="missing wiki">CircularBuffer</a> : </p> <ul><li>Full merge of <a class="missing wiki">QuickBoock</a> documentation from Paul A. Bristow </li><li>Merged rvalue references support with tests and documentation (fixed <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7888" title="#7888: Feature Requests: circular_buffer should support move semantics (closed: fixed)">#7888</a>) </li></ul> Ticket pbf@… Tue, 12 Nov 2013 21:28:31 GMT <link>https://svn.boost.org/trac10/ticket/7888#comment:18 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:18</guid> <description> <p> This change has unfortunately introduced fresh warnings when building against boost 1.55 using <a class="missing wiki">VisualStudio</a> 2010 with warning level 4. I now see: </p> <p> 1&gt;C:\src\svn\OTI\<a class="missing wiki">ThirdParty</a>\boost_1_55_0_OT1\include\boost/circular_buffer/base.hpp(199): warning C4172: returning address of local variable or temporary </p> <p> Likewise, building using gcc 4.4.7 on <a class="missing wiki">RedHat</a> produces the following warning: </p> <table class="wiki"> <tr>/media/sf_C_DRIVE/src/svn/OTI/ThirdParty/boost_1_55_0_OT1/include/boost/circular_buffer/base.hpp:2157: error: suggest parentheses around ‘&amp;&amp;’ within ‘<td style="text-align: left">’ </td></tr></table> <p> Shall I open a new ticket for this issue? Unfortunately it's causing my builds to break, since I build with warnings-as-errors on both platforms. I'll need to either disable the warnings, or fix the problems. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 12 Nov 2013 21:51:06 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:19 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:19</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/7888#comment:18" title="Comment 18">pbf@…</a>: </p> <blockquote class="citation"> <p> This change has unfortunately introduced fresh warnings when building against boost 1.55 using <a class="missing wiki">VisualStudio</a> 2010 with warning level 4. I now see: </p> </blockquote> <p> Great thanks for reporting that issue! I'll take care of those warnings, no need to open a separate ticket. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 12 Nov 2013 21:51:24 GMT</pubDate> <title>status changed; resolution deleted https://svn.boost.org/trac10/ticket/7888#comment:20 https://svn.boost.org/trac10/ticket/7888#comment:20 <ul> <li><strong>status</strong> <span class="trac-field-old">closed</span> → <span class="trac-field-new">reopened</span> </li> <li><strong>resolution</strong> <span class="trac-field-deleted">fixed</span> </li> </ul> Ticket michael.broida@… Thu, 22 May 2014 22:54:30 GMT <link>https://svn.boost.org/trac10/ticket/7888#comment:21 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:21</guid> <description> <p> We have hit the same NEW warnings in circular_buffer in Boost 1.55.0 with VS2010 and all warnings treated as errors. This issue shows "reopened", but that was six months ago and no more info. Any indication of when it will be fixed, and/or a patch we can apply ourselves? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Fri, 23 May 2014 10:21:26 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:22 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:22</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/7888#comment:21" title="Comment 21">michael.broida@…</a>: </p> <blockquote class="citation"> <p> We have hit the same NEW warnings in circular_buffer in Boost 1.55.0 with VS2010 and all warnings treated as errors. This issue shows "reopened", but that was six months ago and no more info. Any indication of when it will be fixed, and/or a patch we can apply ourselves? </p> </blockquote> <p> Warning with parentheses is fixed in develop and master <a class="ext-link" href="https://github.com/boostorg/circular_buffer"><span class="icon">​</span>branches</a> </p> <p> Other warning is not fixed. The simplest workaround would be to disable this warning at all. </p> <p> Correct solution would be to move the <code>move_if_noexcept</code> into the Boost.Move module and take care of it there. Unfortunately I had no time to take care of that issue. </p> </description> <category>Ticket</category> </item> <item> <author>michael.broida@…</author> <pubDate>Fri, 23 May 2014 15:27:56 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:23 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:23</guid> <description> <p> OK. The unfixed "returning address of local variable or temporary" error is the one I'm seeing. It looks like only one line in our code leads to that warning, so I will disable that warning for that single line. </p> <p> I hope you (or someone) has time to make the full fix before the next release. :) Thank you. :) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Fri, 23 May 2014 17:33:39 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:24 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:24</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/7888#comment:23" title="Comment 23">michael.broida@…</a>: </p> <blockquote class="citation"> <p> only one line in our code leads to that warning </p> </blockquote> <p> Could you please provide that line here? What function of the circular_buffer was called? </p> </description> <category>Ticket</category> </item> <item> <author>michael.broida@…</author> <pubDate>Fri, 23 May 2014 18:00:11 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:25 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:25</guid> <description> <p> Apparently it's just the circular_buffer ctor.<br /> (scopenames removed to make it easier to read.) </p> <pre class="wiki">struct TestSetupContainers { TestSetupContainers() { output_object_pool_ = new GrowingMemoryPool&lt;sizeof(OutputObject)&gt;(11,0, "TestSetupContainers MemoryPool"); OutputObject::SetMemoryPool(output_object_pool_); output_buffer_.resize(10); } GrowingMemoryPool&lt;sizeof(OutputObject)&gt; *output_object_pool_; boost::circular_buffer&lt;boost::shared_ptr&lt;OutputObject&gt;&gt; output_buffer_; }; </pre><p> That last line is in our file OutputObject-UT.cpp line 20, the line triggering this long warning:<br /> (This is with VS2010; Boost 1.55.0)<br /> (long paths shortened to ....) </p> <pre class="wiki">1&gt; OutputObject-UT.cpp 1&gt;....include\boost\circular_buffer\base.hpp(201): error C2220: warning treated as error - no 'object' file generated 1&gt; ....include\boost\circular_buffer\base.hpp(2199) : see reference to function template instantiation 'const boost::shared_ptr&lt;T&gt; &amp;boost::circular_buffer&lt;boost::shared_ptr&lt;T&gt;&gt;::move_if_noexcept&lt;boost::shared_ptr&lt;T&gt;&gt;(ValT &amp;)' being compiled 1&gt; with 1&gt; [ 1&gt; T=OutputObject, 1&gt; ValT=boost::shared_ptr&lt;OutputObject&gt; 1&gt; ] 1&gt; ....include\boost\circular_buffer\base.hpp(2191) : while compiling class template member function 'boost::cb_details::iterator&lt;Buff,Traits&gt; boost::circular_buffer&lt;T&gt;::erase(boost::cb_details::iterator&lt;Buff,Traits&gt;,boost::cb_details::iterator&lt;Buff,Traits&gt;)' 1&gt; with 1&gt; [ 1&gt; Buff=boost::circular_buffer&lt;boost::shared_ptr&lt;OutputObject&gt;&gt;, 1&gt; Traits=boost::cb_details::nonconst_traits&lt;std::allocator&lt;OutputObjectHandle&gt;&gt;, 1&gt; T=boost::shared_ptr&lt;OutputObject&gt; 1&gt; ] 1&gt; ....outputobject-ut.cpp(20) : see reference to class template instantiation 'boost::circular_buffer&lt;T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::shared_ptr&lt;OutputObject&gt; 1&gt; ] 1&gt;....include\boost\circular_buffer\base.hpp(201): warning C4172: returning address of local variable or temporary </pre><p> I -was- able to avoid the warning by #pragma disabling it for the entire method in Boost's circular_buffer\base.hpp lines 189-200. That just seems like cheating, though. :) (I can't even figure out that method <strong>name</strong>!) </p> <p> I hope that helps. Let me know if you need more information. </p> </description> <category>Ticket</category> </item> <item> <author>michael.broida@…</author> <pubDate>Fri, 23 May 2014 18:04:54 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:26 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:26</guid> <description> <p> Oops. That error message was from a version where I was experimenting with code mods. With NO mods from Boost 1.55.0, the messages point to different lines: </p> <ul><li>"base.hpp(201)" should be "base.hpp(199)" (two places) </li><li>"base.hpp(2199)" should be "base.hpp(2196)" </li><li>"base.hpp(2191)" should be "base.hpp(2188)" </li></ul><p> Sorry for that glitch. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Fri, 23 May 2014 18:41:44 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:27 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:27</guid> <description> <p> Ah-ha! I did some further testing.\ Though all the messages point to the line declaring the circular_buffer, the warnings only appear when the TestSetupContainer struct's ctor contains this line: </p> <pre class="wiki">output_buffer_.resize(10); </pre><p> So it would appear that the call to "resize" actually triggers the warnings.<br /> I commented out everything in that test file except that struct declaration (and necessary #includes), just to be sure. </p> <p> I also changed the declaration of "output_buffer_" to these types:<br /> </p> <table class="wiki"> <tr><th>"output_buffer_" type</th><td>result </td></tr><tr><td>boost::circular_buffer&lt;int&gt;</td><td>NO warning </td></tr><tr><td>boost::circular_buffer&lt;boost::shared_ptr&lt;int&gt;&gt;</td><td>SAME warning </td></tr><tr><td>boost::circular_buffer&lt;std::shared_ptr&lt;int&gt;&gt;</td><td>SAME warning </td></tr></table> <p> If I think of anything else, I'll post more here. </p> </description> <category>Ticket</category> </item> <item> <author>michael.broida@…</author> <pubDate>Fri, 23 May 2014 20:56:58 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:28 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:28</guid> <description> <p> Aaargh! Now I'm very confused.<br /> Forget that bit about the "resize" call. NOW I get the warning whether that line is present or not.<br /> I <strong>know</strong> it went away when I commented that line out earlier. But now it's back. And the last two alternate types in the table in my previous post worked the same way. But now they don't.<br /> I think Visual Studio 2010 hates me. :( </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Sat, 24 May 2014 14:16:45 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:29 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:29</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/7888#comment:26" title="Comment 26">michael.broida@…</a>: </p> <blockquote class="citation"> <p> With NO mods from Boost 1.55.0, the messages point to different lines: </p> <ul><li>"base.hpp(201)" should be "base.hpp(199)" (two places) </li><li>"base.hpp(2199)" should be "base.hpp(2196)" </li><li>"base.hpp(2191)" should be "base.hpp(2188)" </li></ul></blockquote> <p> Those lines look pretty innocent. <code>move_if_noexcept</code> is used there for non temporaries and must not cause any troubles. </p> <blockquote class="citation"> <p> I think Visual Studio 2010 hates me. :( </p> </blockquote> <p> Sometimes I think that there is a hidden "Do respect the programmer!" switch somewhere in Windows registry (in Linux it's on by default). Please tell me if you'll find it! :) </p> </description> <category>Ticket</category> </item> <item> <author>Matthäus Brandl <brandl.matthaeus@…></author> <pubDate>Thu, 16 Oct 2014 14:41:04 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7888#comment:30 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7888#comment:30</guid> <description> <p> Using Boost 1.56.0 warning C4172 is still reported by VS2010. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Fri, 17 Oct 2014 07:53:17 GMT</pubDate> <title>milestone changed https://svn.boost.org/trac10/ticket/7888#comment:31 https://svn.boost.org/trac10/ticket/7888#comment:31 <ul> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.57.0</span> </li> </ul> <p> I hope that the last warnings were fixed by <a class="ext-link" href="https://github.com/boostorg/circular_buffer/commit/d48b479c6a096f86a7f4416d2203b79214ce004d"><span class="icon">​</span>this commit</a>, which is already merged to release branch of 1_57_0. </p> Ticket Antony Polukhin Sat, 25 Oct 2014 09:48:12 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/7888#comment:32 https://svn.boost.org/trac10/ticket/7888#comment:32 <ul> <li><strong>status</strong> <span class="trac-field-old">reopened</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket