Boost logo

Boost-Commit :

From: dgregor_at_[hidden]
Date: 2008-05-30 11:58:07


Author: dgregor
Date: 2008-05-30 11:58:06 EDT (Fri, 30 May 2008)
New Revision: 45955
URL: http://svn.boost.org/trac/boost/changeset/45955

Log:
Remove MoveConstructible requirements, because we should be using ConstructibleAsElement instead
Text files modified:
   sandbox/committee/concepts/issues/issues/issue34.xml | 25 +++++++++++--------------
   1 files changed, 11 insertions(+), 14 deletions(-)

Modified: sandbox/committee/concepts/issues/issues/issue34.xml
==============================================================================
--- sandbox/committee/concepts/issues/issues/issue34.xml (original)
+++ sandbox/committee/concepts/issues/issues/issue34.xml 2008-05-30 11:58:06 EDT (Fri, 30 May 2008)
@@ -85,9 +85,6 @@
     void resize(size_type sz, const T& c);
 };
   </pre>
- <p><i>Note</i>: LWG 704 says that <code>resize</code> for a <cod>deque</cod>
- requires <code>MoveConstructible</code>, but it does not (because
- one never needs to move from an existing block).</p>
 
   <p>In [forwardlist], change the definition of class template <code>forward_list</code> as follows:</p>
   <pre>
@@ -136,7 +133,7 @@
 public:
   // ...
   template &lt;InputIterator Iter&gt;
- requires ConstructibleAsElement&lt;Alloc, T, Iter::reference&gt; &amp;&amp; <del>ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</del><ins>MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, Iter::reference&gt; &amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;
     vector(Iter first, Iter last,
            const Alloc&amp; = Alloc());
 
@@ -146,39 +143,39 @@
   vector&lt;T,Alloc&gt;&amp; operator=(vector&lt;T,Alloc&gt;&amp;&amp; x);
   template &lt;InputIterator Iter&gt;
     requires ConstructibleAsElement&lt;Alloc, T, Iter::reference&gt;
- <ins>&amp;&amp; HasCopyAssign&lt;T, Iter::reference&gt; &amp;&amp; MoveConstructible&lt;T&gt;</ins>
+ <ins>&amp;&amp; HasCopyAssign&lt;T, Iter::reference&gt; &amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</ins>
     void assign(Iter first, Iter last);
   requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; <ins>&amp;&amp; CopyAssignable&lt;T&gt;</ins>
     void assign(size_type n, const T&amp; u);
 
   // ...
- requires DefaultConstructible&lt;T&gt; &amp;&amp; <del>ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</del><ins>MoveConstructible&lt;T&gt;</ins>
+ requires DefaultConstructible&lt;T&gt; &amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;
     void resize(size_type sz);
- requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; <ins>&amp;&amp; MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; <ins>&amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</ins>
     void resize(size_type sz, const T&amp; c);
 
   // ...
- requires <del>ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt; </del><ins>MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;
     void reserve(size_type n);
 
   // ...
   template &lt;class... Args&gt;
- requires ConstructibleAsElement&lt;Alloc, T, Args&amp;&amp;...&gt; &amp;&amp; <del>ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</del><ins>MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, Args&amp;&amp;...&gt; &amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;
     void push_back(Args&amp;&amp;... args);
   void pop_back();
   template &lt;class... Args&gt;
- requires ConstructibleAsElement&lt;Alloc, T, Args&amp;&amp;...&gt; &amp;&amp; <del>ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</del><ins>MoveConstructible&lt;T&gt; &amp;&amp; MoveAssignable&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, Args&amp;&amp;...&gt; &amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;
     iterator emplace(const_iterator position, Args&amp;&amp;... args);
- requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt; <ins>&amp;&amp; MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt; <ins>&amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</ins>
     iterator insert(const_iterator position, const T&amp; x);
- requires ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt; <ins>&amp;&amp; MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt;
     void insert(const_iterator position, T&amp;&amp; x);
- requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt; <ins>&amp;&amp; MoveConstructible&lt;T&gt;</ins>
+ requires ConstructibleAsElement&lt;Alloc, T, const T&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt; <ins>&amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</ins>
     void insert(const_iterator position, size_type n, const T&amp; x);
   template &lt;InputIterator Iter&gt;
     requires ConstructibleAsElement&lt;Alloc, T, Iter::reference&gt;
         <ins>&amp;&amp; HasCopyAssign&lt;T, Iter::reference&gt;</ins>
- &amp;&amp; <del>ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt;</del><ins>MoveConstructible&lt;T&gt;</ins> &amp;&amp; MoveAssignable&lt;T&gt;
+ &amp;&amp; ConstructibleAsElement&lt;Alloc, T, T&amp;&amp;&gt; &amp;&amp; MoveAssignable&lt;T&gt;
     void insert(const_iterator position,
                 Iter first, Iter last);
 };


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