调用模板函数时LNK2019错误

时间:2016-01-06 13:27:02

标签: c++

我有以下模板函数,它从std::unordered_set对象构建std::list对象:

template<typename T>
std::unordered_set<T> *SetUtils::list_to_set(const std::list<T>& list) {
    std::unordered_set<T> *set = new std::unordered_set<T>();
    for (typename std::list<T>::const_iterator it = list.begin() ; it != list.end(); ++it) {
        set->insert(*it);
    }

    return set;
}

我尝试在字符串列表上运行它,希望得到一组字符串:

std::unordered_set<std::string> *point_set = SetUtils::list_to_set(*point_list);

前面将point_list定义为:

std::list<std::string> *point_list = new std::list<std::string>();

当我尝试编译它时,我收到以下错误:

kuku.obj : error LNK2019: unresolved external symbol "public: static class std::unordered_set<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > * __cdecl SetUtils::list_to_set<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > const &)" (??$list_to_set@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@SetUtils@@SAPEAV?$unordered_set@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEBV?$list@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@2@@Z) referenced in function "public: class std::unordered_map<double,class std::unordered_map<double,double,struct std::hash<double>,struct std::equal_to<double>,class std::allocator<struct std::pair<double const ,double> > >,struct std::hash<double>,struct std::equal_to<double>,class std::allocator<struct std::pair<double const ,class std::unordered_map<double,double,struct std::hash<double>,struct std::equal_to<double>,class std::allocator<struct std::pair<double const ,double> > > > > > * __cdecl FrameAnalyzer::computeFrameAnalytics(double *,unsigned int *,class std::list<struct TextTransitionMetric,class std::allocator<struct TextTransitionMetric> > &)" (?computeFrameAnalytics@FrameAnalyzer@@QEAAPEAV?$unordered_map@NV?$unordered_map@NNU?$hash@N@std@@U?$equal_to@N@2@V?$allocator@U?$pair@$$CBNN@std@@@2@@std@@U?$hash@N@2@U?$equal_to@N@2@V?$allocator@U?$pair@$$CBNV?$unordered_map@NNU?$hash@N@std@@U?$equal_to@N@2@V?$allocator@U?$pair@$$CBNN@std@@@2@@std@@@std@@@2@@std@@PEANPEAIAEAV?$list@UTextTransitionMetric@@V?$allocator@UTextTransitionMetric@@@std@@@3@@Z)

知道怎么解决吗?

0 个答案:

没有答案
相关问题