gpt4 book ai didi

c++ - "already a friend"警告什么时候有用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:47 26 4
gpt4 key购买 nike

我的代码使用大量预处理器框架来生成一些实用程序类。显然,某些宏会导致相同的 friend 声明在一个类中被包含两次,如下所示:

class Friendly {
// :::
friend class Bestie;
friend class Bestie;
// :::
};

当使用 gcc (4.8.1) 构建时,它会生成类似这样的警告

Bestie is already a friend of Friendly [enabled by default]

我真的看不出这个警告有什么用。我很好奇为什么它首先包含在 gcc 中。然而,由于 SO 社区很难回答这个问题,我将这样陈述我的问题:出现指示?

我能想到的唯一可能暗示的问题是“你可能打算在这里写一些别的东西而不是再次写同样的东西,所以我会帮助你警告你这一点。”然而,在这种情况下,预期的友元将丢失,这将导致在行使友元的代码中出现“访问控制违规”错误,因此我认为警告本身几乎没有用处。 p>

是否有任何我忽略的潜在问题?

最佳答案

我认为多次声明你的 friend 类没有用。我认为这是一个 bug据报道,我认为他们提供了 work around 。最好立即向你的类(class)宣布一个 friend ,以后应该避免重复。还要检查 this

我认为警告只是告诉用户他写了很多次冗余代码是没有用的。否则我认为这个警告没有任何用处。这就是为什么大多数程序员将其报告为错误的原因。

关于c++ - "already a friend"警告什么时候有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24424097/

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