Boost C++ Libraries: Ticket #7523: Patch that adds missing BOOST_NOEXCEPT to noexcept functions https://svn.boost.org/trac10/ticket/7523 <p> This is a trivial patch, that marks function with BOOST_NOEXCEPT if: </p> <ul><li>function is commented as "<em> newer throws" and has no BOOST_ASSERT and has no user specified template class destructor call </em></li><li>or function is extremely simple (consist of a few lines of code that are guaranteed not to throw) </li><li>or function has only a call to noexcept function (like <code>swap(shared_ptr&lt;T&gt;&amp; v1, shared_ptr&lt;T&gt;&amp; v2) { v1.swap(v2);}</code> ) </li></ul><p> Applying this patch will dramatically increase performance of smart pointers on modern compilers (because of <a class="ext-link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html"><span class="icon">​</span>N3050</a>, STL containers can not move smart pointers if move assignment and move constructors are not marked with noexcept). It will also reduce the size of compiled code. </p> <p> Patch is tested on GCC-4.6 (with and without -std=c++0x flag) and MSVC2012 </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7523 Trac 1.4.3 Antony Polukhin Thu, 15 Nov 2012 07:48:36 GMT attachment set https://svn.boost.org/trac10/ticket/7523 https://svn.boost.org/trac10/ticket/7523 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">noexcept.patch</span> </li> </ul> <p> Updated noexcept patch for trunk version </p> Ticket Antony Polukhin Thu, 15 Nov 2012 07:49:24 GMT type changed https://svn.boost.org/trac10/ticket/7523#comment:1 https://svn.boost.org/trac10/ticket/7523#comment:1 <ul> <li><strong>type</strong> <span class="trac-field-old">Feature Requests</span> → <span class="trac-field-new">Patches</span> </li> </ul> Ticket Peter Dimov Fri, 16 Nov 2012 15:05:28 GMT <link>https://svn.boost.org/trac10/ticket/7523#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7523#comment:2</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/81368" title="Apply BOOST_NOEXCEPT patch. Refs #7523.">[81368]</a>) Apply BOOST_NOEXCEPT patch. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7523" title="#7523: Patches: Patch that adds missing BOOST_NOEXCEPT to noexcept functions (closed: fixed)">#7523</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Peter Dimov</dc:creator> <pubDate>Wed, 21 Nov 2012 15:38:11 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/7523#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7523#comment:3</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/81457" title="Merged revision(s) 81368, 81399, 81407-81409, 81419, 81430-81431, ...">[81457]</a>) Merged revision(s) 81368, 81399, 81407-81409, 81419, 81430-81431, 81437 from trunk: Apply BOOST_NOEXCEPT patch. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/7523" title="#7523: Patches: Patch that adds missing BOOST_NOEXCEPT to noexcept functions (closed: fixed)">#7523</a>. ........ Replace std::forward with detail::sp_forward. ........ Cosmetic changes in make_shared_array.hpp and allocate_shared_array.hpp ........ Documentation of make_shared_array: Minor corrections ........ Make make_shared_array.hpp and allocate_shared_array.hpp consistent with namespace qualification in rest of smart_ptr. ........ Update smart_ptr.htm with link to make_shared_array.htm which lists the many overloads of make_shared and allocate_shared for arrays. ........ Update documentation for make_shared and allocate_shared array forms. ........ Minor corrections in make_shared_array.html documentation. ........ Borland fixes. ........ </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Peter Dimov</dc:creator> <pubDate>Wed, 21 Nov 2012 15:41:57 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7523#comment:4 https://svn.boost.org/trac10/ticket/7523#comment:4 <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> Ticket