vc++ 2012 warning C4996



  • hi leute
    hab mir einen output iterator geschrieben.
    nun bekomm ich in verbindung mit std::copy folgende warnung:

    warning C4996: 'std::_Copy_impl': Function call 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'
    

    wie kann ich das abschalten ? also ich will die warnung nun fuer meinen iterator deaktivieren.

    Meep Meep



  • steht doch schon in der Warnung drin

    Meep Meep schrieb:

    To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'



  • Gut, aber alle Warnungen diesbezüglich will man vielleicht auch nicht abschalten. Geht es nicht (wie in früheren Versionen), einzelne Warnungen gezielt abzuschalten?

    #pragma warning(push)
    #pragma warning(disable : 4996)
    
    // Code
    
    #pragma warning(pop)
    

    Bzw.

    #pragma warning(disable : 4996)
    
    // Code
    
    #pragma warning(default : 4996)
    


  • @Meep Meep
    Du wirst irgend ein MSVC-spezifisches Template spezialisieren müssen.
    Einfach gucken wie er entscheidet welcher Overload aufgerufen wird (der mit oder der ohne Warning) - und genau da hängst du dich rein.


Anmelden zum Antworten