0

XCode 4.2 を使用して crypto++ をコンパイルすると、複数の警告が表示されます。「extern テンプレートは c++11 拡張機能です」のすべてのインスタンスです。これは何を意味し、出力実行可能ファイルの互換性に影響しますか?

4

1 に答える 1

5

テンプレートを「extern」と宣言するということは、コンパイラがこの変換ユニットで特定のテンプレートをインスタンス化してはならないことを意味します。これは、テンプレートがすでに別の変換ユニットでインスタンス化されているためです。これは、コンパイル時間を短縮するために行われます。

この機能はC++11で追加されたため、コンパイラは実際にはC ++ 11モードで実行するように指示されていませんが、問題を認識していると、表示されているような警告が生成される場合があります。

参照。ウィキペディア

于 2012-06-04T11:38:05.423 に答える