Safe Libraries: C++ Standard Library

 

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Several enhancements have been made to the libraries that ship with Visual C++, including the Standard C++ Library, to make them more secure.

Several methods in the Standard C++ Library have been identified as potentially unsafe because they could lead to a buffer overrun or other code defect. The use of these methods is discouraged, and new, more secure methods have been created to replace them. These new methods all end in _s.

Several enhancements have also been made to make iterators and algorithms more secure. For more information, see Checked Iterators, Debug Iterator Support and _ITERATOR_DEBUG_LEVEL.

The following table lists the Standard C++ Library methods that are potentially unsafe, as well as their safer equivalent:

Potentially unsafe methodSafer equivalent
basic_string::copybasic_string::_Copy_s
char_traits::copychar_traits::_Copy_s

If you call any one of the potentially unsafe methods above, or if you use iterators incorrectly, the compiler will generate Compiler Warning (level 3) C4996. For information on how to disable these warnings, see _SCL_SECURE_NO_WARNINGS.

_ITERATOR_DEBUG_LEVEL

_SCL_SECURE_NO_WARNINGS

Checked Iterators

Debug Iterator Support

STL Overview

Show: