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?