“Instanciação implícita de modelo indefinido” ao encaminhar a classe de modelo

Eu tenho um código no qual eu preciso reencaminhar-declarar a classe template (ou pelo menos, declarar para frente tornaria as coisas muito mais fáceis para mim ...). Eu escrevi uma versão simplificada do problema que estou tendo para poder exibi-lo aqui:

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

};

O erro que estou recebendo na linha comentada é:

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

Que outros detalhes eu preciso incluir em uma declaração antecipada de MyTemplateClass? Como o erro não vem da próxima linha, presumo que não seja devido ao fato de o método ser indefinido. O compilador que estou usando é o LLVM / CLang e estou compilando no Mac.

questionAnswers(3)

yourAnswerToTheQuestion