我在使用 Sun Studio 编译器的 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++ 编译都可以。有谁知道发生了什么?谢谢 !