"Instanciation implicite d'un modèle non défini" lors de la déclaration de la classe de modèle

J'ai un peu de code dans lequel j'ai besoin de déclarer la classe de modèle (ou au moins, avant de déclarer rendrait les choses beaucoup plus facile pour moi...). J'ai écrit une version simplifiée du problème, je vais avoir donc je peux l'afficher ici:

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

};

L'erreur que je reçois à la ligne de commentaire est:

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

Ce que les autres en détail ce que je dois inclure dans une déclaration anticipée de MyTemplateClass? Depuis que l'erreur ne vient pas de la ligne suivante vers le bas, je suis en supposant qu'elle n'est pas due au fait que la méthode n'est pas défini. Le compilateur que j'utilise est LLVM/CLang, et je suis compiler sur Mac.

source d'informationauteur benwad