私は、テンプレートクラスを前方宣言する必要があるコードを持っています(または、少なくとも前方宣言すると、 ..)。私はコメント行で取得していますエラーがある"未定義のテンプレートの暗黙的なインスタンス化"は、前方に宣言するテンプレートクラス
template<bool>
class MyTemplateClass;
int main(int argc, char* argv[])
{
MyTemplateClass<false> myTemp; // error here
myTemp.GetTheValue();
return 0;
}
template<bool bShouldMult>
class MyTemplateClass
{
int m_myint;
float m_myfloat;
public:
MyTemplateClass() : m_myint(5), m_myfloat(3.0f) {}
float GetTheValue()
{
return m_myint * (bShouldMult ? m_myfloat : 1.0f);
}
};
:
Error - implicit instantiation of undefined template 'MyTemplateClass<false>'
他のどのような詳細私はので、私はここでそれを表示することができたんだ問題の簡易版を書きましたMyTemplateClassの前方宣言に含める必要がありますか?エラーは次の行から来ていないので、メソッドが定義されていないことが原因ではないと仮定しています。私が使用しているコンパイラはLLVM/CLangで、Macでコンパイルしています。