KoreanFoodie's Study

언리얼 어설트 정리 (assert, verify, ensure) 본문

Game Dev/Unreal C++ : Study

언리얼 어설트 정리 (assert, verify, ensure)

GoldGiver 2022. 4. 4. 11:45

Assert 

assert 는 일반적으로 참조하고자 하는 변수가 null 인지 아닌지를 체크하는 용도로 자주 사용된다.

실제 개발을 할 때는 프로젝트명으로 된 헤더파일에 assert 구문을 이용한 커스텀 로그를 만들어 놓는 게 간편하다.

언리얼에서의 assert 종류는 크게 check, verify, ensure 이 있다.

// assert 는 DO_CHECK = 1 일때만 실행

// check 는 false 값이면 실행을 중지
check(Mesh != nullptr);
checkf(MyPtr, TEXT("MyPtr is nullptr")); // false 이면 로그 출력
checkcode(MyPtr, TEXT("MyPtr is nullptr")); // checkf 와 비슷
checkNoEntry(); // 절대 실행될 리 없는 경로 표시
checkNoReentry(); // 호출 완료 전까지 다시 호출되면 안되는 경우 체크
checkNoRecursion(); // checkNoReentry() 와 동일
unimplemented(); // 반드시 재정의해야 하는 가상 함수를 표시하기 위해 사용


// verify 는 DO_CHECK = 1 이 아니어도 실행
verify(Mesh != nullptr); // 이하 다른 method 는 assert 와 유사


// ensure 은 콜스택을 생성한다
ensure(MyPtr != nullptr); // 이 지점까지의 콜스택 생성
ensureMsg(MyPtr, TEXT("log")); // 콜스택 생성 + 로그 출력
ensureMsgf(Success, TEXT("log")); // if 문의 조건문 안에 넣어 사용 가능
Comments