title: index operator constness
body: <p>Why do we need two? Under which circumstance each of the following operator[]s are called?</p>
  
  <pre><code>  class X {
        public:
          //...
          int &amp;operator [](int index);
          const int &amp;operator [](int index) const;
      };
  </code></pre>