如何从其他源文件中引用C ++ Lambda?

时间:2013-07-22 02:02:58

标签: c++ windows visual-studio-2010 c++11 lambda

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

假设我有一个位于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,这些代码方式在我们的实际工作中是不允许的。这个问题的目标是,我想尝试新的东西,这只是我的一种做法。

在软件类别中,我们必须继续学习直到退休。

2 个答案:

答案 0 :(得分:3)

如果您需要将MaxComDiv设为全局,请向标题money.h添加声明,如下所示:

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

您需要#include <functional>才能进行编译。

答案 1 :(得分:1)

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