const 참조 복용량 릴레이에 의해 반환 뭔가를 저장하는 경우 방황하는이 상황을 가지고,이 함수는 수백 번 호출 할 수 있습니다.리시버 함수가 값을 복사 할 가치가있는 C++에서 const 참조로 반환 하시겠습니까?
는 내가 가지고에서
int x = 0;
class Foo {
...
....
Mo mo;
void Foo::setInt(float scaleX)
{
x = mo.doSomthing().toInt();
//x is class member which other functions are using it
}
...
...
..
}
하여 D : oSomthing().toInt()
를 호출
Val Mo::doSomthing()
{
Val v(444444);
return v;
}
: const를 기준으로 수를 얻는 것을
struct Val
{
public:
Val(int& v)
{
iVal = v;
}
const int& toInt()
{
return iVal;
}
private:
int iVal;
};
기능을 int를 돌려
일반 컨테이너 이 사건은 일부 비트를 저장하기 위해 const 참조를 사용하기위한?
참조로 기본 형식을 반환하는 것은 불필요한 오버 헤드입니다. 실제로 두 개의 복사본은 단일 복사본과 const 참조보다 저렴할 수 있습니다. 그러나 확실한 방법은 단단한 루프를 프로파일하는 것입니다. – StoryTeller
조숙 한 최적화에 읽기. 일반적으로 ** 측정 **. –
첫 번째 질문 : 프로그램 실행의 전형적인 시간에이 루프가 수십억 번 실행됩니까? 대답이 "둘 이상"이 아니라면 여기서 시간 낭비입니다. 이런 종류의 작업은 현대 프로세서에서 어리 석다. 벤치마킹 중이라면 의미있는 데이터를 얻기 위해 수백만 사이클 이상을 실행해야한다면 놀라지 않을 것입니다. – tadman