2010-06-15 2 views
1

내가 bind와 컴파일러 오류를 받고 있어요 :C++ : TR1 :: 바인드 (C2065)에 문제

using namespace std; 

bool odp(int arg1, int arg2); 

// ... 

find_if(vec.begin(), vec.end(), tr1::bind(odp, iValue, _1)); // C2065 

내 목표는 첫 번째 인자가 iValue 그래서, odp() 카레, 그리고에서 해당 기능을 적용하는 것입니다 find_if.

오류 :

C2065: '_1' : undeclared identifier. 

내가 잘못 뭐하는 거지?

답변

4

using namespace std::tr1::placeholders 또는 using std::tr1::placeholders::_1이 필요합니다.

1

두 가지가 있습니다 .... 우선, 컴파일러가 TR1을 지원하지 않을 수도 있습니다. 예를 들어, Visual Studio 2008은 Visual Studio 2008 Service Pack 1을 설치하지 않으면 TR1을 지원하지 않습니다.

두 번째로 _1에 대한 네임 스페이스 자격이 필요하다고 생각합니다.

관련 문제