title: error C2397: conversion from 'int' to 'unsigned int' requires a narrowing conversion
body: <p>I have an <code>std::array&lt;unsigned, 3&gt;</code> defined inside a class. I want to initalise it inside the constructor, like this:</p>
  
  <pre><code>MyClass::MyClass(std::map&lt;std::string, std::string&gt; const&amp;data)
  {
  MyArr[0] = (unsigned)(std::atoi(data["one"].c_str()));
  MyArr[1] = (unsigned)(std::atoi(data["two"].c_str()));
  MyArr[2] = (unsigned)(std::atoi(data["three"].c_str()));
  }
  </code></pre>
  
  <p>By compiling this code in the latest MSVC release with</p>
  
  <p><code>cl /EHsc /O2 /std:c++17 main.cpp</code> </p>
  
  <p>I get</p>
  
  <p><code>error C2397: conversion from 'int' to 'unsigned int' requires a narrowing conversion</code></p>
  
  <p>it points to the line 2 if the snippet.</p>