title: Warning C4503 when using "#pragma warning" around Boost includes
body: <p>I get a C4503 warning message ("decorated name length exceeded, name was truncated", 3 times) when compiling the following C++ code in VS 2010, with Boost 1.4.9:</p>
  
  <pre><code>#include &lt;vector&gt;
  #include &lt;map&gt;
  
  #pragma warning (push, 1)
  #include &lt;boost/units/quantity.hpp&gt;
  #include &lt;boost/units/si/plane_angle.hpp&gt;
  #pragma warning (pop)
  
  using namespace boost::units;
  
  typedef std::pair&lt;quantity&lt;si::plane_angle&gt;, quantity&lt;si::plane_angle&gt; &gt; Section;
  
  std::vector&lt;Section&gt; getEmptyVector()
  {
      std::vector&lt;Section&gt; sections;
      return sections;
  }
  </code></pre>
  
  <p>The thing that puzzles me is that the warning goes away only when I <strong>remove</strong> the <code>#pragma</code> directives. Is there an explanation for this, or does the compiler have a bug?</p>