dim*_*mba 2 c++ boost boost-bind object-lifetime boost-function
假设我有方法:
void foo(const std::string& s);
Run Code Online (Sandbox Code Playgroud)
我可以创建boost :: function:
boost::function<void(const std::string&)> f = boost::bind(foo, temp);
Run Code Online (Sandbox Code Playgroud)
其中temp是char*,在f被调用之前被删除.
是.绑定不能知道char*可以保存在字符串中,或者它被传递给字符串.要规避这一点,请使用:
boost::bind(foo, std::string(temp));
Run Code Online (Sandbox Code Playgroud)
这样你的temp就会被复制到一个字符串中.
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |