私は以下を強制的にインスタンス化しようとしています:
//A.h
namespace A {
template <typename T>
bool foo (B::C<T>, D);
}
template bool A::foo<int> (B::C<int>, D);
//1.cpp
namespace A {
template <typename T>
bool foo (B::C<T>, D) {
return false;
}
}
// 2.cpp
#include "A.h"
using namespace A;
void foo()
{///
...
B::C<int> Alpha;
foo(Alpha, Beta);
}
私が得ているエラーメッセージは次のとおりです。
C2785: 戻り値の型が異なる
C4667: 強制インスタンス化に一致する関数テンプレートが定義されていません
エラーメッセージが関連していないように見えるため、このインスタンス化には何か著しく問題がありますか?