0

C++ ISO 標準は、「クラス定義内で定義された関数はインライン関数です」と述べています。*

このルールを無視するコンパイラを知っていますか?

その「インライン提案」をそこに置かないコンパイラについて知っていますか?

(インラインについての理論を繰り返さないでください。私はそれを認識しています-実用的な答えが必要です)

4

4 に答える 4

1

これは規則ではなく、単なる事実の表明です。仕様は、関数がインラインで定義されていることを単に述べています。これにより、コンパイラが生成されたコードを実際にインライン化することも容易になりますが、標準ではこれを必要とする場所はどこにもありません。

それらは異なる概念です。生成されたコードがどのように見えるかはコンパイラ次第であり、標準は実際には要件を課していません (もちろん、指定どおりに動作する必要があることを除いて)。

于 2009-03-17T16:21:38.457 に答える
0

非常によく似た質問に対する私の回答を参照してください: 「インライン」が無効になるのはいつですか? (C)

要約: インラインは、複数の定義を許可する場合にのみ必要です。関数呼び出しの変更は完全にオプションです。

于 2009-03-17T16:24:22.443 に答える