내가이 이루어 코멘트에 이어 xvalues :있습니까 반환 지역 주민이 자동으로
passing std::vector to constructor and move semantics 다음 코드에서 필요한 std::move
가, 반환 값이가 xValue 있는지 확인하기 위해?
std::vector<string> buildVector()
{
std::vector<string> local;
// .... build a vector
return std::move(local);
}
이것이 필요하다는 것은 이해할 수 있습니다. 나는 종종 함수에서 std::unique_ptr
을 반환 할 때이 사용 보았다, 그러나 GManNickG는 다음과 같은 코멘트를했다 : 그것은 return 문에서 모든 지역 변수가 자동 것을 나의 이해는
xvalues입니다 (값을 만료)와 이동합니다 ,하지만 그 경우에만 반환 된 개체 자체에 적용되는지 확실하지 않습니다. 그래서 OP는 앞으로 나아가 야 할 때까지해야한다고 확신 할 때까지 거기에 넣어야합니다. :)
std::move
이 필요한 경우 누구에게 알 수 있습니까?
동작 컴파일러는 종속적입니까?
주 당신이 날 이후 내 문을 수정하기 위해 발생했습니다
당신에게 그게 무슨 뜻인지에 대한 간단한 예제를 제공합니다. 이동 된 반환 값 (로컬 변수 일 수 있음)이며 일반적으로 모든 로컬 변수가 아닙니다. (그것이 좋을지라도, 나는 생각할 수없는 오래된 코드를 깨뜨릴 것이고, C++ 진행은 이전 버전과의 호환성을 유지해야한다.) – GManNickG