为什么std :: allocator在C 17中丢失成员类型函数?

为什么std :: allocator在C 17中丢失成员类型函数?,第1张

概述看着 std::allocator,看到会员: 值类型, 指针, const_pointer, 参考, 为const_reference, 尺码类型, difference_type和 重新绑定已被弃用. 分配者也将不再拥有成员:  地址,max_size,构造或销毁. 为什么会发生这种情况?它与polymophic分配器有关吗? 如果您看到 the relevant isocpp paper,您 看着 std::allocator,看到会员:
值类型,
指针,
const_pointer,
参考,
为const_reference,
尺码类型,
difference_type和
重新绑定已被弃用.

分配者也将不再拥有成员:
地址,max_size,构造或销毁.

为什么会发生这种情况?它与polymophic分配器有关吗?

解决方法 如果您看到 the relevant isocpp paper,您可以看到,您提到的第一个套件现在被认为是更适合于 std::allocator_traits.由于STL(甚至不是标准库)出现,更多的是使用特征.

重新绑定也是一种遗物.当STL首次出现时,不支持别名和模板模板参数.有了这些语言功能,重新绑定似乎是相当复杂的.例如,可以在an answer to this question中看到,在C编程语言中,第4版,第34.4.1节,p. 998,在默认分配器类中注释“古典”rebind成员:

template<typename U>     struct rebind { using other = allocator<U>;};

Bjarne Stroustupr写道:“好奇的rebind模板是一个古老的别名,应该是:

template<typename U>using other = allocator<U>;

但是,在这种别名被C支持之前定义了分配器.“

所以,这是标准的图书馆追赶语言和范式转变.

总结

以上是内存溢出为你收集整理的为什么std :: allocator在C 17中丢失成员类型/函数?全部内容,希望文章能够帮你解决为什么std :: allocator在C 17中丢失成员类型/函数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1233210.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存