SFINAE no compiló [duplicar]

Esta pregunta ya tiene una respuesta aquí:

SFINAE trabajando en el tipo de retorno pero no como parámetro de plantilla 3 respuestas

Muy a menudo usé SFINAE antes, pero tengo un ejemplo muy simple que no puedo ejecutar hoy.

class X
{
    public:
        template <typename CHECK, typename = typename std::enable_if< std::is_floating_point<CHECK>::value, void>::type >
            void Do()
            {
                std::cout << "yes" << std::endl;
            }

        template <typename CHECK, typename = typename std::enable_if< !std::is_floating_point<CHECK>::value, void>::type>
            void Do()
            {
                std::cout<< "no" << std::endl;
            }

};

int main()
{
    X x;
    x.Do<float>();
}

Error:

src / main.cpp: 20: 18: error: 'template void X :: Do ()' no se puede sobrecargar

src / main.cpp: 14: 18: error: con 'template void X :: Do ()' void Do ()

Quiero deshabilitar cualquier sobrecarga con enable_if pero no funciona ...

¿Alguna idea de lo que hoy hice mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta