문제

수업이 있다고 말합니다.

class A
{
 public:
 A() {}
};

그리고 기능 :

void x(const A & s) {}

그리고 나는한다 :

x(A());

누군가가 임시 대상을 참조하여 전달하는 것에 관한 규칙을 저에게 설명해 주시겠습니까? 컴파일러가 허용하는 내용, const가 필요한 곳, 암시 적 사본이 발생하는 경우 등이 발생하는 것 등의 관점에서, 주위를 연주하면, 당신은 의미가있는 const가 필요한 것처럼 보이지만이 모든 것에 관한 공식적인 규칙이 있습니까?

감사!

도움이 되었습니까?

해결책

공식적인 규칙이 있습니다 - C ++ 표준 (섹션 13.3.3.1.4 관심이있는 경우 13.3.3.1.4)은 임시가 Const 참조에만 바인딩 될 수 있다고 말합니다. 오류.

다른 팁

Herb Sutter는 여기에서 설명하는 훌륭한 일을합니다. http://www.gotw.ca/gotw/081.htm

x ()는 임시 A에 대한 const 참조를 취하거나 x ()는 a- 값을 가져와야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top