template void fucn(T&& param) { ... } "param의 형식은 오른값이지만 param자체는 왼값이다" 위의 코드와 문장을 보고 무슨말이신지 이해가 안 가신다면 https://cjbworld.tistory.com/27를 보고 와주시면 감사하겠습니다. 전달 참조란? auto, template 같은 "형식 연역"에서 type deduction 발생시 자주사용하는 개념입니다. (형식 연역 : 아직은 정해지지 않았지만 컴파일 타임에 때려 맞추겠다) 오른값 참조와 비슷하게 생긴 요녀석은 &&를 같이 사용합니다. 위 코드애서 p1는 lvalue입니다. 컴파일러 경고에 따르면 rvalue참조에다가 lvalue를 넣을 수 없다고 하는군요. 왜냐하면 mp의 형식은 오른값 참조이기 때문에 오른값을..
이번글은 오른값 참조와 전달(보편)참조에 대한 글입니다. (전달 참조는 보편참조로도 불립니다) 오른값의 개념이 Mordern C++ C++11부터 생겼으며 해당개념의 등장으로 C++속도의 엄청난 치아를 가져다 주었습니다. 먼저 오른값이 무엇인지 알아보기 전에 "왼값"이 무엇인지 개념부터 살펴보도록 하겠습니다. 왼값(lvalue, l-value)은 단일식을 넘어서 계속 유지되는 개체이며, 오른값(rvalue, r-value)는 "전체 개체에서 - 왼값" 인 개체입니다. 즉 임시객체나, 상수 등이 포함됩니다. 기존의 참조는 '&'하나만 사용하고 오른값 참조의 경우 '&&'두개를 사용합니다. template void fucn(T&& param) { ... } "param의 형식은 오른값이지만 param자체는 ..