是否可以动态地将函数分配给函数指针?

时间:2019-07-13 15:21:04

标签: c++

是否可以以某种方式在func中向函数指针main()声明并分配一个函数,而没有实际的函数add()

当前代码:

#include <iostream>

int add(int a, int b)
{
    return a + b;
}

int main()
{
    typedef int (*funcPtr)(int a, int b);
    funcPtr func = &add;
    std::cout << func(2,3) << std::endl;
}

首选样式:(如果可能)

#include <iostream>

int main()
{
    typedef int (*funcPtr)(int a, int b);
    funcPtr func = (funcPtr){return a + b}; // is something like this possible?
    std::cout << func(2,3) << std::endl;
}

有没有一种方法可以像我上一个代码一样动态地将函数分配给函数指针?

1 个答案:

答案 0 :(得分:4)

您可以使用lambda;如果不捕获任何内容,则可以隐式转换为函数指针。

funcPtr func = [](int a, int b) {return a + b;};

LIVE