Me tomó mucho tiempo para darse cuenta de lo importante y sutiles que tienen variables que:C++ patrones específicos debido a diseño de lenguajes
1) existen en la pila
2) han llamado a sus destructores cuando se caen del alcance
son.
Estas dos cosas permiten cosas como:
A) RAII
B) refcounted GC
lo suficientemente interesante, (1) & (2) no están disponibles en los idiomas "inferiores" como C /Montaje; ni en idiomas "superiores" como Ruby/Python/Java (ya que el GC previene la destrucción predecible de los objetos).
Tengo curiosidad por saber qué otras técnicas conoces que son muy específicas de C++, debido a las opciones de diseño del lenguaje.
Gracias!
Editar: Si su respuesta es "esto funciona en C++ & este otro idioma", está bien también. Las cosas que quiero aprender son similares a:
Al elegir no tener ciertas características (como GC), obtenemos otras características (como RAII + destrucción predecible de objetos). En qué áreas de C++, al elegir NOT tienen características que otros lenguajes de "nivel superior" tienen, C++ logra patrones que esos lenguajes de nivel superior no pueden expresar.
no creo que C++ tiene GC, C#, por supuesto, pero eso es una bestia diferente. – Hogan
Sí, la gestión de recursos a través de RAII (con o sin recuento de ref) no es realmente GC, es mucho más general. –
Además, sucede en momentos predeterminados, GC no es determinista. – Hogan