std :: bind — компиляция непредвиденной ошибки (необъявленный идентификатор) в Visual Studio

Ну, еще одно тревожное сообщение об ошибке для меня, если я правильно понимаю std :: bind, я могу аргументы, как _1 чтобы определить не заданный аргумент? Правильно? Хорошо учитывая следующую строку:

std::function<bool(value_type, const std::string &)>
func(std::bind(&Pred, _1, "name"));

Это должно работать, верно? Это будет использоваться для функции std :: find_if (), так как первый аргумент должен быть типом значения & вторая строка.

Однако Visual Studio 2010 жалуется на это со следующим сообщением об ошибке:

ошибка C2065: ‘_1’: необъявленный идентификатор

Это просто странно, как я могу сказать в визуальной студии: «Эй, первый аргумент не связан». Pred — простая функция, принимающая value_type, const std::string& в качестве аргументов — возвращая логическое значение.

4

Решение

В вашем случае вы хотите это:

std::function<bool(value_type, const std::string &)>
func(std::bind(&Pred, std::placeholders::_1, "name"));
10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]