• 일반 C++ 객체 오브젝트의 포인터 문제를 해결해주는 언리얼 엔진의 라이브러리이다.
    • TUniquePtr(유니크 포인터) : 지정한 곳에서만 메모리를 관리하는 포인터

      • delete 구문 없이 함수 실행 후 함수를 벗어 날 때 자동으로 소멸된다.

        if (TUniquePtr<FArchive> FileWriterAr = TUniquePtr<FArchive>(IFileManager::Get().CreateFileWriter(*ObjectDataAbsolutePath)))
        	{
        		*FileWriterAr << BufferArray;
        		FileWriterAr->Close();
        	} // 이 스코프를 벗어나면 FileWriteAr은 자동으로 메모리에서 해제된다
        
        
      • 특정 오브젝트에게 명확하게 포인터 해지 권한을 주고 싶은 경우에 사용한다.

    • TSharedPtr(공유 포인터) : 더이상 사용되지 않으면 자동으로 메모리를 해지하는 포인터

      • 여러 로직에서 할당된 오브젝트가 공유해서 사용되는 경우
      • 다른 함수로부터 할당된 오브젝트를 Out으로 받는 경우
      • Null일수도 있다.
    • TSharedRef(공유 레퍼런스) : 공유 포인터와 동일하지만, 유효한 객체를 항상 보장받는 레퍼런스

      • Not Null을 보장받으며 오브젝트를 편리하게 사용하고 싶은 경우
      • 여러 로직에서 할당된 오브젝트가 공유해서 사용되는 경우