gpt4 book ai didi

c++ - 未定义的静态模板函数引用

转载 作者:行者123 更新时间:2023-11-30 03:27:16 24 4
gpt4 key购买 nike

<分区>

我有一个包含项目常用功能的类。其中一个函数是静态模板:

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 元系统中注册:

enum class MyEnum
{
Value1,
Value2,
Value3
};
Q_ENUM(MyEnum);

我做错了什么以及如何让它发挥作用?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com