我想调用具有以下签名的函数:
void foreach(std::list<float>& floats, boost::function<float(float)> action);
此函数迭代列表并通过执行修改每个元素new_value = action(old_value)
。提供这样一个总是返回相同浮点值的动作函数的最短方法是什么。我自己从未尝试过,但我猜 C++11 lambda 会完成这项工作:
foreach(floats, [](float){ return 3.14; });
假设我必须调用我的函数并且不能使用 C++03 中最接近的替代方法是什么std::fill
?是否有避免实际声明常规函数的技巧?