Program Language/C & C++

[C++] 참조에 대한 참조

야곰야곰+책벌레 2021. 12. 29. 15:05
728x90
반응형

유형에서 참조에 대한 참조를 가져오면 참조 유형에 대한 일종의 특수한 참조가 아니라 해당 유형에 대한 참조를 얻게 된다. 그러나 어떤 종류의 참조일까? lvalue 참조일까? rvalue 참조일까?

using rr_i = int&&;
using lr_i = int&;
using rr_rr_i = rr_i&&; // ‘‘int && &&’’ is an int&&
using lr_rr_i = rr_i&; // ‘‘int && &’’ is an int&
using rr_lr_i = lr_i&&; // ‘‘int & &&’’ is an int&
using lr_lr_i = lr_i&; // ‘‘int & &’’ is an int&

즉, lvalue 참조가 상상 이긴다. 이것에는 의미가 있다. 유형으로 할 수 있는 어떤 것도 lvalue 참조가 lvalue를 참조하는 사실을 변경할 수 없다. 이를 참조 축소(reference collapse)라고 한다.

 

다음 구문은 허용되지 않는다.

int && & r = i;

참조에 대한 참조는 별칭 또는 템플릿 유형 인수의 결과로만 발생할 수 있다.

728x90
반응형

'Program Language > C & C++' 카테고리의 다른 글

[C++] 구조체 (structure)  (0) 2021.12.29
[C++] 포인터와 참조  (1) 2021.12.29
[C++] rvalue 참조  (0) 2021.12.29
[C++] lvalue 참조  (0) 2021.12.29
[C++] 참조(references)  (0) 2021.12.29