【发布时间】:2012-03-22 09:50:13
【问题描述】:
以下源代码可以使用 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 位同事)忽略了的东西?
【问题讨论】:
-
用 g++ 试过这个并得到了
undefined reference to NS::Y(NS::X)'- 所以也许它可能是 VS 中的一个错误.. -
@WeaselFox:完全不相关。您的错误是 链接器错误,因为未定义
NS::Y。这是典型的,可能会在完整设置的另一个文件中定义。 -
@MatthieuM。 - 是的,我意识到这一点,谢谢。
标签: c++ compiler-errors