Здравствуйте, 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 дело не должно было дойти.
или я не прав?