如何从另一个源文件引用C++Lambda

How to refer C++ Lambda from another source file?

本文关键字:引用 C++Lambda 源文件 另一个      更新时间:2023-10-16

现在,我很难在另一个*.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声明为实际函数。