[英]Construct std::function from function with one known input argument and one unknown input argument
我有功能
int testFunctionA(double a,std::string b)
{
return 0;
}
我想做一個std::function<int(std::string)>
其中a
是已知的, b
是未知的。 所以像
std::function<int(std::string)> testFunctionB=testFunctionA(2.3,std::string b);
但是此語法不起作用。
正確的語法是什么?
您可以使用lambda:
auto func = [](std::string b){ return testFunction( 2.3, b ); };
注意: func
將具有一些由編譯器生成的類型,但是它將隱式轉換為std::function< int( std::string ) >
。
您可以使用std::bind
:
std::function<int(std::string)> testFunc =
std::bind(&testFunction, 2.3, std::placeholders::_1);
或lambda(最好):
std::function<int(std::string)> testFunc =
[](std::string str){ return testFunction( 2.3, str ); };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.