Especialización explícita en el ámbito sin espacio de nombres [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Sintaxis de C ++ para la especialización explícita de una función de plantilla en una clase de plantilla? 4 respuestas
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 esto en g ++ da el siguiente error:

Especialización explícita en el ámbito sin espacio de nombres 'clase CConstraint'

En VC, se compila bien. ¿Alguien puede decirme la solución?

Respuestas a la pregunta(5)

Su respuesta a la pregunta