title: Use of a deleted pointer address
body: <p>(*) As far as I know the Standard allows an implementation to modify the operand of the <code>delete</code> operator, however most implementations do not do that.</p>
  
  <pre><code>int* ptr = new int(0);
  delete ptr; //delete is allowed to modify ptr, for example set it to 0
  std::cout &lt;&lt; ptr; // UB?
  </code></pre>
  
  <p>Acknowledging (*), is the reading of <code>ptr</code> (in the form of printing it) well-defined? </p>
  
  <p>If <code>delete</code> does modify <code>ptr</code>, is it allowed to set a trap value, which would make reading <code>ptr</code> UB?</p>