为什么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;
我错过了什么?
答案 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