Por que os contêineres C ++ não permitem tipos incompletos?

Por quê C ++ não permite que contêineres de tipos incompletos sejam instanciados?

É certamentepossível escrever contêineres que não tenham essa restrição -boost :: container é completamente capaz de fazer isso. Tanto quanto eu posso ver, não parece dar qualquer desempenho ou outro tipo de ganho, e ainda assim o padrão declara que é um comportamento indefinido.

istofaz Impede que estruturas de dados recursivas sejam construídas, por exemplo.

Por que então o padrão C ++ impõe essa restrição arbitrária? Qual teria sido a desvantagem de permitir tipos incompletos como parâmetros de modelo sempre que possível?

questionAnswers(1)

yourAnswerToTheQuestion