-5

现在,我正在努力在另一个 *.cpp 文件中引用 lambda。但是,我不知道如何实现它。

假设我有一个位于 money.cpp 中的 lambda 函数,那么,我如何在 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,这些代码方式在我们的实际工作中是不允许的。这个问题的目的是,我想尝试一些新的东西,这只是我的一种练习。

在软件领域,我们必须不断学习,直到退休。

4

2 回答 2

3

如果需要MaxComDiv全局化,请在 header 中添加声明money.h,如下所示:

extern function<int(int,int)> MaxComDiv;

您需#include <functional>要这样做才能编译。

于 2013-07-22T02:09:38.747 回答
1

最好的解决方案是将 lambda 声明为实际函数。

于 2014-09-01T02:59:43.220 回答