有没有办法在一个语句中声明多个友元类?

Kaz*_*Kaz 2 c++ class

我希望在一条语句中声明多个 C++ 友元类,如下所示,只是为了整理代码。原因是,在我的实际应用中,会有三四个朋友类,所以它会比这个示例更混乱。

有可能以任何方式吗?

class A{
    friend class B, C; // this doesn't work
    // friend class B;
    // friend class C; // these two would be okay
};

class B{};
class C{};
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 5

不,您需要手写下来。

我想不出无法引入您的符号的语法原因。(例如,C++17 允许您缩短命名空间符号,因此您的想法并非没有先例)。

你为什么不向 C++ 标准委员会提出你的想法呢?

当然,会有一些围绕编译器复杂性的反驳。