为什么std :: allocator在C 17中丢失成员类型/函数?
发布时间:2020-12-16 07:52:58 所属栏目:百科 来源:网络整理
导读:看着 std::allocator,看到会员: 值类型, 指针, const_pointer, 参考, 为const_reference, 尺码类型, difference_type和 重新绑定已被弃用. 分配者也将不再拥有成员: 地址,max_size,构造或销毁. 为什么会发生这种情况?它与polymophic分配器有关吗? 解决方
看着
std::allocator,看到会员:
值类型, 指针, const_pointer, 参考, 为const_reference, 尺码类型, difference_type和 重新绑定已被弃用. 分配者也将不再拥有成员: 为什么会发生这种情况?它与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支持之前定义了分配器.“ 所以,这是标准的图书馆追赶语言和范式转变. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |