Vide crochets dans la définition de modèle

Cette question a été à l'interview:
Fait ce code provoque une compilation/les erreurs de liaison et pourquoi donc?

template <int T> void f();
template <> void f<0>() {}

void test() 
{
    f<1>();
}

Veuillez expliquer le comportement. Merci beaucoup.

Erreur de couplage, vous avez besoin template <int T> void f() { }

OriginalL'auteur Netherwire | 2014-05-21