为什么无序关联容器不使用C ++ 0x </t>中的allocator_traits <t>

时间:2011-04-29 18:56:31

标签: c++ c++11 containers

为什么C ++ 0x无序关联容器不使用allocator_traits来定义它们的成员类型指针和const_pointer?

例如,顺序和有序关联容器使用以下定义:

typedef typename allocator_traits<Allocator>::pointer pointer;
typedef typename allocator_traits<Allocator>::const_pointer const_pointer;

无序关联容器使用此:

typedef typename Allocator::pointer pointer;
typedef typename Allocator::const_pointer const_pointer;

我错过了什么?

2 个答案:

答案 0 :(得分:3)

我认为你没有遗漏任何东西。这是您参与标准流程的机会。请提交一个问题。有关如何操作的说明如下:

http://lwg.github.com/issues/lwg-active.html#submit_issue

我进行了扫描,但没有找到关于此主题的现有问题。

答案 1 :(得分:3)

目前最新草案已对此进行了更正。例如,第788页:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf

class unordered_set
{
public:
// types
.... .... .... 
typedef typename allocator_traits<Allocator>::pointer pointer;
typedef typename allocator_traits<Allocator>::const_pointer const_pointer;
.... .... ....
}

有趣的是,en.cppreference.com(错误的你可以争辩)同意:http://en.cppreference.com/w/cpp/container/unordered_map