"Implizite Instanziierung einer undefinierten Vorlage", wenn die Vorlagenklasse weiter deklariert wird

Ich habe einen Code, in dem ich eine Vorlagenklasse vorwärts deklarieren muss (oder zumindest würde das Vorwärts deklarieren die Dinge für mich viel einfacher machen ...). Ich habe eine vereinfachte Version des Problems geschrieben, damit ich es hier anzeigen kann:

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);
    }   

};

Der Fehler, den ich in der kommentierten Zeile erhalte, ist:

Error - implicit instantiation of undefined template 'MyTemplateClass<false>'

Welche weiteren Details muss ich in eine Forward-Deklaration von MyTemplateClass aufnehmen? Da der Fehler nicht aus der nächsten Zeile stammt, gehe ich davon aus, dass er nicht darauf zurückzuführen ist, dass die Methode undefiniert ist. Der Compiler, den ich verwende, ist LLVM / CLang und ich kompiliere auf dem Mac.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage