给定
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;
};
有人说,在 中Box box(Range(0.0,1.0),Range(0.0,2.0))
,编译器可以Range
通过在内部构造对象来完全避免复制对象box
。
任何编译器实际上都这样做吗?
我自己的尝试没有成功。