的在Class.h
:實例化模板成員函數
class Class {
public:
template <typename T> void function(T value);
};
在Class.cpp
:
template<typename T> void Class::function(T value) {
// do sth
}
在main.cpp
:
#include "Class.h"
int main(int argc, char ** argv) {
Class a;
a.function(1);
return 0;
}
我得到一個鏈接錯誤,因爲Class.cpp
從來沒有實例void Class::function<int>(T)
。 您可以顯式實例使用模板類:
template class std::vector<int>;
你如何明確實例化一個非模板類的模板成員?
感謝,
我問這個問題的背景下,這篇博客文章涉及升壓轉換器的序列化庫:http://www.timoch.com/blog/2013/04/boost-serialization-coupling-issue/ – TiMoch