]> granicus.if.org Git - clang/commitdiff
Make this text slightly more accurate; thanks to Johannes Schaub for
authorSean Hunt <scshunt@csclub.uwaterloo.ca>
Thu, 29 Dec 2011 18:40:13 +0000 (18:40 +0000)
committerSean Hunt <scshunt@csclub.uwaterloo.ca>
Thu, 29 Dec 2011 18:40:13 +0000 (18:40 +0000)
pointing this out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147346 91177308-0d34-0410-b5e6-96231b3b80d8

www/compatibility.html

index 2102ccca7e1db05ae54f4698b253c6e137817733..ca43e1951d52ed76af65f8669f152c94efa14257 100644 (file)
@@ -769,7 +769,7 @@ void f(int a, int a);
 <!-- ======================================================================= -->
 
 <p>In C++11, the explicit declaration of a move constructor or a move
-assignment operator within a class disables the implicit declaration
+assignment operator within a class deletes the implicit declaration
 of the copy constructor and copy assignment operator. This change came
 fairly late in the C++11 standardization process, so early
 implementations of C++11 (including Clang before 3.0, GCC before 4.7,
@@ -778,16 +778,17 @@ accept this ill-formed code:</p>
 
 <pre>
 struct X {
-  X(X&amp;&amp;); <i>// suppresses implicit copy constructor</i>
+  X(X&amp;&amp;); <i>// deletes implicit copy constructor:</i>
+  <i>// X(const X&amp;) = delete;</i>
 };
 
 void f(X x);
 void g(X x) {
-  f(x); <i>// error: X has no copy constructor</i>
+  f(x); <i>// error: X has a deleted copy constructor</i>
 }
 </pre>
 
-<p>This affects some C++11 code, including Boost's popular <a
+<p>This affects some early C++11 code, including Boost's popular <a
 href="http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm"><tt>shared_ptr</tt></a>
 up to version 1.47.0. The fix for Boost's <tt>shared_ptr</tt> is
 <a href="https://svn.boost.org/trac/boost/changeset/73202">available here</a>.</p>