¿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?