以下源代码与Visual Studio 2010正确编译:
namespace NS
{
class X
{
};
X Y(X str);
}
void myFun()
{
NS::X x;
Y(x);
}
Run Code Online (Sandbox Code Playgroud)
(这是减少的代码,其中所有我自己的类和函数名称已被X,Y,...替换)
我希望该行Y(x)
无法编译,因为它应该是NS::Y(x)
.
使用以下命令编译此源代码
cl /c file.cpp
Run Code Online (Sandbox Code Playgroud)
此处不包含其他文件,没有其他命令行选项.
为什么这个文件编译?VS2010中的错误?或者我和我的其他3位同事忽略了什么?