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>
が含まれている可能性がありますが、これは文書には記載されていないので、これを手前で知る方法はあるのでしょうか?
いいえそのような実装の詳細は実装の詳細であるため、その実装の詳細を知る方法はありません。移植可能でC++標準に準拠したい場合は、必要な関数とクラスに必要なヘッダーファイルを常に含める必要があります。 –
これは実装に依存するとは思わなかった。私はヘッダーの定義が標準的であるという印象を受けていたため、輸入に暗黙の階層も含まれていました。 –
iostreamは通常のものですが、それだけで多くのヘッダーがスラップします。実装の詳細を知ることができます。ヘッダを見てください。リスクは、ソースファイルが別のコンパイラでコンパイルされないことです。大規模ではなく、もちろん簡単に修正できます。 –