SunStudioコンパイラを使用しているSolarisで問題が発生しました。libCstdに関連しているようです。
次のコードを検討してください。
#include <list>
static bool f(double fFreq1, double fFreq2) { return false; }
int main()
{
std::list< double > l;
l.unique(f);
}
私が受け取るエラーメッセージは次のとおりです。
"uniq.cpp", line 6: Error: Could not find a match for std::list<double>::unique(bool(double,double)) needed in main().
しかし、値の代わりに参照を使用すると、正常にコンパイルされます。
#include <list>
static bool f(const double& fFreq1, const double& fFreq2) { return false; }
int main()
{
std::list< double > l;
l.unique(f);
}
コンパイルは、g++を使用する両方で問題ありません。誰かが何が起こっているのか知っていますか?ありがとう !