如果我写:
Vector.push_back(std::function<void()>);
编译器试图将其解释为表达式并失败..我的解决方法是:
std::function<void()> fun;
Vector.push_back(fun);
有没有办法在一行中解决这个问题?
原因与此相同:
std::vector<int> vec;
vec.push_back(int);
不会工作。你需要一个对象,而不是一个类型:
std::vector<int> vec;
vec.push_back(int{}); // notice the {}
同样,您的:
Vector.push_back(std::function<void()>);
试图推送一个类型,而不是一个对象。以同样的方式创建一个:
Vector.push_back(std::function<void()>{}); // notice the {}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句