Проблема с Dependent Name Lookup
От: Антибиотик Россия  
Дата: 29.09.09 08:54
Оценка: 29 (1)
имеется следующий код:
#include <iostream>
using namespace std;

namespace A {
     template <typename T>
     void foo(T*)
     {
       cout << "void foo(T*)\n";
     }
};

class B {
public:

     friend void A::foo<>(B*);
private:
     int b_;
};

int main()
{
  B b;
  foo(&b);

  return 0;
}

который нормально компилируется, но почему-то не работает так, как ожидается. Точнее, функция foo фактически не вызывается.
Вопрос: если это пример Argument Dependent Name Lookup, то почему функция не вызывается, если это не ADNL, то почему нету ошибки компиляции?
visual studio .net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.