VS2015编译并执行以下代码段而不会出现问题。 g ++和clang没有链接代码,我认为它们是正确的。
objReg.Pattern = "Document FormTypeName=""(.+\.\s.+\.)"""
答案 0 :(得分:4)
您的示例几乎与[basic.link] / 7中的示例相同 - 是的,您的解释是正确的
使用未定义的函数q
会使您的程序格式错误 NDR 。因此VC ++在技术上符合。但是,你肯定想报告它。
注意VC ++ produces the same output(" q()")的内容,即使我们添加q
的内部定义:
namespace X {
void p() {
void q();
q();
}
void q() { std::cout << "This would be right"; }
}
void q() { std::cout << "q()" << '\n'; }
......但确实有明智的行为when extern
is used。