<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Fixing LWG 1322</title>
<style type="text/css">
  ins {background-color:#A0FFA0}
  del {background-color:#FFA0A0}
</style>
</head>

<body>

  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="579">
    <tr>
      <td width="153" align="left" valign="top">Document number:</td>
      <td width="426">N3215 = 10-0205</td>
    </tr>
    <tr>
      <td width="153" align="left" valign="top">Date:</td>
      <td width="426">
      <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d" startspan -->2010-11-12<!--webbot bot="Timestamp" endspan i-checksum="12059" --></td>
    </tr>
    <tr>
      <td width="153" align="left" valign="top">Project:</td>
      <td width="426">Programming Language C++, Library Working Group</td>
    </tr>
    <tr>
      <td width="153" align="left" valign="top">Reply-to:</td>
      <td width="426">Beman Dawes &lt;bdawes at acm dot org&gt;</td>
    </tr>
  </table>


<h1>Fixing LWG 1322, Explicit <tt>CopyConstructible</tt> requirements are insufficient</h1>


<h2>Discussion</h2>
<p>Library issue <a href="http://lwg.github.com/issues/lwg-active.html#1322">1322</a>, Explicit CopyConstructible requirements are insufficient, 
describes problems caused by library defect
<a style href="http://lwg.github.com/issues/lwg-closed.html#822">822</a>. The LWG in 
Batavia determined that the preferred fix is to revert 822. That is the effect 
of the Proposed resolution.</p>
<h2>Proposed resolution</h2>
<p>In 20.2.1 [utility.arg.requirements] change Table 34: <tt>MoveConstructible</tt> 
requirements [moveconstructible]: </p>
<blockquote>
  <table border="1">
    <tr>
      <th>expression</th>
      <th>post-condition</th>
    </tr>
    <tr>
      <td><tt>T u<del>(rv)</del> <ins> = rv</ins>;</tt></td>
      <td><tt>u</tt> is equivalent to the value of <tt>rv</tt> before the 
      construction</td>
    </tr>
    <tr>
      <td colspan="2" align="center">...</td>
    </tr>
  </table>
</blockquote>
<p>In 20.2.1 [utility.arg.requirements] change Table 35: <tt>CopyConstructible</tt> 
requirements [copyconstructible]: </p>
<blockquote>
  <table border="1">
    <tr>
      <th>expression</th>
      <th>post-condition</th>
    </tr>
    <tr>
      <td><tt>T u<del>(v)</del> <ins>= v;</tt></td>
      <td>the value of <tt>v</tt> is unchanged and is equivalent to <tt>u</tt></td>
    </tr>
    <tr>
      <td colspan="2" align="center">...</td>
    </tr>
  </table>
</blockquote>
<hr>

</body>

</html>