Especialização explícita no escopo que não é de namespace [duplicado]

Esta pergunta já tem uma resposta aqui:

Sintaxe C ++ para especialização explícita de uma função de modelo em uma classe de modelo? 4 respostas
template<typename T>
class CConstraint
{
public:
    CConstraint()
    {
    }

    virtual ~CConstraint()
    {
    }

    template <typename TL>
    void Verify(int position, int constraints[])
    {       
    }

    template <>
    void Verify<int>(int, int[])
    {   
    }
};

Compilar isso em g ++ dá o seguinte erro:

Especialização explícita no escopo que não é de namespace 'classe CConstraint'

No VC, ele compila bem. Alguém pode me informar a solução alternativa?