2017-02-17 14 views
1

私は最近、いくつかのコードを読んでいて、このイディオムを見つけました。「extern __forceinline」というC++イディオムは何ですか?

extern 
__forceinline 
int foo() 
{ 
    return 0; 
} 

「extern __forceinline」イディオムとは何ですか?この場合、 "extern"はインラインヒントに何を追加しますか?

+0

C++は、これは、 "C++イディオム" である可能性が低いことを意味し、 '__forceiline'を持っていません。 C言語には、(C99以降)「extern inline」というやや特殊な意味があります。しかし、C++では 'extern inline'に特別な値はありません。 – AnT

+2

https://msdn.microsoft.com/en-us/library/bw1hbe6y.aspx –

+0

二重のアンダースコアは、 '__forceinline'がコンパイラ固有であることを示しています。その文脈における「extern」の効果は、コンパイラ固有のものでもある可能性が高い。警告を抑制するために使用される可能性があります。とにかくこれはイディオムではありません。 –

答えて

0

__forceinlineキーワードは、コスト/利益分析を上書きし、代わりにプログラマの判断に依存します。 __forceinlineを使用する場合は注意が必要です。 __forceinlineを無差別に使用すると、パフォーマンスが大幅に向上したり、場合によってはパフォーマンスが低下することもあります(たとえば、実行可能ファイルのページングが増えるなど)。

Link

関連する問題