Re[4]: ADL. Кто неправ я, компилятор или реализация STL
От: night beast СССР  
Дата: 21.10.06 13:59
Оценка:
Здравствуйте, Greg Zubankov, Вы писали:

GZ>Здравствуйте, night beast, Вы писали:


KP>>>>Вопрос 1. Почему компилятор лезет в мое пространство имен, проводя зависимый поиск, хотя аргументы в begin() + _Newsize к нему ни какого отношения не имеют?

GZ>>>Компилятор прав. Посколько vector::iterator наследуется от шаблона std::iterator, поиск (ADL) проводится также в пространствах имен параметров шаблона. Первый из списка параметров std::iterator как раз Ваш mtr::Matrix.

NB>>а разве сначала не производится обычный поиск в пространстве std (где определены vector::iterator и std::iterator) ?


GZ>Я написал "проводится также". Естественно сначала проводится ordinary unqualified lookup.

GZ>Затем проводится ADL. Из двух найденных operator+ однозначно выбирается mtr::operator+.

это я к тому что begin() + _Newsize вызавается в пространстве std, и по идее до ADL дело не должно было дойти.
или я не прав?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.