相关疑难解决方法(0)

C++ 14:具有通用std :: function作为类成员的泛型lambda

考虑这个伪代码段:

class SomeClass
{
public:
    SomeClass()
    {
        if(true)
        {
            fooCall = [](auto a){ cout << a.sayHello(); };
        }
        else
        {
            fooCall = [](auto b){ cout << b.sayHello(); };
        }
    }
private:
    template<typename T>
    std::function<void(T)> fooCall;
};
Run Code Online (Sandbox Code Playgroud)

我想要的是一个fooCall存储泛型lambda 的类成员,而lambda又在构造函数中赋值.

编译器抱怨fooCall不能是模板化的数据成员.

关于如何在类中存储泛型lambda,有没有简单的解决方案?

c++ std-function generic-lambda c++14

7
推荐指数
1
解决办法
895
查看次数

标签 统计

c++ ×1

c++14 ×1

generic-lambda ×1

std-function ×1