Как я могу использовать std :: enable_if в операторе преобразования?

По сути, я хочу, чтобы мой тип диапазона был неявно конвертируемым изRange вRange, std :: enable_if кажется невозможным, потому что функция не принимает аргументов и не имеет возврата. Какая работа вокруг?

Вот в основном то, что я пытался:

template
class Range{
    T* begin_;
    T* end_;
public:
    Range(T* begin,T* end):begin_{begin},end_{end}{}
    template
    Range(T (&a)[N]):begin_{static_cast(&a[0])},end_{static_cast(&a[N-1])}{}
    T* Begin(){return begin_;}
    T* End(){return end_;}
    operator typename std::enable_if::Type (){
        return *reinterpret_cast(this);
    }
};

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

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