[Boost-bugs] [Boost C++ Libraries] #7523: Patch that adds missing BOOST_NOEXCEPT to noexcept functions

Subject: [Boost-bugs] [Boost C++ Libraries] #7523: Patch that adds missing BOOST_NOEXCEPT to noexcept functions
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-10-17 17:19:50


#7523: Patch that adds missing BOOST_NOEXCEPT to noexcept functions
-------------------------------------+--------------------------------------
 Reporter: apolukhin | Owner: pdimov
     Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: smart_ptr
  Version: Boost Development Trunk | Severity: Optimization
 Keywords: |
-------------------------------------+--------------------------------------
 This is a trivial patch, that marks function with BOOST_NOEXCEPT if:
 * function is commented as "// newer throws" and has no BOOST_ASSERT and
 has no user specified template class destructor call
 * or function is extremely simple (consist of a few lines of code that are
 guaranteed not to throw)
 * or function has only a call to noexcept function (like
 `swap(shared_ptr<T>& v1, shared_ptr<T>& v2) { v1.swap(v2);}` )

 Applying this patch will dramatically increase performance of smart
 pointers on modern compilers (because of [http://www.open-
 std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html N3050], 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.

 Patch is tested on GCC-4.6 (with and without -std=c++0x flag) and MSVC2012

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7523>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:10 UTC