Does dereferencing a pointer from a const_cast ALWAYS invoke undefined behavior?
<p>See the following:</p>

<pre><code>struct A
{
    std::string* get() const
    {
        //return const_cast&lt;std::string*&gt;(&amp;m_pObj);
        return &amp;const_cast&lt;A*&gt;(this)-&gt;m_pObj;
    }

    std::string m_pObj;
};
</code></pre>

<p>Is dereferencing <code>const_cast</code> of <code>this</code> UB? Is there any time dereferencing the result from <code>const_cast</code>ing the constness of a pointer away <em>doesn't</em> invoke UB?</p>

<p>(I know the above example is bad practice, bad design, and could be solved with mutable - that's not the point)</p>
