【发布时间】:2012-04-06 06:30:20
【问题描述】:
在尝试回答this 的问题时,我发现没有()(它调用“C++ 最令人头疼的解析”),g++ 的输出是1(可以在这里看到:http://ideone.com/GPBHy),其中作为Visual Studio给出链接器错误。看不懂怎么输出1,有什么线索吗?
【问题讨论】:
-
顺便说一句,你明白为什么 msvc 会出现链接错误而不是类似的行为吗?
-
@Als:据我了解,它尝试使用给定参数调用“函数”
str,因为它找不到方法链接器给出错误。但是是的,我不知道为什么 g++ 没有给出同样的错误.. -
@Als:我最好的猜测是 MSVC 会尝试解析声明函数的地址,以便将值转换为
bool。 -
@Asha:它不是调用函数,而只是解析函数的地址。 G++ 只是在编译时将函数地址转换为
true,而 MSVC 尝试在编译时解析函数地址,然后在运行时转换为bool。 -
@AndréCaron:好像是这样,让我吃惊的是,为什么会有这种处理方式的差异?这不是一个角落用例,一个小众的 IMO。
标签: c++ visual-studio compiler-construction g++