对模板静态函数的未定义引用

Undefined reference to Template Static Function

本文关键字:未定义 引用 静态函数      更新时间:2023-10-16

这段代码有什么问题!!!!对' bool BioQt::QSequenceValidator::IsValidDNASequence(BioQt::QSequence)'的未定义引用

   class QSequenceValidator
{

public:
    template<class SEQ>
    static bool IsValidDNASequence(SEQ seq);
}
template<class SEQ>
bool IsValidDNASequence(SEQ seq)
{
    foreach (QChar c ,seq)
    {
        if(!CompoundSet::DNACompoundSet().contains(c,Qt::CaseInsensitive))
            return FALSE;
    }
    return TRUE;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
  qDebug()<<QSequenceValidator::IsValidDNASequence(pop);
    return a.exec();
}

IsValidDNASequence定义前添加QSequenceValidator::。当前定义的是自由函数,而不是静态成员函数。例如

template<class SEQ>
bool QSequenceValidator::IsValidDNASequence(SEQ seq)
{
  ...
}