Los asignadores STL requieren esta forma constructor (20.1.5): X a(b);
con el requisito de que Y(a) == b;
asignador STL, constructor de copia de otro tipo, remapean
En la implementación estándar esto implica, y se implementa como:
template<class U> allocator(const allocator<U> & o) throw()
Tengo problemas para entender por qué existe este requisito. Entiendo que los asignadores deben ser estáticos (no tienen ningún estado), pero ¿por qué debería poder convertirlos así?
Solamente los contenedores que almacenan todos los artículos de forma contigua (vector, String) puede utilizar el tipo de imputación dada directamente. –
Gracias. Ese es un requisito realmente horrible. Estoy empezando a estar de acuerdo con Scott Meyer aquí, el sistema de asignación parece ser básicamente basura. –
@edA: Como tantas noches en la ciudad, tenía sentido hace 15 años. Estoy de acuerdo hoy. :) –