Следующий исходный код корректно компилируется в 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 моих коллеги) проглядели?