2013-06-13 2 views
0

следующие коды могут работать очень хорошо в WINDOWS и LINUX, но терпят неудачу в MAC:Ни один член не назвал «привязывать» в пространстве имен ошибки станда

платформы
template <typename T> 
inline bool similar_fun(const std::vector<T> &a, const std::vector<T> &B, T threshold) 
{ 
    using namespace std::placeholders; 

    std::vector<T> differ; 
    std::transform(a.begin(), a.end(), b.begin(), 
     std::back_inserter(differ), std::bind(sub_fun<T>, _1, _2)); 

    return (std::accumulate(differ.begin(), differ.end(), static_cast<T>(0), Norm2<T>()) <= threshold); 
} 

Развития является Xcode 4, и компилятор Clang LLVM 1.0 Я также убедиться, что компилятор использует новый C++ стандарт C++ 0x сообщения об ошибках следующим образом:..

using namespace std::placeholders; *Expect namespace name 
std::bind(sub_fun) *No member named "bind" in namespace std 
+1

Вы явно включить '' ? Иногда заголовки неявно включаются в некоторые платформы, но не в другие. –

+0

@Arne Meritz Спасибо, я уже поставил файл главы. – feelfree

+0

LLVM 1.0? Ты уверен? Этот компилятор [датирован] (http://llvm.org/releases/) 24 октября 2003 г. –

ответ

1

Clang LLVM 1.0 кажется довольно старый, он с 2003 года, так что стандартная библиотека вы, вероятно, установили стандартную библиотеку C++ 03, которая не имеет placeholders и bind. Вы можете попытаться включить новые заголовки C++ 11, например. <array>, чтобы подтвердить это.

Если я прав, просто обновить ваш компилятор :-)

+0

Спасибо, и не могли бы вы дать мне знать, как обновить компилятор? Вы правы, и я не могу скомпилировать, если включен файл заголовка . – feelfree

+0

Ум, у меня нет опыта работы с XCode, LLVM и MAC. Но быстрый googling сказал мне, что обновление xcode должно быть возможным из магазина приложений: http://stackoverflow.com/questions/14823519/xcode-update-from-4-5-1-to-4-6 –

+0

Есть также возможности получения более поздних версий Clang, чем тот, который включен в последний XCode: http://stackoverflow.com/questions/8674546/how-to-update-llvm-clang-on-mac-osx –