C++インライン機能を使用GCC-なぜ、電話のかけ方は?
質問
って試験インライン機能通話が可能です。
Thread model: win32
gcc version 4.3.3 (4.3.3-tdm-1 mingw32)
Stroustrup、C++のプログラミング言語wirtes:
のインラインで指定子は、ヒント、コンパイラこのよう努めるべきであるコードを生成します。[...]インラインではなく位置づけながら、コードの機能はその呼び出しを通じて、通常の関数呼び出し機構。
しかし、私を得ることができるように生成されたコードしていないインライン.があり 電話 instrctionの 国際広場 機能です。
なぜ起こっているか?うまく使いこなせる方法インライン機能でしょうか?
編集: のコマンドラインオプション:
**** Build of configuration Debug for project InlineCpp ****
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\InlineCpp.o ..\src\InlineCpp.cpp
g++ -oInlineCpp.exe src\InlineCpp.o
解決
な汎用C++へのコンパイラをインラインで機能する。注のヒントのテキストで引用のコンパイラが義務付けられていません聞きます。
なので、しばらく日本には絶対にしてものをつくるインラインが必要でコンパイラの特定のキーワードはできます。マクロな機能を備えています。
編集:njsfの適切なgccキーワード氏に応じます。
他のヒント
のようにマイケル-Kohneて、インラインキーワードは常にヒントに、GCCの場合は機能しない決定をしたインラインです。
しておりますので使用できる力インラインの__属性((always_inline)).
例:
/* Prototype. */
inline void foo (const char) __attribute__((always_inline));
ソース:GCCインラインdocs
までデバッグの構築(ユー不可)?コンパイラでコンパイルは通常無効inliningの"デバッグ"を構築でデバッグ激となりました。
いずれの場合においても、 inline
指定した実 ヒント.のコンパイラは不要インラインの機能です。あの理由でコンパイラこのように無視するインラインヒント:
- コンパイラが簡単、サポートしないinlining
- コンパイラを利用する場合がありま内部のアルゴリズムを決めるインラインを無視して情報を転送するヒント.
(場合によっては、コンパイラでよりきれいにインラインでは、特に複雑な建築様IA64) - コンパイラを利用する場合がありま独自のヒューリスティックに決めるにもかかわらず、ヒントinliningな性能向上
インラインはあくまでも提案のコンパイラの場でインラインこの機能をコンパイラに考えようとしているとします。一部の機能でインラインを自動的にこれは簡単で、その他の機能とき を提案 でinlinesんでいます。
また、気付いたことを確認することができまに、デバッグ。んが、実は知らず、まれてくる可能性があることで、コンパイラを無効にしinlining debugビルドでも難しいのデバッガ...
このヒントをcomplierできる選択肢を無視するヒント.と思い読んだことGCCは無視されます。私は私を聞いたフラグをしていますが、いまだに動作しない100%のである。してくれてありがとうございます見つかりませんでリンクします。
フラグ:-finline-機能on時-O3を最適化する。
るか否かのインラインのコンパイラです。ので無視し、 インライン ヒント.一部のコンパイラでコンパイルして特定のキーワードなど __forceinline
VC++)でもそのようなキーワードは仮想の通話を仮想の会員機能しませんinlined.
っていないときも同様の問題を抱えることを見出したがこの仕様は、場合によってはインライン機能はヘッダファイルです。