При компиляции кода на уровне предупреждений 4 (/ W4) я получаю C4996 предупреждений на std :: copy ()
вызывает, чьи параметры - это массивы C (не контейнеры STL, такие как векторы). Рекомендуемое решение для исправления этого, по-видимому, заключается в использовании stdext :: check_array_iterator .
Какая польза от stdext :: checked_array_iterator ? Как это работает?
Почему он не выдает никакого предупреждения компиляции об этом куске ошибочного кода, скомпилированного в Visual C ++ 2010?:
#include
#include
using namespace std;
int main()
{
int arr0[5] = {100, 99, 98, 97, 96};
int arr1[3];
copy( arr0, arr0 + 5, stdext::checked_array_iterator( arr1, 3 ) );
return 0;
}