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 |