¿No se supone que un buen lenguaje de programación debe mantener un "foo-table" que solucione esta situación?
¿Lo es? ¿por qué? Un buen lenguaje de programación es aquel que le permite resolver problemas, ni más ni menos. Un recolector de basura sin duda reduce la barrera de entrada, pero también le quita el control al programador, lo que podría ser un problema en algunos casos. Es cierto que en una computadora moderna de cuatro núcleos y 2,5 GHz, y con los recolectores de basura avanzados y eficientes de hoy en día, podemos vivir con eso. Pero C++ tuvo que trabajar con un hardware mucho más limitado, desde computadoras de escritorio con 16 MB de RAM hasta plataformas integradas con 16 KB, y todo lo demás. Tiene que ser utilizable en código en tiempo real, donde puede no solo pausa el programa durante 0.5 segundos para ejecutar una recolección de basura.
C++ no solo está diseñado para ser el lenguaje utilizado en las computadoras de escritorio. Está destinado a ser utilizable en todas partes, en sistemas de memoria limitada, en escenarios duros en tiempo real, en supercomputadores grandes y en cualquier otro lugar.
El principio rector de C++ es "usted no paga por lo que no usa". Si no lo hace quiere un recolector de basura, no debería tener que pagar el precio (empinado) de uno.
Existen técnicas muy potentes para administrar la memoria en C++ y evitar pérdidas de memoria, incluso sin un recolector de basura. Si un recolector de basura fue solo manera de evitar fugas de memoria, entonces habría un fuerte argumento a favor de agregar uno al lenguaje. Pero no lo es. Solo tiene que aprender cómo administrar la memoria usted mismo en C++.
Usted podría estar interesado en http://stackoverflow.com/questions/3289726/in-c-any-general-guidelines-for-handling-memory- allocation-deletion/3289929 – sellibitze