未定义的静态泛型方法引用

时间:2016-05-26 18:07:43

标签: c++

我正在尝试创建一个sameElements函数,我这样做:

util.h

#ifndef UTIL_H_INCLUDED
#define UTIL_H_INCLUDED

#include <vector>

class Util {
public:
  template<typename T>
  static bool sameElements(const std::vector<T> t1,const std::vector<T> t2);
private:
};

#endif

util.cpp

#include "util.h"

template<typename T>
bool Util::sameElements(const std::vector<T> t1,const std::vector<T> t2) {
  return false; // Changed the actual logic to focus in the real problem
}

所以,我从 main.cpp

中调用此方法如下
#include "util.h"

using namespace std;

int main()
{
    std::vector<int> v1 = {1,2,3,4};
    std::vector<int> v2 = {1,2,4,3};
    std::cout << "sameElements(v1, v2): " << (Util::sameElements(v1, v2)) << std::endl;

    return 0;
}

我希望打印“0”(假),但我得到了这个例外:

jscherman@jscherman:~/Workspace/cproject/src$ g++ main.cpp  util.cpp --std=c++11 && ./a.out
main.cpp:(.text+0x55d): undefined reference to `bool Util::sameElements<int>(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status

知道发生了什么事吗?

0 个答案:

没有答案