title: Move constructor and char array argument
body: <pre><code>struct Foo
  {
      char data[100];
  
      template&lt;int T&gt;
      Foo(char (&amp;&amp;var)[T])
      {
          data = std::move(var);
          var = 0;
      } 
  };
  
  int main()
  { 
      char v[100];
      //..init v
      Foo f( std::move(v) );   //error C2664: 'Foo::Foo&lt;100&gt;(char (&amp;&amp;)[100])' : cannot convert parameter 1 from 'char [100]' to 'char (&amp;&amp;)[100]'
      return 0;
  } 
  </code></pre>
  
  <p>I don't get why MSVC is not happy with the line <code>Foo f( std::move(v) )</code> ? (Maybe this code is senseless)</p>