Visual C ++: Чем полезен check_array_iterator?

При компиляции кода на уровне предупреждений 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;
}

6
задан Ashwin Nanjappa 30 August 2010 в 06:14
поделиться