对我来说,另一个令人不安的错误消息,如果我正确理解 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”:未声明的标识符
这很奇怪,我怎么能在 Visual Studio 中说“嘿,第一个参数没有绑定”。Pred 是一个以value_type, const std::string&
参数为参数的简单函数 - 返回一个布尔值。