title: Visual Studio 2015 won't suppress error C4996
body: <p>Visual Studio 2015 Community Edition gives the following error when compiling in debug, but not when compiling in release:</p>
  
  <pre><code>std::copy::_Unchecked_iterators::_Deprecate': Call to 'std::copy' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
  </code></pre>
  
  <hr>
  
  <p>I was able to trace back the source of this error to lines 214 and 242 of <a href="http://partow.net/programming/bitmap/index.html" rel="noreferrer">this third party library</a> I'm using to write bitmap images. I don't fully understand what is going on in these parts, so I'd rather not mess with it.</p>
  
  <hr>
  
  <p>I'm trying to disable this error, but Visual Studio won't let me. I've tried the following solutions that were suggested <a href="https://msdn.microsoft.com/en-us/library/ttcz0bys.aspx" rel="noreferrer">in the documentation</a>, on StackOverflow, or elsewhere:</p>
  
  <ul>
  <li>Add <code>4996</code> to the "Disable Specific Warnings" field in Project Settings > Configuration Properties > C/C++ > Advanced.</li>
  <li>Add <code>/wd4996</code> to the "Command Arguments" field in Project Settings > Configuration Properties > Debugging.</li>
  <li>Add <code>#pragma warning (disable : 4996)</code> at the top of the offending file, and/or above the offending function.</li>
  <li>Add <code>_SCL_SECURE_NO_WARNINGS</code>, <code>_SCL_NONSTDC_NO_WARNINGS</code>, <code>_SCL_OBSOLETE_NO_WARNINGS</code>, <code>_SCL_SECURE_NO_WARNINGS_GLOBAL</code>, and combinations thereof to the "Preprocessor Definitions" field in Project Settings > Configuration Properties > C/C++ > Preprocessor.</li>
  <li>Add the definitions from the previous solution with a <code>#define</code> directive to the top of the offending file.</li>
  <li>Add the definitions from the previous solution but prefixed with <code>/D</code> or with <code>-D</code> to the "Command Arguments" field.</li>
  </ul>
  
  <p>But none of this fixes the issue for me.</p>
  
  <hr>
  
  <p>What could possibly be the reason for Visual Studio to keep insisting on displaying this error?</p>