如何将已赋值的std::function重置为默认构造的初始空状态?
将std::function重置为空的几种方法
要把已赋值的std::function重置为空状态,恢复到默认构造时的初始状态,有三种简单可行的方法:
调用成员函数
reset()
这是最直接的方式,std::function内置了专门的重置方法,调用后会清空当前持有的目标函数:f.reset();赋值默认构造的
std::function对象
给f赋值一个同类型的默认构造std::function实例,就能覆盖原有内容,回到空状态:f = std::function<void()>();赋值
nullptrstd::function支持从nullptr赋值,直接赋值nullptr同样可以将其置空:f = nullptr;
完成重置后,你可以通过if (!f)来验证std::function是否确实处于空状态。
内容的提问来源于stack exchange,提问作者Zebrafish
相关产品推荐
相关产品推荐

