gpt4 book ai didi

c++ - 在 C++ 中取消绑定(bind) std::bind

转载 作者:搜寻专家 更新时间:2023-10-31 00:29:47 25 4
gpt4 key购买 nike

我有一些函数指针与它们各自的类对象绑定(bind):

ExampleClass EO;
std::function<void()> Example=std::bind(&ExampleClass::ExampleFunction, &EO);

但是,我想稍后“解除绑定(bind)”,特别是确定每个“std::function”相关的特定类。

auto Unbind(std::function<void()> &Example)->void
{
//Find which object &Example is bound with (in this case EO/ExampleClass)
}

这样做的最佳方法是什么?

最佳答案

std::function 执行类型删除。顾名思义,它从接口(interface)中删除了真正的底层类型。

从那里没有回头路。

如果你想保留目标对象的类型,那么 std::mem_fn 可能就是你想要的:

http://en.cppreference.com/w/cpp/utility/functional/mem_fn

关于c++ - 在 C++ 中取消绑定(bind) std::bind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39514751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com