我有一個靜態成員函數,它對我來說僅僅是語法糖,我希望它的身體出現在通過傳遞參數的運動的位置。你可以內聯靜態成員函數嗎?
inline static foo(int a) {return a & 0x00000040;}
被內聯,就像它,如果它是inline
而不static
?
我有一個靜態成員函數,它對我來說僅僅是語法糖,我希望它的身體出現在通過傳遞參數的運動的位置。你可以內聯靜態成員函數嗎?
inline static foo(int a) {return a & 0x00000040;}
被內聯,就像它,如果它是inline
而不static
?
編譯器選擇了它想做的事情,所以我們不能說它會選擇做什麼。也就是說,函數static
不會阻止它被內聯; static
函數基本上是自由函數,具有不同的命名風格和訪問類的私有成員。
他們在一個重要的方面不同於免費功能:訪問私人會員 – John 2012-02-11 22:44:28
@約翰啊是的,這是一個重要的區別。 – 2012-02-11 22:46:11
類中的定義是不是意味着內聯請求? – 2016-01-29 05:11:41
靜態成員方法沒有參數this
,因此只能訪問靜態成員變量。
這與方法是否內聯是不同的。所以這兩個人是彼此獨立的。
編譯器決定一個方法是否將被內聯。您對關鍵字的使用僅僅是編譯器的一個提示。
與任何內聯一樣,答案是「視情況而定」。如果你想在某處傳遞一個函數指針到'foo'呢? – 2012-02-11 22:35:20