Если вы хотите, чтобы ваш класс обрабатывал только те типы, которые могут быть преобразованы в строку, то измените определение универсального типа так, чтобы T соответствовало LosslessStringConvertible
class Stack<T:LosslessStringConvertible>
Если, с другой стороны, вас интересует только в получении строки для печати вы можете использовать String(describing:)
values.map {
String(describing:$0)
}