|
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 <InputIterator Iter>
- requires ConstructibleAsElement<Alloc, T, Iter::reference> && <del>ConstructibleAsElement<Alloc, T, T&&></del><ins>MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, Iter::reference> && ConstructibleAsElement<Alloc, T, T&&>
vector(Iter first, Iter last,
const Alloc& = Alloc());
@@ -146,39 +143,39 @@
vector<T,Alloc>& operator=(vector<T,Alloc>&& x);
template <InputIterator Iter>
requires ConstructibleAsElement<Alloc, T, Iter::reference>
- <ins>&& HasCopyAssign<T, Iter::reference> && MoveConstructible<T></ins>
+ <ins>&& HasCopyAssign<T, Iter::reference> && ConstructibleAsElement<Alloc, T, T&&></ins>
void assign(Iter first, Iter last);
requires ConstructibleAsElement<Alloc, T, const T&> <ins>&& CopyAssignable<T></ins>
void assign(size_type n, const T& u);
// ...
- requires DefaultConstructible<T> && <del>ConstructibleAsElement<Alloc, T, T&&></del><ins>MoveConstructible<T></ins>
+ requires DefaultConstructible<T> && ConstructibleAsElement<Alloc, T, T&&>
void resize(size_type sz);
- requires ConstructibleAsElement<Alloc, T, const T&> <ins>&& MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, const T&> <ins>&& ConstructibleAsElement<Alloc, T, T&&></ins>
void resize(size_type sz, const T& c);
// ...
- requires <del>ConstructibleAsElement<Alloc, T, T&&> </del><ins>MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, T&&>
void reserve(size_type n);
// ...
template <class... Args>
- requires ConstructibleAsElement<Alloc, T, Args&&...> && <del>ConstructibleAsElement<Alloc, T, T&&></del><ins>MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, Args&&...> && ConstructibleAsElement<Alloc, T, T&&>
void push_back(Args&&... args);
void pop_back();
template <class... Args>
- requires ConstructibleAsElement<Alloc, T, Args&&...> && <del>ConstructibleAsElement<Alloc, T, T&&></del><ins>MoveConstructible<T> && MoveAssignable<T></ins>
+ requires ConstructibleAsElement<Alloc, T, Args&&...> && ConstructibleAsElement<Alloc, T, T&&>
iterator emplace(const_iterator position, Args&&... args);
- requires ConstructibleAsElement<Alloc, T, const T&> && MoveAssignable<T> <ins>&& MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, const T&> && MoveAssignable<T> <ins>&& ConstructibleAsElement<Alloc, T, T&&></ins>
iterator insert(const_iterator position, const T& x);
- requires ConstructibleAsElement<Alloc, T, T&&> && MoveAssignable<T> <ins>&& MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, T&&> && MoveAssignable<T>
void insert(const_iterator position, T&& x);
- requires ConstructibleAsElement<Alloc, T, const T&> && MoveAssignable<T> <ins>&& MoveConstructible<T></ins>
+ requires ConstructibleAsElement<Alloc, T, const T&> && MoveAssignable<T> <ins>&& ConstructibleAsElement<Alloc, T, T&&></ins>
void insert(const_iterator position, size_type n, const T& x);
template <InputIterator Iter>
requires ConstructibleAsElement<Alloc, T, Iter::reference>
<ins>&& HasCopyAssign<T, Iter::reference></ins>
- && <del>ConstructibleAsElement<Alloc, T, T&&></del><ins>MoveConstructible<T></ins> && MoveAssignable<T>
+ && ConstructibleAsElement<Alloc, T, T&&> && MoveAssignable<T>
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