考虑这个伪代码段:
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,有没有简单的解决方案?