0
클래스에 내 프로젝트의 공통 함수가 포함되어 있습니다. 기능 중 하나는 정적 템플릿입니다 :정적 템플릿 함수에 대한 정의되지 않은 참조
common.h
#include <QMetaEnum>
#include <QString>
class Common
{
public:
Common();
template<typename T> static QString EnumToString(const T value);
};
등 구현 : 문제없이 컴파일
common.cpp
template<typename T>
QString Common::EnumToString (const T value)
{
return QString(QMetaEnum::fromType<T>().valueToKey(value));
}
하지만 때 내가 이 기능을 다음과 같이 사용하고 싶습니다 :
MyEnum enum = MyEnum::Value1;
qDebug() << Common::EnumToString<MyEnum>(enum);
내가 이상한 링커 오류 얻을 :
error: undefined reference to `QString Common::EnumToString(MyEnum)'
MyEnum Qt는 metasystem을 등록했습니다
enum class MyEnum
{
Value1,
Value2,
Value3
};
Q_ENUM(MyEnum);
은 내가 잘못 할 어떻게 작동하려면를?