В std есть шаблон
std::common_type<T...>, в который можно передать список типов, и в ассоциированном типе type взять общий из них.Разумно предположить, что если в списке типов только 1 тип, то он и будет в
type,т.е.
std::common_type<T>::type == T.При условии, что нет перегрузки для списка из одного T.