[問題] friend function定義在class裡

作者: Lipraxde (Lipraxde)   2019-02-13 14:55:05
編譯器(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
作者: uranusjr (←這人是超級笨蛋)   2019-02-13 15:25:00
定義在 B 裡只會讓 foo inline, 不會讓 foo 屬於 B感覺是 Clang 的 bug...?
作者: notBeing (read and be read)   2019-02-13 15:26:00
不屬於

Links booklink

Contact Us: admin [ a t ] ucptt.com