有时候,你需要将一个给定类型的std::function转换成一个接受更多参数的std::function(但是返回类型和第一个参数相同)
例如:
std::function<double(double)> A;
std::function<double()> B = [](){ return 3.14159; };
A = B; //Doesn't compile
A = [B](double){ return B(); }; //Compiles
字符串
有没有一种更有效的方法来做到这一点,这将不需要更多的内存和调用比下面?
A = [](double){ return 3.14159; };
型
1条答案
按热度按时间7qhs6swi1#
我发现了类似的问题,然后我找到了以下使用
std::bind
的解决方案:字符串
我不确定它是否提供相同的性能,但我看不出有任何理由它应该更慢。