error

Programming/QT

[QT] static assertion failed: Type is not registered, please use the Q_DECLARE_METATYPE

QT를 이용하여, 개발을 하다 보면 자주 만나는 메시지다. QVariant와 같은 QT에 미리 지정된 템플릿 클래스를 이용하다 보면 위와 같은 에러 메시지를 종 종 볼 수 있는데, 사용자 정의 클래스/타입이 미리 선언되어있지 않아 발생하는 오류다. enum ENUM_TYPE { ENUM_1, ENUM_2 } QVariant v; v.value(); // 에러 이는 헤더 파일에 Q_DECLARE_METATYPE(TypeName) 과 같이 작성하면 해당 문제는 해결된다. enum ENUM_TYPE { ENUM_1, ENUM_2 } Q_DECLARE_METATYPE(FSStatus); QVariant v; v.value();

Programming/C & C++

[C++] different underlying type in enum 'enum class TypeName'

Error 발생 원인 enum class를 선언하고, 공통 헤더에서 prototype만 정의하려는 시도를 진행하였으나, 제목과 같은 에러가 발생하였다. 이러한 현상은 enum class의 구현부의 underlying type과 prototype의 underlying type이 서로 달라 발생하는 오류이다. 예제 코드 global.h enum class Type; enumclass.h #include "global.h" enum class Type : unsigned int { A, B, C } 위와 같이 global.h에는 별다른 type을 지정안했으나, enumclass.h에는 별도의 타입이 지정되어 있을 때 발생한다. 해결 방법 이러한 부분은 아래와 같이 타입을 지정해주면 해결 된다. 예제 코드 gl..

후유증
'error' 태그의 글 목록