1
私は最近、いくつかのコードを読んでいて、このイディオムを見つけました。「extern __forceinline」というC++イディオムは何ですか?
extern
__forceinline
int foo()
{
return 0;
}
「extern __forceinline」イディオムとは何ですか?この場合、 "extern"はインラインヒントに何を追加しますか?
私は最近、いくつかのコードを読んでいて、このイディオムを見つけました。「extern __forceinline」というC++イディオムは何ですか?
extern
__forceinline
int foo()
{
return 0;
}
「extern __forceinline」イディオムとは何ですか?この場合、 "extern"はインラインヒントに何を追加しますか?
__forceinlineキーワードは、コスト/利益分析を上書きし、代わりにプログラマの判断に依存します。 __forceinlineを使用する場合は注意が必要です。 __forceinlineを無差別に使用すると、パフォーマンスが大幅に向上したり、場合によってはパフォーマンスが低下することもあります(たとえば、実行可能ファイルのページングが増えるなど)。
C++は、これは、 "C++イディオム" である可能性が低いことを意味し、 '__forceiline'を持っていません。 C言語には、(C99以降)「extern inline」というやや特殊な意味があります。しかし、C++では 'extern inline'に特別な値はありません。 – AnT
https://msdn.microsoft.com/en-us/library/bw1hbe6y.aspx –
二重のアンダースコアは、 '__forceinline'がコンパイラ固有であることを示しています。その文脈における「extern」の効果は、コンパイラ固有のものでもある可能性が高い。警告を抑制するために使用される可能性があります。とにかくこれはイディオムではありません。 –