std::for_each и массивы
От: Gigachel Украина  
Дата: 14.03.06 09:22
Оценка:
Доброго дня.

Возник такой вопрос.
Есть массив объектов, например, типа CType и размерностью N;

CType arr[N];

Чтобы вызвать какой-нибудь метод на всех элементах массива CType::Func использую, к паримеру, такую инструкцию:

std::for_each(&arr[0],&arr[N],boost::mem_fn(&CType::Func,boost::ref(_1));

Как я понимаю, инструкция &arr[N] используется только на чтение для определения дошел
ли итератор for_each до конца массива. Но фактически это обращение за пределы массива
и даже попытка чтения адреса может вызвать access violation.

На VC++7.1 все нормально выполняется.

Посоветуйте, насколько корректна такая форма вызова и не ли тут каких-нибудь тонких моментов?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.