23.01.05 12:59 작성
·
199
0
auto doSomething2(std::unique_ptr<Resource> res)
{
res->setAll(10);
return res;
}
...
int main()
{
...
res1 = doSomething2(std::move(res1));
}
이부분에서 res1를 R-value로 전환하여 doSomething2함수의 파라미터인 L-value res에 주소의 소유권을 넘겨준 것 까진 이해했습니다,
그리고 doSometing의 함수가 끝나면 res라는 unique_ptr 변수는 해제되는 거 아닌가요??
해제 된 변수를 return 해서 사용해도 괜찮은건가요??
답변 1
0
2023. 01. 05. 13:04
아 move 개념이네요. 잘못 이해했습니다. 그런데 doSometing2에서 return 할때 res를 std::move(res)안하고 return해도 상관 없나요?