Код компилируется в Visual Studio 2010, но вообще не должен компилироваться

Следующий исходный код корректно компилируется в Visual Studio 2010:

namespace NS
   {
   class X
      {
      };   
   X Y(X str);
   } 

void myFun()
   {
   NS::X x;
   Y(x);
   }

(это сокращенный код, в котором все мои собственные имена классов и функций заменены на X, Y, ...)

​​Я ожидаю, что строка Y(x)не скомпилируется, так как она должна быть NS::Y(x).

Этот исходный код скомпилирован с следующая команда

cl /c file.cpp

Здесь нет других файлов, других параметров командной строки

Почему этот файл компилируется? Ошибка в VS2010? Или что-то, что я (и еще 3 моих коллеги) проглядели?

5
задан Patrick 22 March 2012 в 09:50
поделиться