title: Subscript operator accepts variable length arguments of variable type?
body: <p>Does the <code>[]</code> operator accept variable length arguments or variable types? Is this behavior similar to <code>va_args</code> or is the last parameter always passed implicitly?</p>
  
  <p>Can someone explain why the following doesn't error during compilation? (tested in VS2010)</p>
  
  <pre><code>int main()
  {
      typedef std::map&lt;int, std::string&gt; KeyValueMap;
      typedef std::vector&lt;int&gt; IntList;
  
      IntList l(10);
      int r = l[l, "C", 1];
  
      KeyValueMap m;
      m[m, 1, "D", 2];
  
      int* i = new int[10];
      int x = i["a", i, 1];
  
      return 0;
  }
  </code></pre>