title: How can I work around warning C4505 in third party libraries?
body: <p>I've got a project that uses Crypto++ for a few hashing functions. Recently, I decided to clean things up a bit and use warning level 4 on MSVC++.</p>
  
  <p>Here's what my source looks like:</p>
  
  <pre><code>#pragma warning(push)
  #pragma warning(disable: 4100) //Unreferenced formal parameter
  #pragma warning(disable: 4244) //Conversion, possible loss of data
  #pragma warning(disable: 4512) //Assignment operator could not be generated
  #pragma warning(disable: 4127) //Conditional expression is constant
  #pragma warning(disable: 4505) //Unreferenced local function has been removed
  #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
  #include &lt;cryptopp/md5.h&gt;
  #include &lt;cryptopp/sha.h&gt;
  #pragma warning(pop)
  </code></pre>
  
  <p>Despite <code>disable: 4505</code>, I still get this warning:</p>
  
  <pre class="lang-none prettyprint-override"><code>c:\cppdev\cryptopp561\cryptopp\misc.h(548): warning C4505: 'CryptoPP::StringNarrow' : unreferenced local function has been removed
  </code></pre>
  
  <p>and my project does not build.</p>
  
  <p>How can I work around this? Basically, I'd just like to disable the warning for third party code; I don't want to be editing cryptopp itself to fix the error if I can avoid doing so.</p>