2011-09-22 85 views
2

我在使用Sun Studio编译器的Solaris上有问题。它似乎与libCstd有关。问题与std :: BinaryPredicate使用Solaris CC

考虑下面的代码:

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

+0

也许是库实现中的错误。你可以在列表标题中查找相关部分吗? –

+0

不幸的是,我找不到头文件。 – ghi

+1

'grep -rH searchTerm/usr/include'如何? –

回答