gpt4 book ai didi

c++ - mem_fn & bind 的一些实际用途

转载 作者:可可西里 更新时间:2023-11-01 17:32:45 27 4
gpt4 key购买 nike

有人可以推荐 tr1 的 mem_fn 和绑定(bind)实用程序的一些很酷的实际用途吗?我不需要深奥的 c++ 来开发库。只是一些利用这些的应用程序级编码。

任何帮助将不胜感激。

最佳答案

我已将 std::mem_fnstd::bind 用于反射样式属性。

所以我会有一个 class SomeClass 和一个 AbstractProperty vector 。 AbstractProperty 中可以有几种不同类型的类,例如 PropertyFloatPropertyU32 等。

然后在 SomeClass 中,我将 bindAbstractPropertystd::function。我会通过做 bind

std::bind(std::mem_fn(&SomeClass::SomeFloatGetter), this)

对于 setter 类型的函数,我会使用

 std::bind(std::mem_fn(&SomeClass::SomeSetterGetter), this, std::placeholders::_1)

当然,将函数设置到类中比较困难,但我确实使用了 std::function 来做到这一点。在 PropertyFloat 我有

typedef std::function<float(void)> GetterType;

所以它通过一个函数设置它,我将传递第一个 std::bind 我作为参数显示

typename PropertyFloat::GetterType getter

当然,类型可以使用模板并变得更通用,但这是一种权衡,具体取决于您的开发目的。

关于c++ - mem_fn & bind 的一些实际用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157163/

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