СФИНА не скомпилировала [дубликат]

На этот вопрос уже есть ответ здесь:

SFINAE работает в типе возврата, но не в качестве параметра шаблона 3 ответа

Очень часто я использовал SFINAE раньше, но у меня есть очень простой пример, который я не могу запустить сегодня.

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>();
}

Ошибка:

src / main.cpp: 20: 18: ошибка: шаблон void X :: Do () не может быть перегружен

src / main.cpp: 14: 18: ошибка: с шаблоном void X :: Do () void Do ()

Я хочу отключить любую перегрузку с помощью enable_if, но это не работает ...

Есть идеи, что сегодня я сделал не так?

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

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