我有很多函子,我正在传递给函数来做一些测试工作。我的目标是使用std::bind
执行这些操作而不使用lambdas。但是很简单的案例似乎很难用bind
。我的第一个问题是here。
现在我想知道是否存在可以使用bind
创建的延迟函数调用。例如:auto foo = std::bind( std::placeholders::_1 )
这样foo( 13 )
将返回13。
答案 0 :(得分:0)
这是linked question上给出的相同答案:
所以有一种方法可以使用std::integral_constant
完成此任务:
const int thirteen = 13;
auto refWrap = bind( &std::integral_constant< int, thirteen >::operator int, std::integral_constant< int, thirteen >() );
这确实解决了这个问题,但是所有意图和目的都不如lambda:
const int thirteen = 13;
auto refWrap = [=](){ return thirteen; };