Visual Studio警告C4996

时间:2010-07-23 11:02:22

标签: c++ warnings

我收到以下警告

warning C4996: 'std::_Uninitialized_copy0': 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' c:\program files\microsoft visual studio 10.0\vc\include\memory 348

我似乎无法找到任何有助于打击此警告的信息。通过查看输出,这个警告似乎与Boost.Signals2和auto_buffer有关。

这样可以安全忽略,还是可以以某种方式将其删除?

2 个答案:

答案 0 :(得分:51)

答案 1 :(得分:0)

生成此错误是因为它生成的代码不是线程安全的。这意味着如果您使用多线程编码,您的某些流I / O可能(并且可能会)丢失,因为内部I / O缓冲区是共享的。建议的替代函数消除了这个问题。