«Неявное создание неопределенного шаблона» при прямом объявлении класса шаблона

У меня есть некоторый код, в котором мне нужно заранее объявить класс шаблона (или, по крайней мере, объявление вперед сделало бы мне намного проще ...). Я написал упрощенную версию имеющейся у меня проблемы, чтобы я мог отобразить ее здесь:

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.

Ответы на вопрос(3)

Ваш ответ на вопрос