DatoQualche compilatore potrà mai elidere queste copie?
struct Range{
Range(double from, double to) : from(from), to(to) {}
double from;
double to;
// if it matters to the compiler, we can add more fields here to make copying expensive
};
struct Box{
Box(Range x, Range y) : x(x), y(y) {}
Range x;
Range y;
};
someone said che nel Box box(Range(0.0,1.0),Range(0.0,2.0))
, il compilatore può evitare di copiare Range
oggetti complessivamente da costruirli all'interno box
per cominciare.
Qualche compilatore esegue effettivamente questo?
I miei tentativi non sono riusciti.
Se il compilatore è in discesa, assicurati. Li eliderà. – 101010
@ 101010 Qualcuno particolare compilatore moderno è decente? Non posso farlo accadere. – Museful
Dovresti commentare questa risposta senza fare una domanda doppia. – LogicStuff