다음을 통해 공유


경고 C26479

std::move를 사용하여 지역 변수를 반환하지 마세요. (f.48)

설명

return 문은 로컬 변수의 마지막 사용이므로 컴파일러는 가능한 한 이동 의미 체계를 사용하여 반환합니다. std::move 이 시나리오에서는 추가가 중복됩니다. 또한 중복 std::moves는 복사 엘리전을 방지할 수 있습니다.

코드 분석 이름: NO_MOVE_RET_ON_LOCALS

예 1

S foo()
{
    S local1{};
    return std::move(local1); // Warning: C26479
}

이 문제를 해결하려면 중복을 제거합니다.std::move

S foo()
{
    S local1{};
    return local1; // No warning
}

참고 항목

F.48 - ES.56을 반환std::move(local)하지 않음 - 개체를 다른 범위로 명시적으로 이동해야 하는 경우에만 쓰기 std::move()