gpt4 book ai didi

c++ - 使用 typedef 错误解析函数名称的全局 namespace 说明符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:24 26 4
gpt4 key购买 nike

我遇到了一个奇怪的 clang 问题,它可能是也可能不是错误。

以下代码片段无法在 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 中的错误吗?

最佳答案

标准确实这么说

friend baz ::test(bar &);

friend baz::test(bar &);

是等价的。

但是,我认为它们应该都可以编译。

关于c++ - 使用 typedef 错误解析函数名称的全局 namespace 说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15671945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com