C ++: проблема с tr1 :: bind (C2065) - PullRequest
1 голос
/ 16 июня 2010

Я получаю ошибку компилятора с bind:

using namespace std;

bool odp(int arg1, int arg2);

// ...

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

Моя цель - карри odp(), поэтому ее первый аргумент - iValue, и применить эту функцию в find_if.

Ошибка:

C2065: '_1' : undeclared identifier.

Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 16 июня 2010

Вам нужно using namespace std::tr1::placeholders или using std::tr1::placeholders::_1.

1 голос
/ 16 июня 2010

2 вещи здесь ... Во-первых, вполне возможно, что ваш компилятор не поддерживает TR1. Например, Visual Studio 2008 не поддерживает TR1, если только вы не установите Visual Studio 2008 с пакетом обновления 1 .

Во-вторых, я считаю, что вам нужна квалификация пространства имен для _1.

...