2

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

4

1 回答 1

0

尝试构建-library=stlport4标准 C++ 库不符合标准。有关详细信息,请参阅http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation/cplusplus-faq-355066.html#LibComp5

于 2012-09-25T10:20:07.940 回答