Ну, еще одно тревожное сообщение об ошибке для меня, если я правильно понимаю 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&
в качестве аргументов — возвращая логическое значение.
В вашем случае вы хотите это:
std::function<bool(value_type, const std::string &)>
func(std::bind(&Pred, std::placeholders::_1, "name"));
Других решений пока нет …