Boost C++ Libraries: Ticket #7911: Mark move constructors and move assignments of varint with BOOST_NOEXCEPT_IF https://svn.boost.org/trac10/ticket/7911 <p> According to <a class="ext-link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html"><span class="icon">​</span>N3050</a> sequence containers can use move constructors/assignments of underling type only if underling types constructor/assignment is marked with noexcept.<br /> <br /> We can determinate, if move constructor/assignment of variant can throw and mark it with BOOST_NOEXCEPT_IF(constexpr_value). </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7911 Trac 1.4.3 Shane Turner <shane.turner@…> Wed, 06 Feb 2013 17:32:33 GMT cc set https://svn.boost.org/trac10/ticket/7911#comment:1 https://svn.boost.org/trac10/ticket/7911#comment:1 <ul> <li><strong>cc</strong> <span class="trac-author">shane.turner@…</span> added </li> </ul> Ticket Antony Polukhin Fri, 12 Jul 2013 12:34:57 GMT attachment set https://svn.boost.org/trac10/ticket/7911 https://svn.boost.org/trac10/ticket/7911 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">varant_noexcept.patch</span> </li> </ul> <p> Patch to resolve this issue </p> Ticket Antony Polukhin Fri, 19 Jul 2013 07:43:04 GMT <link>https://svn.boost.org/trac10/ticket/7911#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:2</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85079" title="Added code (and tests) to mark move constructors and move assignemnt ...">[85079]</a>) Added code (and tests) to mark move constructors and move assignemnt of Boost.Variant as noexcept if possible (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7911" title="#7911: Feature Requests: Mark move constructors and move assignments of varint with ... (closed: fixed)">#7911</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Fri, 19 Jul 2013 07:54:20 GMT</pubDate> <title>owner, status changed https://svn.boost.org/trac10/ticket/7911#comment:3 https://svn.boost.org/trac10/ticket/7911#comment:3 <ul> <li><strong>owner</strong> changed from <span class="trac-author">ebf</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 Sat, 20 Jul 2013 17:20:03 GMT <link>https://svn.boost.org/trac10/ticket/7911#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:4</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85089" title="Temporary disable noexcept detection for move assignment for ...">[85089]</a>) Temporary disable noexcept detection for move assignment for Boost.Variant (exception specification detection for assignment requires call to is_nothrow_move_assignable for each type. But GCC 4.6 fails to do that and complains about incomplete types ) (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7911" title="#7911: Feature Requests: Mark move constructors and move assignments of varint with ... (closed: fixed)">#7911</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Thu, 25 Jul 2013 08:42:46 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7911#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:5</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85157" title="Merge from trunk: * make the library work on exception-disabled ...">[85157]</a>) Merge from trunk: </p> <ul><li>make the library work on exception-disabled environments (fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8717" title="#8717: Bugs: Please make the library work on exception-disabled environments (closed: fixed)">#8717</a>) </li><li>fix compilation of Boost.Variants move assignment for situations when one of the variant template classes has nothrow copy constructor and throwing move constructor (fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8772" title="#8772: Bugs: boost.variant broken in combination with g++ 4.6.x series and C++0x (closed: fixed)">#8772</a>) </li><li>mark move constructor of variant with BOOST_NOEXCEPT_IF (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7911" title="#7911: Feature Requests: Mark move constructors and move assignments of varint with ... (closed: fixed)">#7911</a>) </li></ul> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Sun, 01 Sep 2013 07:11:29 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7911#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:6</guid> <description> <p> Anthony please, could you add the new features to the documentation? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Sun, 15 Sep 2013 18:33:00 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7911#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:7</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/7911#comment:6" title="Comment 6">viboes</a>: </p> <blockquote class="citation"> <p> Anthony please, could you add the new features to the documentation? </p> </blockquote> <p> Work on this ticket is still slowly going on (<a class="ticket" href="https://svn.boost.org/trac10/ticket/7911#comment:4" title="Comment 4">GCC 4.6 has some issues</a>). I'll update the documentation later, when as all the coding will be done. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Mon, 30 Sep 2013 14:55:29 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7911#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:8</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/86054" title="Mark move assignment with noexcept if possible (refs #7911)">[86054]</a>) Mark move assignment with noexcept if possible (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7911" title="#7911: Feature Requests: Mark move constructors and move assignments of varint with ... (closed: fixed)">#7911</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Wed, 02 Oct 2013 13:13:18 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7911#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7911#comment:9</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/86135" title="Detect noexcept specification for default constructor of variant (refs ...">[86135]</a>) Detect noexcept specification for default constructor of variant (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7911" title="#7911: Feature Requests: Mark move constructors and move assignments of varint with ... (closed: fixed)">#7911</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 12 Nov 2013 10:16:17 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7911#comment:10 https://svn.boost.org/trac10/ticket/7911#comment:10 <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/86650" title="Merge from trunk: * dropped support of antique compilers * fixed issue ...">[86650]</a>) Merge from trunk: </p> <ul><li>dropped support of antique compilers </li><li>fixed issue with ambiguity in swap (fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2839" title="#2839: Bugs: move-emulated swap causes overloaded ambiguous fun call (closed: fixed)">#2839</a>) </li><li>added conditional noexcepts to move assignments, default and move constructors (fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7911" title="#7911: Feature Requests: Mark move constructors and move assignments of varint with ... (closed: fixed)">#7911</a>) </li><li>experimental variadic templates support (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/9163" title="#9163: Feature Requests: Use variadic temnplates in Boost.Variant (closed: fixed)">#9163</a>) </li><li>bunch of size optimizations for assignments and move assignments (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7960" title="#7960: Feature Requests: Optimization for move_assign and assign (closed: obsolete)">#7960</a>) </li><li>minor changes and size optimizations </li></ul> Ticket Antony Polukhin Tue, 12 Nov 2013 10:19:23 GMT milestone changed https://svn.boost.org/trac10/ticket/7911#comment:11 https://svn.boost.org/trac10/ticket/7911#comment:11 <ul> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.56.0</span> </li> </ul> Ticket