単純に、いいえ。
" inline
" はコンパイラへの単なるヒントです。
コンパイラに何かを強制する方法はありますinline
が、これらの方法はコンパイラ固有です。あなたのコードは私にはモバイルに見えるので、さまざまな携帯電話プラットフォームで使用されるいくつかの C++ コンパイラでのいくつかの方法を次に示します。
Windows CE/ Windows Mobile VC++ ARM コンパイラは__forceinline
、ヒント ' inline ' の代わりにキーワードを使用します。
Windows CE/ Windows Mobile 用のより優れたコンパイラ (つまり、より高速な出力を行う)は、最新の GCC 4.4 を使用するcegccです。GCC では、関数名の__attribute__((always_inline))
後、本体の前に記述します。
より大きな問題は、このループをインライン化することをお勧めします。私は生計を立てるために携帯電話をプログラムしていますが、通常、携帯電話にはあまり CPU 予算がありません。しかし、このループがボトルネックであるとしたら、私は本当に驚くでしょう。プログラムからすべての「インライン」装飾を取り除き、出荷が近づいたときに、プログラムが遅い場合はプロファイルを作成してください。
一部のコンパイラは、現実的な方法で実行するインストルメント化されたバイナリを作成できる「プロファイルガイド付き最適化」を許可し、収集したデータを使用して本番バイナリを作成し、さまざまなコード速度とコードサイズについて情報に基づいた決定を行います。プログラムの一部を組み合わせて、両方の最適な組み合わせを提供します。