const string discards qualifiers
<p>I have some code:</p>

<pre><code>const string MY_STRINGS[3] = { "A", "B", "C" };
</code></pre>

<p>and when I try to do this:</p>

<pre><code>int main() {
  MY_STRINGS[1] = MY_STRINGS[2];
}
</code></pre>

<p>I get the following error:</p>

<blockquote>
  <p>Passing 'const std::string' as 'this' argument of 'std::basic_string... &amp; std::basic_string::operator= ...' discards qualifiers.</p>
</blockquote>

<p>Sure.  Makes sense.  I can't assign to a <code>const string</code>.</p>

<p>But when I do the following:</p>

<pre><code>int main() {
  const string SOME_STRINGS[3] = MY_STRINGS;
  MY_STRINGS[1] = MY_STRINGS[2];
}
</code></pre>

<p>this compiles and works.  What has changed, and why does it now compile?</p>
