我有以下小代码示例:
std::function<bool()> isSet;
bool check() {
bool tmp;
return tmp;
}
std::function<bool()> isSet {
return check();
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误消息
could not convert 'isSet()' from 'bool' to 'std::function<bool()>'
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么以及如何解决它?
初始化时std::function,只需给它你想要它使用的功能.那看起来像
bool check() {
bool tmp;
return tmp;
}
std::function<bool()> isSet { check };
Run Code Online (Sandbox Code Playgroud)
你几乎做的是制作一个lambda,你可以做,但语法就是
std::function<bool()> isSet { [](){ return check(); } };
Run Code Online (Sandbox Code Playgroud)
请注意check返回未初始化的未定义行为变量:为什么返回未初始化的值被视为未定义的行为?
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |