¿No es un error la optimización del valor de retorno (RVO)?

Tal vez haga una pregunta tonta, pero miré la página de Wikipedia para RVOaquí y no podía dejar de preguntarme si ese comportamiento es incorrecto. Lo probé en mi máquina y RVO está totalmente activado a pesar del nivel de optimización. ¿Y si realmente hubiera algo?GRANDE sucediendo en un constructor? Sé que no debería, pero ¿y si? No puedo entender por qué RVO todavía sucedería cuando hay efectos secundarios en el constructor.

EDITAR:-fno-elide-constructors parece detener a RVO. Pero la pregunta permanece.

EDIT2: En una nota más seria, ¿cuántas personas saben sobre algo como esto? Tal vez en el estándar, pero sigue siendo una característica realmente fea como la veo. Al menos los compiladores deberían deshabilitarlo de manera predeterminada y proporcionar un interruptor para las personas que lo conocen. :)

EDITAR 3: Todavía insisto en que esto es realmente malo. :). No creo conocer ninguna otra restricción de lenguaje como esta que vaya directamente en contra de la sintaxis del lenguaje. Todo lo demás arroja errores del compilador o del enlazador, ¿verdad?

Respuestas a la pregunta(3)

Su respuesta a la pregunta