将lambda转换为函数指针的问题

时间:2018-12-31 10:23:58

标签: c++

我已经完成了这个简单的模板结构,可以在我的应用程序中表示一些“ UI参数”。

template<typename T>
struct Param{

    std::string name;
    T value;
};

和另一个类具有一堆该结构的向量作为属性:

std::vector<Param<int>> paramsInt;
std::vector<Param<float>> paramsFloat;
std::vector<Param<std::string>> paramsString;

std::vector<Param<void(*)()>> paramsAction;

当然,它对于int,float和string都可以正常工作,但是函数指针1存在问题。 现在,我通过为其提供lambda函数来使用它。

Param<void(*)()> action{"generate mesh", [](){
    // do something 
}};

在阅读了关于stackoverflow的一些知识后,我很快意识到我无法使用此lambda捕获任何内容。 据我了解,捕获的lambda无法转换为函数指针。

我不能在第一位置使用函数指针吗? 我真的不需要该函数返回任何东西,但我希望它使用从其调用的类的方法。

0 个答案:

没有答案