Проблема с std :: BinaryPredicate при использовании Solaris CC - PullRequest
2 голосов
/ 22 сентября 2011

У меня проблема с Solaris при использовании компилятора Sun Studio. Это похоже на 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 ++. Кто-нибудь знает что происходит ? Спасибо!

1 Ответ

0 голосов
/ 25 сентября 2012

Попробуйте построить с -library=stlport4, так как стандартная библиотека C ++ не соответствует стандартам. См. http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation/cplusplus-faq-355066.html#LibComp5 для получения дополнительной информации.

...