Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r60468 - sandbox/committee/rvalue_ref
From: dgregor_at_[hidden]
Date: 2010-03-11 01:57:34


Author: dgregor
Date: 2010-03-11 01:57:33 EST (Thu, 11 Mar 2010)
New Revision: 60468
URL: http://svn.boost.org/trac/boost/changeset/60468

Log:
Add has_trivial_move_constructor and has_trivial_move_asign
Text files modified:
   sandbox/committee/rvalue_ref/throwing-move.rst | 10 +++++++++-
   1 files changed, 9 insertions(+), 1 deletions(-)

Modified: sandbox/committee/rvalue_ref/throwing-move.rst
==============================================================================
--- sandbox/committee/rvalue_ref/throwing-move.rst (original)
+++ sandbox/committee/rvalue_ref/throwing-move.rst 2010-03-11 01:57:33 EST (Thu, 11 Mar 2010)
@@ -587,7 +587,9 @@
     :ins:`template <class T> struct has_move_assign;`
     template <class T> struct has_trivial_default_constructor;
     template <class T> struct has_trivial_copy_constructor;
+ :ins:`template <class T> struct has_trivial_move_constructor;`
     template <class T> struct has_trivial_assign;
+ :ins:`template <class T> struct has_trivial_move_assign;`
     template <class T> struct has_trivial_destructor;
     template <class T> struct has_nothrow_default_constructor;
     template <class T> struct has_nothrow_copy_constructor;
@@ -626,6 +628,12 @@
   * - :raw-html:`<span class="ins"><code>template &lt;class T&gt; struct has_move_assign;</code></ins>`
     - :raw-html:`<span class="ins"><code>T</code> is neither <code>const</code> nor a reference type, and <code>T</code> is a trivial type (3.9) or the expression <code>*(U*)0 = declval&lt;U&gt;()</code> is well-formed when treated as an unevaluated operand (Clause 5), where <code>U</code> is <code>remove_all_extents&lt;T&gt;::type</code>.</span>`
     - :raw-html:`<span class="ins"><code>T</code> shall be a complete type, (possibly cv-qualified) void, or an array of unknown bound.</span>`
+ * - :raw-html:`<span class="ins"><code>template &lt;class T&gt; struct has_trivial_move_constructor;</code></ins>`
+ - :raw-html:`<span class="ins"><code>T</code> is a trivial type (3.9).</span>`
+ - :raw-html:`<span class="ins"><code>T</code> shall be a complete type, (possibly cv-qualified) void, or an array of unknown bound.</span>`
+ * - :raw-html:`<span class="ins"><code>template &lt;class T&gt; struct has_trivial_move_assign;</code></ins>`
+ - :raw-html:`<span class="ins"><code>T</code> is neither <code>const</code> nor a reference type, and <code>T</code> is a trivial type (3.9).</span>`
+ - :raw-html:`<span class="ins"><code>T</code> shall be a complete type, (possibly cv-qualified) void, or an array of unknown bound.</span>`
   * - ``template <class T> struct has_nothrow_default_constructor;``
     - ``has_trivial_default_constructor<T>::value`` is ``true`` or :raw-html:`<span class="del"><code>T</code> is a class type with a default constructor that is known not to throw any exceptions or <code>T</code> is an array of such a class type</span><span class="ins"><code>is_nothrow_constructible&lt;U&gt;::value</code> is <code>true</code>, where <code>U</code> is <code>remove_all_extents&lt;T&gt;::type</code></span>`.
     - :raw-html:`<span class="ins"><code>T</code> shall be a complete type, (possibly cv-qualified) void, or an array of unknown bound.</span>`
@@ -639,7 +647,7 @@
     - ``T`` is neither ``const`` nor a reference type, and ``has_trivial_assign<T>::value`` is ``true`` or :raw-html:`<span class="del"><code>T</code> is a class type whose copy assignment operators taking an lvalue of type <code>T</code> are all known not to throw any exceptions or T is an array of such a class type</span><span class="ins"><code>noexcept(*(U*)0 = declval&lt;const U&amp;&gt;())</code> is true when treated as an unevaluated operand (Clause 5), where <code>U</code> is <code>remove_all_extents&lt;T&gt;::type</code>.</span>`
     - :raw-html:`<span class="ins"><code>T</code> shall be a complete type, (possibly cv-qualified) void, or an array of unknown bound.</span>`
   * - :raw-html:`<span class="ins"><code>template &lt;class T&gt; struct has_nothrow_move_assign;</code></span>`
- - :raw-html:`<span class="ins"><code>has_move_assign&lt;T&gt;::value</code> is true and <code>T</code> is a trivial type (3.9) or the expression <code>noexcept(*(U*)0 = declval&lt;U&gt;())</code> is true when treated as an unevaluated operand (Clause 5), where <code>U</code> is <code>remove_all_extents&lt;T&gt;::type</code>..</span>`
+ - :raw-html:`<span class="ins"><code>has_trivial_move_assign&lt;T&gt;::value</code> is true and <code>T</code> is a trivial type (3.9) or the expression <code>noexcept(*(U*)0 = declval&lt;U&gt;())</code> is true when treated as an unevaluated operand (Clause 5), where <code>U</code> is <code>remove_all_extents&lt;T&gt;::type</code>..</span>`
     - :raw-html:`<span class="ins"><code>T</code> shall be a complete type, (possibly cv-qualified) void, or an array of unknown bound.</span>`
 
 23.3.2.3 deque modifiers [deque.modifiers]


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk