次のようなクラスで共有ライブラリを作成しました。
// lib.h
class LibClass {
template<typename T>
static void foo () {
T *tmp = new T();
tmp->bar();
}
};
そして、次のように定義されたクラスでlibを別の場所で使用しました:
//client.cpp
class C {
public:
void bar() { cout<<"bar"<<endl; }
};
int main () {
LibClass::foo<C>();
return 0;
}
エラーが発生しましたundefined reference to 'C::bar()'