He leído que el estándar de C++ permite la optimización a un punto en el que realmente puede obstaculizar con la funcionalidad esperada. Cuando digo esto, estoy hablando de la optimización del valor de retorno, donde en realidad podría tener algo de lógica en el constructor de copia, pero el compilador optimiza la llamada.Pregunta sobre la optimización en C++
Encuentro que esto es algo malo, como en alguien que no sabe esto podría pasar bastante tiempo arreglando un error resultante de esto.
Lo que quiero saber es si hay otras situaciones en las que la sobre-optimización del compilador puede cambiar la funcionalidad.
Por ejemplo, algo como:
int x = 1;
x = 1;
x = 1;
x = 1;
podría ser optimizado para una única x = 1;
Supongamos que tengo:
class A;
A a = b;
a = b;
a = b;
Podría esto también puede optimizar? Probablemente no sea el mejor ejemplo, pero espero que sepas lo que quiero decir ...
No estoy de acuerdo con el primer voto. Esta es una pregunta real y contestable. –
Cuando se eliminan los códigos de copiado, se produce un error en el código, entonces se diseñó el copiador incorrecto al principio. Su código no debería depender de cuántos objetos hay alrededor o de la frecuencia con la que se copian/asignan. – PlasmaHH
La lógica del copiador debe ser lógica para copiar el objeto. Si no se copia, ¿por qué debería copiarse la lógica del controlador que se debe ejecutar? –