Instalaciones de biblioteca estándar que asignan pero no usan un asignador

En la mayoría de los lugares donde la biblioteca estándar de C ++ asigna memoria, el usuario puede personalizar esto al proporcionar una clase que cumpla con los requisitosAllocator requisitos. Por ejemplo, casi todos los contenedores toman un argumento de plantilla de asignador, ystd::allocate_shared devuelve unshared_ptr cuyo elemento contenido y el bloque de control se asignan a través de un asignador proporcionado.

Sin embargo, hay algunos lugares donde la biblioteca estándar puede (potencialmente) asignar memoria, pero noAllocator Se proporciona apoyo. Los que puedo pensar son:

std::make_unique() (no correspondeallocate_unique())std::anystd::function (el soporte del asignador se eliminará en C ++ 17)std::valarraystd::basic_filebuf (a pesar de questd::basic_stringbuf hace usar un asignador)std::inplace_merge()

Preguntas:

Estoy seguro de que esta lista está incompleta, pero ¿qué más me he perdido?De las clases y funciones no asignadas, ¿están especificadas para usar global::operator new, llanuranewo la fuente de memoria no está especificada?Si alguien lo sabe, ¿cuáles son las razones por las que no se proporciona el soporte del asignador enanyy quitándolo defunction?

Respuestas a la pregunta(1)

Su respuesta a la pregunta