gpt4 book ai didi

c++ - 是否有一个 `std::` 相当于 libdispatch 的 `dispatch_data_t` ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:35 26 4
gpt4 key购买 nike

我喜欢 dispatch_data_t。它在内存范围之上提供了一个有用的抽象:它提供引用计数,允许消费者创建任意子范围(参与父范围的引用计数),连接子范围等。(我不会'不要费心去了解血淋淋的细节——文档就在这里:Managing Dispatch Data Objects )

我一直在试图找出是否有 C++11 等效项,但术语“范围”、“内存”和“引用计数”非常通用,这使得谷歌搜索有点困难.我怀疑那些在 C++ 标准库上花费的时间比我多的人可能会一头雾水。

是的,我知道我可以使用 C++ 代码中的 dispatch_data_t API,是的,我知道不难实现这样的一个简单的首次通过实现一个东西,但我特别在寻找 C++ 惯用的东西,并且具有高度的抛光/可靠性。 (也许提升?)

最佳答案

没有。

正在为 future 的标准修订提议范围 View ,但它们是非拥有的。

dispatch_data_t 与 GCD 高度相关,因为清理发生在创建时确定的指定队列中:要复制该行为,我们需要 std 中的线程池和队列,我们没有。

正如您所注意到的,将拥有重叠的不可变范围类型写入稀疏或连续内存并不难。完全抛光它必须支持分配器,某种原始输入缓冲系统(拥有/销毁机制的类型删除?),具有按 block 异步迭代的实用程序(具有调整的 block 大小),仔细处理错误和异常,并且一些有效地将 rc 1 View 转换为可变版本的方法。

那么复杂的东西首先必须出现在像 boost 这样的库中,然后进行迭代改进。由于它有很多方面,因此可能已经存在具有足够满足您目的的属性的东西。

如果您自己推出,我鼓励您提交它以供 boost 考虑。

关于c++ - 是否有一个 `std::` 相当于 libdispatch 的 `dispatch_data_t` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22786878/

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