如何将值传递给 lambda 函数
How to pass value to lambda function
我正在尝试使用 lambda 在我的函数参数中组合多个步骤。我试过:
void testLambda(const char* input, const char* output = [](const char* word){return word;}(input)){
std::cout << input << " " << output << std::endl;
}
这个函数应该:如果
testLambda("hallo");
被调用,从第一个参数中取出并创建第二个参数(默认)并打印hallo hallo
.我怎样才能做到这一点?
你不能这样做——默认参数不够复杂。即使它们是,这也不是非常清晰的代码。
只需写一个重载!
void testLambda(const char* input, const char* output)
{
std::cout << input << ' ' << output << 'n';
}
void testLambda(const char* input)
{
return testLambda(input, input);
}
或者,如果您不想这样做:
void testLambda(const char* input, const char* output = nullptr)
{
std::cout << input << ' ' << (output ? output : input) << 'n';
}
(然后重命名函数:P)
没有必要使这种模式变得复杂。
相关文章:
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何建立使用模板函数的lambda函数的尾部返回类型
- 我可以将调用类的"this"传递给 lambda 函数吗?
- 两组使用lambda函数的大括号
- 尝试将lambda函数放在队列中时出现一般分配器错误(可能是与unique_ptr有关的错误)
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 为什么我不能在 constexpr lambda 函数中使用 std::tuple
- C++:Lambda 函数指针转换的用例是什么?
- 将 lambda 函数作为参数传递C++
- 如何将 lambda 函数作为参数发送到另一个函数
- 传递 lambda 函数的权衡是什么?
- 如何使用类模拟 C++11 中的 lambda 函数和闭包?
- 不是 lambda 函数中的常量表达式
- 如何使用可变参数数重载 lambda 函数?
- 如何通过指针传递lambda函数?
- 使用带有 lambda 函数指针的模板
- openmp c++ 中并行块内 lambda 函数的奇怪行为
- C++ 中 Lambda 函数中的溢出
- 将数组传递到 lambda 函数中
- lambda 函数未显示正确的结果