func hoge<T : StringProtocol>(arg: T) {}
func hoge<T>(arg: T) where T : StringProtocol {}

これどう違うんすか