我有一个与此类似的行为的函数:
void process(const T& input,T& output){
if(&input==&output){
//Alter output directly
}
else{
output=input; //Deep Copy
//Alter output
}
}
使用案例1:
T i;
//fill i
T o;
process(i,o);
用例2:
T io;
//fill io
process(io,io);
我想将此功能减速更改为更具可读性:
T process(const T& input){
//What to do here?
}
使用案例1:
T i;
//fill i
auto o = process(i);
用例2:
T io;
//fill io
io=process(io);
问题:我如何模仿以前处理就地案件的方法?我该如何实施呢?当它是同一个对象时,我需要避免深度复制。