¿Me podría decir si tal código es correcto (según la norma):vida temporal constante C++
struct array {
int data[4];
operator const int*() const { return data; }
};
void function(const int*) { ... }
function(array()); // is array data valid inside function?
Gracias
@Martin Sí, quería estar seguro de que es una coincidencia válida en lugar de una suerte de compilador. Sé acerca de la vida útil de los objetos, pero no estaba seguro de que el reparto de objetos como este – Anycorn
sea muy inteligente. Como regla general, generalmente se puede esperar que, si se puede verificar o aplicar algo en tiempo de compilación, entonces lo será. El comportamiento indefinido generalmente se produce cuando se necesita una verificación de tiempo de ejecución para evitarlo. Pero, como dices, siempre es mejor asegurarte. –