[英]Is a friend function defined in-class automatically inline?
如果在類中定義了成員函數,則它是內聯函數。 例如
struct X
{
void mem_f() {} //mem_f is inline
};
我的問題是在類中定義的非成員友元函數是否也是自動內聯的。
例如
struct Y
{
friend void friend_f() {} //is friend_f inline?
};
標准中的相關引用/ paragraph_no將非常受歡迎。 謝謝。
是的。 §11.4/ 5:
當且僅當該類是非本地類(9.8),函數名稱是非限定的,並且該函數具有命名空間范圍時,才能在類的友元聲明中定義函數。 這樣的功能是隱含的內聯。 在類中定義的友元函數位於定義它的類的(詞法)范圍內。 在類外定義的友元函數不是(3.4.1)。
由於類定義可能是在頭文件中,因此函數將被多重定義,因此它需要inline
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.