我有功能
@property (atomic, assign) NSInteger count;
// setter
@synchronized(self) {
_count = count;
}
我想知道int testFunctionA(double a,std::string b)
{
return 0;
}
已知std::function<int(std::string)>
且a
未知。像
b
但是这种语法不起作用。
正确的语法是什么?
答案 0 :(得分:4)
您可以使用lambda:
auto func = [](std::string b){ return testFunction( 2.3, b ); };
注意:func
将有一些编译器生成的类型,但它可以隐式转换为std::function< int( std::string ) >
。
答案 1 :(得分:2)
您可以使用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 ); };