메모

    [메모] l-value와 r-value

    * 서론 - 고전적으로 l-value, r-value는 대입문 왼편, 오른편에 올 수 있는 값들을 의미했습니다. - 최근에는 l-value는 참조가 가능한 객체라고 정의합니다. 즉, l-value : &연산자를 붙일 수 있는 주소 값을 취할 수 있는 값 r-value : 주소값을 취할 수 없는 (임시) 값 으로 정의할 수 있겠습니다. 실제로, 컴파일러는 r-value의 연산자를 허용하지 않습니다. * l-value 참조자 int& func(int& a) { return a; } int main() { int a = 3; int b = 2; func(a) = 4; printf("%d\n", a);//4 printf("%d\n", func(a));//4 printf("%d\n", func(b));//2 } ..

    [메모] UE - TSubClassOf를 가진 자식 Object 생성하기

    UObject는 NewObject를 통해 생성해야 하지만, 어떤 SubClass의 Object를 생성해야 할 때는 다음과 같이 작성합니다. 예를 들어, Magic이란 부모 클래스가 있고 자식 클래스로 다양한 마법 클래스가 있으며 NewObject를 통해 적절한 자식클래스로 마법을 생성해야 할경우 다음과 같이 작성해야 오버라이딩 된 자식 생성자와 함수를 이용합니다. struct MagicData { UPROPERTY(EditAnyWhere) TSubClassOf MagicClass; UPROPERTY(EditAnyWhere) int ID; }; . . . . //마법 종류에 따라 다른 자식 클래스로 생성 for(MagicData magic : Magics) { Magic* newMagic = NewObje..

    [메모] UE - TMap에 FStruct 자료형 키 사용하기

    TMap에 커스텀 자료형을 키로 사용하려 하면, GetTypeHash에러가 나게 되는데, 이는 GetTypeHash 함수가 해당 자료형으로 해싱이 불가능하다고 말해주는 것입니다. 해시가 가능하도록 GetTypeHash 함수와 자료형::operator== 함수를 오버로딩 해주면 됩니다. 위는 커스텀 구조체의 오버로딩 샘플 코드입니다. CRC는 순환 패리티 검사방식을 이용한 해싱을 의미합니다. 참고 링크 : Using Custom C++ Structs as TMap Keys in Unreal Engine | by biq | The Startup | Medium Using Custom C++ Structs as TMap Keys in Unreal Engine Let’s take a look at how to ..