重複の可能性:
テンプレートを使用すると「未解決の外部シンボル」エラーが発生するのはなぜですか?
テンプレートをヘッダー ファイルにしか実装できないのはなぜですか?
たぶん私はそれにはあまりにも愚かですが、これは私にはうまくいきません:
フー。
#ifndef FOO_H
#define FOO_H
class Foo {
public:
template<typename T>
void foo(T const &);
};
#endif // FOO_H
Foo.cpp
#include "Foo.h"
template<typename T>
void Foo::foo(T const &var) {
// do something useless
}
main.cpp
#include "Foo.h"
int main() {
int i;
Foo bar;
bar.foo(i);
}
Xcode 4.4.1 でコンパイルしただけですが、次のリンク エラーが返されます。
Undefined symbols for architecture x86_64:
"void Foo::foo<int>(int const&)", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
返信ありがとうございます。