gpt4 book ai didi

c++ - 如何避免在 allocator c++17 中重新绑定(bind)

转载 作者:太空狗 更新时间:2023-10-29 20:20:05 25 4
gpt4 key购买 nike

在 c++17 之前,如果你有一个类似 Allocator<typename, size_t> 的分配器您可以使用重新绑定(bind)结构。但是现在,在 C++17 中,重新绑定(bind)结构已被弃用。构建 allocator<T,size_t> 的解决方案是什么?来自 allocator<T2, size_t>

最佳答案

只有 std::allocatorrebind成员模板已弃用。如果您使用自己的类,您仍然可以定义 rebind .

通过 std::allocator_traits 完成,比如:

using AllocatorForU = std::allocator_traits<AllocatorForT>::template rebind_alloc<U>;

rebind_alloc 的默认值对于 AllocatorTemplate<T, OtherTypes...>AllocatorTemplate<U, OtherTypes...> , 适用于 std::allocator ,这就是为什么 std::allocator<T>::rebind已弃用。你必须为你的类定义它,因为它有一个非类型模板参数。

关于c++ - 如何避免在 allocator<T, N> c++17 中重新绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54092334/

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