如何从另一个源文件引用C++Lambda
How to refer C++ Lambda from another source file?
现在,我很难在另一个*.cpp文件中引用lambda。但是,我不知道如何实现它。
假设我有一个lambda函数,它位于money.cpp中,那么,我如何在我的dollar.cpp中引用它呢?
有人能帮我吗?任何帮助都将不胜感激。
这是我的lambda函数:
auto MaxComDiv = [](int num1, int num2) mutable -> int
{
int remainder;
while(remainder = num1 % num2)
{
num1 = num2;
num2 = remainder;
}
return num2;
}
更新:事实上,我最近正在学习C++11,在我们的实际工作中不允许使用这些代码方式。这个问题的目的是,我想尝试一些新的东西,这只是我的练习之一。
在软件领域,我们必须不断学习,直到退休。
如果您需要使MaxComDiv
全局化,请向标头money.h
添加一个声明,如下所示:
extern function<int(int,int)> MaxComDiv;
您需要#include <functional>
才能对此进行编译。
最好的解决方案是将lambda声明为实际函数。
相关文章:
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- c++ lambda:柯里和函数:使用按值捕获与按引用捕获返回不同的结果
- 引用捕获和在 lambda 中通过引用发送参数有什么区别 (C++)
- 修改在 std::future 的 lambda 中引用捕获的值
- clang++ 9.0 如何神奇地治愈 lambda 中的悬空引用使用?
- 为什么 lambda nullptr 取消引用在这种情况下有效?
- 仅通过引用捕获的 lambda 表达式是否保证不会抛出?
- 无法通过引用捕获 lambda 中的成员变量
- 无法使用带有常量引用的 lambda 对 std::vector 进行排序
- 接受对任何类型的可变引用的 Lambda
- 将函数的引用和 lambda 表达式作为参数传递时有什么区别?
- 将转发引用作为lambda捕获传递
- C++ 通过引用捕获 Lambda
- 通过右值引用返回 lambda
- 返回引用的 Lambda 会导致分段错误 - 原因
- 如何从另一个源文件引用C++Lambda
- 按值或引用在lambda内部分配指针值
- 通过引用接收lambda作为参数的正确方式
- 在 中全局引用捕获 lambda C++抑制别名优化
- 在OpenCV Mat::t文档示例中引用的lambda是什么?