【发布时间】:2013-03-28 00:10:29
【问题描述】:
我遇到了一个奇怪的 clang 问题,可能是也可能不是错误。
以下 sn-p 在 clang 4.2 上编译失败,但在 gcc 上编译,因为它将“baz::test”解析为返回类型。
typedef int baz;
namespace foo { class bar; }
baz test(foo::bar &);
namespace foo {
class bar {
private:
int f;
friend baz ::test(bar &);
};
}
friend int ::test(bar &) 编译,friend baz (::test)(bar &) 也是如此。
我略读了一些标准,试图看看 clang 的行为是否正确,但没有获得太多洞察力。这是clang中的错误吗?
【问题讨论】:
标签: c++ clang language-lawyer