2016-11-08 8 views
3

としてCPP Docあたり、std::greater<functional>ヘッダに定義されているが、std::greaterを使用して私のC++プログラムは、TDM-GCC-64 5.1.0でコンパイルのみ以下で実行されていますC++プログラムのコンパイルは

#include <cmath> 
#include <cstdio> 
#include <vector> 
#include <iostream> 
#include <algorithm> 
#include <unordered_map> 

<algorithm>には自動的に<functional>が含まれている可能性がありますが、これは文書には記載されていないので、これを手前で知る方法はあるのでしょうか?

+6

いいえそのような実装の詳細は実装の詳細であるため、その実装の詳細を知る方法はありません。移植可能でC++標準に準拠したい場合は、必要な関数とクラスに必要なヘッダーファイルを常に含める必要があります。 –

+0

これは実装に依存するとは思わなかった。私はヘッダーの定義が標準的であるという印象を受けていたため、輸入に暗黙の階層も含まれていました。 –

+0

iostreamは通常のものですが、それだけで多くのヘッダーがスラップします。実装の詳細を知ることができます。ヘッダを見てください。リスクは、ソースファイルが別のコンパイラでコンパイルされないことです。大規模ではなく、もちろん簡単に修正できます。 –

答えて

0

トピックを閉じると、これは実装に依存し、すべての必要なヘッダーを移植性の対象に含める必要があるという結論になります。

関連する問題