私は静的メンバー関数を持っています。これは私にとっては構文的な砂糖です。私は、パラメータを渡す動作の代わりにその本体を表示したいと思います。静的メンバー関数をインライン化できますか?
inline static foo(int a) {return a & 0x00000040;}
はちょうどそれがstatic
をせずにinline
した場合と同じように、インライン化されますか?
私は静的メンバー関数を持っています。これは私にとっては構文的な砂糖です。私は、パラメータを渡す動作の代わりにその本体を表示したいと思います。静的メンバー関数をインライン化できますか?
inline static foo(int a) {return a & 0x00000040;}
はちょうどそれがstatic
をせずにinline
した場合と同じように、インライン化されますか?
コンパイラは何をしたいかを選択します。そのため、コンパイラは何をするかを選択することはできません。つまり、機能がstatic
であれば、それがインライン化されるのを防ぐことはできません。 static
関数は基本的に、異なる名前付けスタイルとクラスのプライベートメンバーへのアクセスを持つ自由な関数です。
彼らは1つの重要な点で自由な機能とは異なります:プライベートメンバーへのアクセス – John
@Johnああ、それは重要な違いです。 –
クラス内の定義は、とにかくインライン化することを意味しませんか? –
静的メンバーメソッドにはthis
パラメーターがないため、静的メンバー変数にのみアクセスできます。
メソッドがインライン化されているかどうかとは異なります。したがって、2つは互いに独立しています。
コンパイラは、メソッドがインライン化されるかどうかを判断します。キーワードの使用は、単にコンパイラのヒントに過ぎません。
インライン展開の場合と同様に、答えは「依存します」です。 'foo'に関数ポインタをどこかで渡したいのですが? –