¿Alguien sabe de una implementación de STL que permite asignar asignadores dinámicos a una instancia de un contenedor antes de su uso?¿Implementación de STL que usa un asignador dinámico/basado en estado?
El escenario es que tenemos un asignador de memoria general que gestiona un número de grupos de memoria y para cada instancia de stl :: vector queremos asignar cada instancia desde un grupo de memoria diferente.
El problema con las implementaciones estándar de STL es que solo se puede definir el grupo de memoria por tipo, es decir, todos los vectores de tipo int se asignarían desde el mismo grupo.
Ya he cambiado nuestro stl :: allocator predeterminado por uno que tiene un estado, es decir, el grupo del que queremos asignar esta instancia, pero esto no funciona bien para decir stl :: list donde asigna cosas en el ctor predeterminado.
Por motivos relacionados con nuestra biblioteca, tampoco tenemos un grupo válido en el controlador para todos los objetos, por lo que queremos llamar a una función 'establecer grupo de memoria' antes de que los usuarios puedan usar el contenedor stl.
¿Alguien ha encontrado una implementación que admite este tipo de cosas?
¿Es ese Microsoft STL que asigna el nodo principal de la lista en su constructor? La implementación ideal de STL (leer GNU) no usaría ninguna asignación de memoria al construir contenedores vacíos. –
Sí, tanto Microsoft como mi puerto GNU (circa gcc 3.4.1) asignan el nodo principal en el ctor. STLPort, por otro lado, no y por lo tanto, esto es compatible con mis requisitos, consulte mi respuesta para obtener una fuente de ejemplo completa. – user176168