- 답변 # 1
- 답변 # 2
복사 제거 및 RVO에 대한이 기사 "Want speed? Pass by value"를 읽을 수 있습니다 (Return by Value Optimization). 참조는 때때로 컴파일러가 참조를 수행하지 못하게한다고 설명합니다.
- 답변 # 3
예, 전달 된 참조 인수에 액세스하려면 전달 된 값 인수보다 더 많은 수준의 간접 성이 필요할 수 있습니다. 또한 인수의 크기가 단일 포인터의 크기보다 작 으면 속도가 느려질 수 있습니다. 물론 컴파일러가 최적화하고 있지 않다고 가정하는 것이 전부입니다.
- 답변 # 4
컴파일러는 크기가 동일하거나 크기가 작은 경우 단순히 값으로 전달하는 것에 대한 참조로 기본 유형 전달을 최적화 할 수 있습니다. 참조/포인터. 컴파일러가이 작업을 수행한다고 보장 할 수는 없으므로 원하는 경우 기본 유형을 값으로 전달하십시오. 그러나 템플릿 코드에서는 어쨌든 참조로 전달해야합니다-const 참조를 취하는 벡터의 push_back을 고려하십시오. 정수 벡터가있는 경우 기본 유형에 대한 참조를 전달합니다. 이 경우 컴파일러가 참조를 값으로 대체하여 컴파일러가 최적화하기를 바랍니다. 벡터는 큰 타입을 저장할 수 있기 때문에 const 참조를받는 것이 최선의 선택입니다.
call_traits<T>
관련 자료
- java - integer-object - 값 또는 메서드 참조에 의해 할당됩니까?
- c++ - char 유형 변수의 참조를 인쇄하면 값이 반환되는 이유는 무엇입니까?
- microsoft excel - 다른 시트에서 테이블의 "Total Row"값을 참조하는 방법은 무엇입니까?
- sql - 외래 키 관계를 업데이트하기 위해 참조 테이블에서 값을 가져 오는 가장 좋은 방법은 무엇입니까?
- python - 목록의 단일 요소를 값이 아닌 참조로 복사하려면 어떻게해야합니까?
- memory - Rust에서 "참조로 캡처"가 "값으로 참조 캡처"와 동일한 이유는 무엇입니까?
- 동일한 템플릿 인수가있는 C ++ 템플릿 클래스 저장소 참조 또는 값
- Rust 이중 참조 값
- C ++에서 참조로 값 반환
- javascript - Arrayfind가 값이나 참조를 반환합니까? 나는 가치로 전달하거나 참조로 전달한다는 의미입니까?
- python - 다른 df에서 참조하여 해당 df 값 추출
값으로 복사하기 (포인트, 컴플렉스) 저렴한 기본 유형 (int, char, float, ...) 및 POD 구조체를 전달하는 것이 좋습니다.
이것은 참조로 전달할 때 필요한 간접적 인 것보다 효율적입니다.
부스트 콜 특성을 참조하십시오.
와이즈 비즈 와이즈 비즈 "최상의"방법을 캡슐화하여 일부 유형 T의 매개 변수를 함수에 전달하거나 함수에서 전달하며 아래 표에 정의 된 typedef 모음으로 구성됩니다.