SFINAE, чтобы базовый шаблон всегда приводил к ошибке

Так что я проектирую своего родаmy_numeric_cast функция для ограничения типов конверсий, доступных при использовании фреймворка, который я пишу.

Было довольно просто сделать что-то вроде

template<typename To, typename From>
constexpr To my_numeric_cast(From);

template<>
constexpr float my_numeric_cast<float, int>(int i) { return i; }

Который работает, позволяя использовать только приведения типов из целых чисел к плавающим объектам всякий раз, когда используется приведение. И выдает ошибку связывания всякий раз, когда предпринимается попытка приведения не в белый список.

Тем не менее, я бы очень хотел сделать это ошибкой компиляции, чтобы намного быстрее обнаружить неправильное использование.
Как сделать тело базового шаблона допустимым, ожидая его создания?

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

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