enable_if iterator como um parâmetro de modelo padrão?

Eu tenho um construtor assim:

class MyClass
{
    template<class TI> MyClass(TI first, TI last);
};

template<class TI> MyClass::MyClass(TI first, TI last)
{
    ;
}

Eu gostaria de habilitar este construtor somente se TI é um iterador (isso significa que TI tem um iterator_category eu acho). Como fazer isso em C ++ 2011 usando um enable_if como um parâmetro de modelo padrão (na declaração e na definição)?

Muito obrigado.

questionAnswers(1)

yourAnswerToTheQuestion