전통적인 C ++에서는 값을 함수와 메소드에 전달하는 것이 큰 객체의 경우 속도가 느리고 일반적으로 눈살을 찌푸립니다. 대신 C ++ 프로그래머는 참조를 전달하는 경향이 있지만 속도는 빠르지 만 소유권과 특히 메모리 관리 (객체가 힙 할당되는 경우)와 관련된 모든 종류의 복잡한 질문을 유발합니다.
이제 C ++ 11에는 Rvalue 참조와 이동 생성자가 있습니다. 즉, std::vector값으로 전달되거나 함수 외부로 값 이 큰 대형 객체 (예 :)를 구현할 수 있습니다.
따라서 이것이 기본값이 std::vectorand std::string? 와 같은 유형의 인스턴스에 대해 값으로 전달되어야 함을 의미 합니까? 사용자 정의 개체는 어떻습니까? 새로운 모범 사례는 무엇입니까?
const std::string&아닌 사본을 가져 왔습니다. 첫 번째 스레드가 종료되었습니다 ...
pass by reference ... which introduces all sorts of complicated questions around ownership and especially around memory management (in the event that the object is heap-allocated). 소유권이 얼마나 복잡하거나 문제가되는지 모르겠습니다. 내가 뭔가를 놓친 것일 수 있습니까?