SOでこれら 2 つのリンカー エラーに問題が発生した後、再び問題が発生しました。ただし、今回のソースは別の場所にあるようです。
コンパイラ エラーは、 signature を持つ関数が見つからないことを示しています""public: unsigned int __thiscall MyClass::myFunction<unsigned int>(int)const "
。
ただし、の内容を移動することは機能myClass.cpp
しmain.cpp
ます。理由がわかりません (他のすべてのコンテンツにmyClass.cpp
はこの問題はありません。(他の関数はテンプレート化されていません)。
myClass.h
#ifndef X
#define X
class MyClass {
public:
template<class T>
T myFunction (int someArgument) const;
};
#endif
myClass.cpp
#include "myClass.h"
template<class T>
T MyClass::myFunction (int someArgument) const {
return T();
}
main.cpp
#include "myClass.h"
int main () {
MyClass a();
a.myFunction<unsigned int>(42);
return 0;
}
この問題を解決するにはどうすればよいですか?