编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
clang、gcc
问题(Question):
有 class A、class B、function foo
B 是 A 的 friend
foo 是 B 的 friend
把 foo 的定义写在 class B 里面
用 clang 编译可以在 foo 里面存取 A 的私有成员,gcc 则不行
B 的 member function bar 可以存取 A 的私有成员,是因为 bar 属于 B
B 的 friend function 不属于 B,不过定义写在 B 里面,那是属于 B 还是不属于 B?
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
https://gcc.godbolt.org/z/9aNGEX