Gen*_*0me 0 c++ compiler-errors function
如果我写:
Vector.push_back(std::function<void()>);
编译器试图将其解释为表达式并失败..我的解决方法是:
std::function<void()> fun;
Vector.push_back(fun);
Run Code Online (Sandbox Code Playgroud)
有没有办法在一行中解决这个问题?
原因与此相同:
std::vector<int> vec;
vec.push_back(int);
Run Code Online (Sandbox Code Playgroud)
不会工作。你需要一个对象,而不是一个类型:
std::vector<int> vec;
vec.push_back(int{}); // notice the {}
Run Code Online (Sandbox Code Playgroud)
同样,您的:
Vector.push_back(std::function<void()>);
Run Code Online (Sandbox Code Playgroud)
试图推送一个类型,而不是一个对象。以同样的方式创建一个:
Vector.push_back(std::function<void()>{}); // notice the {}
Run Code Online (Sandbox Code Playgroud)