C++ std::bind-在visual studio中编译意外(未声明的标识符)错误
另一个让我不安的错误消息是,如果我正确理解std::bind,我可以使用像C++ std::bind-在visual studio中编译意外(未声明的标识符)错误,c++,visual-studio-2010,c++11,stdbind,C++,Visual Studio 2010,C++11,Stdbind,另一个让我不安的错误消息是,如果我正确理解std::bind,我可以使用像\u1这样的参数来定义一个非给定的参数吗?对吗?考虑到以下几点: std::function<bool(value_type, const std::string &)> func(std::bind(&Pred, _1, "name")); std::函数 func(std::bind(&Pred,_1,“name”); 这应该管
\u1
这样的参数来定义一个非给定的参数吗?对吗?考虑到以下几点:
std::function<bool(value_type, const std::string &)>
func(std::bind(&Pred, _1, "name"));
std::函数
func(std::bind(&Pred,_1,“name”);
这应该管用,对吧?这将用于std::find_if()函数,因此第一个参数应该是值类型,第二个参数应该是字符串
但是visual studio 2010对此表示不满,并显示以下错误消息:
错误C2065:“\u 1”:未声明的标识符
这很奇怪,我怎么能在VisualStudio中说“嘿,第一个参数不受约束”。Pred是一个简单的函数,它将
值类型、const std::string&
作为参数-返回布尔值。在您的例子中,您需要:
std::function<bool(value_type, const std::string &)>
func(std::bind(&Pred, std::placeholders::_1, "name"));
std::函数
func(std::bind(&Pred,std::占位符::_1,“name”);
std::占位符::_1
hmm这实际上是有意义的。。。en.cppreference.com/w/cpp/utility/functional/bind让我在这里走错路了:P@paul23是的,页面不太清楚占位符位于不同的名称空间中-我只是编辑页面以使其更明显:-)