¿Por qué los contenedores C ++ no permiten tipos incompletos?

Por qué ¿C ++ no permite instanciar contenedores de tipos incompletos?

Es ciertamenteposible escribir contenedores que no tengan esta restricción -boost :: contenedor Es completamente capaz de hacer esto. Por lo que puedo ver, no parece dar ningún rendimiento u otro tipo de ganancia, y sin embargo, el estándar declara que es un comportamiento indefinido.

Esohace evitar que se construyan estructuras de datos recursivos, por ejemplo.

¿Por qué entonces el estándar de C ++ impone esta restricción arbitraria? ¿Cuál habría sido el inconveniente de permitir tipos incompletos como parámetros de plantilla siempre que sea posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta