принадлежит пространству имен

Автор admin Среда, 20 мая 2009 11:32

принадлежит пространству имен std; он включает это пространство имен в список поиска уникальных функций, лучше всего соответствующих сигнатуре operator«(std::ostream& std::string). Такое объявление находится в пространстве имен std через заголовок . Без ADL работать с пространствами имен было бы крайне неудобно. Обратите внимание: механизм ADL обычно анализирует все объявления с указанным именем из всех доступных пространств имен. При отсутствии единого оптимального совпадения возникает неоднозначность. Чтобы запретить применение ADL, заключите имя функции в круглые скобки: (f)(x. у): // Подавление механизма ADL Теперь рассмотрим следующую программу1: //: С05:Lookup.срр // Правильно работает только в EDG и Metrowerks (со специальным ключом) #include using std::cout: using std::endl; void f(double) { cout « ‘T(double)” « endl: } tempiate class X { public: void g() { f(l); } }: void f(int) { cout « “f(int)” « endl: } int mainO { X().g(); } ///:- Из всех имеющихся у нас компиляторов программа работала правильно только в интерфейсе Edison Design Group2, хотя в некото


Комментарии закрыты.