title: const_cast and UB
body: <blockquote>
    <p>$5.2.11/7 - "[Note: Depending on the
    type of the object, a write operation
    through the pointer, lvalue or pointer
    to data member resulting from a
    const_cast that casts away a
    const-qualifier68) <strong>may</strong> produce
    undefined behavior (7.1.5.1). ]"</p>
  </blockquote>
  
  <p>The wordings of this section (C++03) are surprising to me. What is suprising are two things.</p>
  
  <p>a) Firstly, the use of 'may'. Why is it 'may'? Other places in the Standard are very definitive about the undefined behavior</p>
  
  <p>b) Why is that the casting away the constness of a originally const object not straight away 'undefined behavior'. Why is it that a write is required for UB to be triggered?</p>