title: What is the reason for #pragma once inside header guards?
body: <p>Just seen this inside <code>&lt;boost/asio.hpp&gt;</code></p>
  
  <pre><code>#ifndef BOOST_ASIO_HPP
  #define BOOST_ASIO_HPP
  
  #if defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1200)
  # pragma once
  #endif // defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1200)
  
  /// ....
  
  #endif // BOOST_ASIO_HPP
  </code></pre>
  
  <p>Disregarding the <code>_MSC_VER</code> preprocessor checks, what is the benefit of having the <code>#pragma once</code> in this case? Doesn't the preprocessor header guard ensure in all cases and on all platforms, the header contents are only ever <code>included</code> once?</p>