Встроенная функция с возвращаемым значением

У меня есть функция, которая имеет похожее поведение этого:

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);

Вопрос: Как я могу подражать предыдущей методологии работы с делами на месте? Как мне это реализовать? Мне нужно избегать глубокого копирования, когда это один и тот же объект.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]