title: What is the loss of data in 'uintmax_t' to 'size_t' and 'unsigned int' conversion?
body: <p>I get this: </p>
  
  <blockquote>
    <p>warning C4244: 'initializing' : conversion from 'uintmax_t' to 'unsigned int', possible loss of data</p>
  </blockquote>
  
  <p>on:</p>
  
  <pre><code>boost::shared_array&lt;char&gt; buffer( new char[file-&gt;size]);
  </code></pre>
  
  <p>…and then this:</p>
  
  <blockquote>
    <p>warning C4244: 'argument' : conversion from 'uintmax_t' to 'size_t', possible loss of data</p>
  </blockquote>
  
  <p>on:</p>
  
  <pre><code>boost::asio::write(*socket, boost::asio::buffer(buffer.get(), file-&gt;size));
  </code></pre>
  
  <p>Shall I be scared or it is ok?</p>