🧼C, C++/기초및 입문
c++17 | r-value를 l-value로 바꾸는 방법
안녕하세요!
이번에는 r-value를 l-value로 바꾸는 방법에 관하여 알아보겠습니다.
저가 이번에 그래픽공부를 하면서 진짜~~!! 엄청 많이 마주친 오류...
흠... 이 오류는 l-value가 있어야 할 자리에 r-value가 존재하기 때문이죠.
l-value는 고유의 메모리주소를 참조할 수 있으며, r-value로도 치환이 가능하지만, 반대로 r-value는 불가능하죠...
그래서 생기는 문제입니다.
저는 이 문제를 그냥 고유의 메모리주소를 할당해주어 인스턴스 하나만들어가면서 고치고있었는데, 매번~ 이 오류뜰때마다 인스턴스만들기도 뭣하고.... "뭐 간단하게 바꿀수있는법 없나?" 라고 생각하면서 스택오버플로우를 탐방해보았습니다.
그리고.. 발견!! 이 방법이 진짜 간단해요.
https://stackoverflow.com/questions/44677825/rvalue-to-lvalue-conversion
이제 오류가 안뜨더라구요..!!
template <class _Tp>
_Tp& My_unmove(_Tp&& __value) {
return __value;
}
굿....!!!
이제부터 게임엔진 만들때마다 이 함수는 필수겠네요 흑...ㅠㅠ 너무좋아
'🧼C, C++ > 기초및 입문' 카테고리의 다른 글
윈도우 애플리케이션에서 콘솔 사용하는 법 (0) | 2021.12.28 |
---|---|
[C++/MSVC] 디버깅(Debugging) 강좌 (메모리 누수 방지) (0) | 2021.11.25 |
소수점 반올림하는법 c++ (0) | 2021.08.14 |
Devcpp에서 c++23 사용하기 Devcppで c++23を 使用する Using c++23 with Devcpp (0) | 2021.06.20 |
우주선 연산자 '<=>' 사용법 ( C++20 ) (1) | 2021.06.19 |
댓글