2011-04-29 11 views
6

¿Por qué los contenedores asociativos no ordenados de C++ 0x usan allocator_traits para definir sus tipos de miembros puntero y const_pointer?por qué los contenedores asociativos no ordenados no usan allocator_traits <T> en C++ 0x

Por ejemplo, secuencial y ordenó contenedores asociativos utilizan la siguiente definición:

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

Considerando que los envases asociativos no ordenadas utilizan este:

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

¿Qué me falta?

Respuesta

3

No creo que te falte nada. Esta es su oportunidad de participar en el proceso de estándares. Por favor envíe un problema. Las instrucciones sobre cómo hacerlo aquí:

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

Escaneé, pero no encontró un problema existente sobre este tema.

3

Esto se corrigió en el último borrador actual. Por ejemplo, la página 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; 
.... .... .... 
} 

Curiosamente, en.cppreference.com (incorrectamente se podría argumentar) está de acuerdo: http://en.cppreference.com/w/cpp/container/unordered_map

Cuestiones relacionadas