Я приведу следующий пример, чтобы проиллюстрировать мой вопрос:
template<typename T>
T diff(T a, T b)
{
return a-b;
}
Я ожидаю, что эта функция шаблона будет работать только тогда, когда будет подписан тип T. Единственное решение, которое я могу выяснить, это использовать ключевое слово delete для всех неподписанных типов:
template<>
unsigned char diff(unsigned char,unsigned char) == delete;
template<>
unsigned char diff(unsigned char,unsigned char) == delete;
Существуют ли другие решения?